Afisarea unui anumit numar de cuvinte [REZOLVAT]

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

Ion
Average Member
Mesaje: 51
Membru din: Sâm Oct 23, 2004 9:15 pm
Localitate: Ploiesti

Afisarea unui anumit numar de cuvinte [REZOLVAT]

Mesajde Ion » Mie Sep 20, 2006 10:57 pm

Salutare tuturor! Cum fac si eu sa extrag si sa afisez pe pagina numai un anumit numar de cuvinte (nu de caractere) din db? Multumesc tuturor! :)
Ultima oară modificat Joi Sep 21, 2006 1:13 am de către Ion, modificat 1 dată în total.


The road to success is always under construction!

Avatar utilizator
doryy42
Senior Member
Mesaje: 362
Membru din: Dum Feb 19, 2006 11:52 pm
Localitate: Bucuresti
Contact:

Mesajde doryy42 » Mie Sep 20, 2006 11:14 pm

Cod: Selectaţi tot

//0 de unde incepe
//17 unde se termina !
$sir = "123344556984923kldfjaskdjasklud2398409123481209";
substr($sir,0,17);


demonu
Average Member
Mesaje: 76
Membru din: Mie Apr 12, 2006 8:16 pm
Contact:

Mesajde demonu » Mie Sep 20, 2006 11:38 pm

doryy42, nu ai inteles intrebarea....

Nu stiu cat de buna este varianta mea, nu am incercato niciodata. Varianta mea se bazeaza pe faptul ca doua cuvinte sunt separate de niste delimitatori (.,;, spatii, etc) asa ca poti construi o expresie regulata care extrage k cuvante, urmat de delimitatori...regexpu ar trebui sa arate astfel

Cod: Selectaţi tot

/((\w*\W*){k})/


EDIT: inlocuiesti k nu numarul de cuvinte care le vrei extrase

si expresia asta o folosesti cu http://ro.php.net/manual/en/function.preg-match.php

Este posibil sa fi gresit expresia regulata, sau ea sa nu acopere chiar toate cazurile...in acest caz http://www.regular-expressions.info/tutorial.html e un bun punct de plecare

Avatar utilizator
Dodo
Senior Member
Mesaje: 958
Membru din: Mar Aug 22, 2006 2:40 pm
Localitate: Constanta
Contact:

Mesajde Dodo » Mie Sep 20, 2006 11:59 pm

$cuvant = explode(' ', $propozitie);
$cuvant devine un array care tine toate cuvintele din $propozitie ...
$cuvant[0] este primul cuvant ... $cuvant[1] al doilea si tot asa... daca vrei sa printezi primele 10 ... bagi un:
for($i=0;$i<10;$i++)
{
echo $cuvant[$i] . " ";
}

... ps: nu uita sa verifici daca exista 10 cuvinte in propozitia aia :)

Ion
Average Member
Mesaje: 51
Membru din: Sâm Oct 23, 2004 9:15 pm
Localitate: Ploiesti

Mesajde Ion » Joi Sep 21, 2006 1:11 am

Multumesc tuturor! Am folosit functia explode() si am rezolvat problema. Daca nu exista cele 10 cuvinte in propozitie imi afiseaza doar ce exista si este ok si asa. :D
The road to success is always under construction!

Avatar utilizator
KING
Junior Member
Mesaje: 41
Membru din: Mie Oct 20, 2004 6:46 pm
Localitate: Bucuresti
Contact:

Mesajde KING » Joi Sep 21, 2006 1:34 am

Cod: Selectaţi tot

$propozitie="foloseste functia count";
$cuvant = explode(' ', $propozitie);
echo count($cuvant);

for($i=0;$i<count($cuvant)-1;$i++)
{
echo $cuvant[$i] . " ";
}

xtc62
Average Member
Mesaje: 75
Membru din: Lun Iul 31, 2006 12:41 pm
Localitate: Iasi

Mesajde xtc62 » Joi Sep 21, 2006 2:52 am

$cuvant = explode(' ', $propozitie);
$cuvant devine un array care tine toate cuvintele din $propozitie ...
$cuvant[0] este primul cuvant ... $cuvant[1] al doilea si tot asa... daca vrei sa printezi primele 10 ... bagi un:
for($i=0;$i<10;$i++)
{
echo $cuvant[$i] . " ";
}

... ps: nu uita sa verifici daca exista 10 cuvinte in propozitia aia :)

Si daca intre 2 cuvinte exista mai mult de un spatiu?

Avatar utilizator
oriceon
PHPRomania Moderator
Mesaje: 480
Membru din: Vin Dec 24, 2004 3:48 pm
Localitate: Constanta
Contact:

Mesajde oriceon » Joi Sep 21, 2006 10:03 am

Cod: Selectaţi tot

<?php

$str = "Hello fri3nd, you're
      looking          good today!";

echo "<pre>";
print_r(str_word_count($str, 1, 'àáãç3'));
echo "</pre>";

echo "<br><br> Cuvinte: ". count(str_word_count($str, 1, 'àáãç3'));

?>



àáãç3 = caractere considerate ca si parte din cuvant ...


Pt mai multe detalii: http://ro.php.net/str_word_count



sau . . .


Cod: Selectaţi tot

<?php

$propozitie = 'salut aceasta este   o propozitie   ';

$cuvinte0 = explode(' ', $propozitie);
$cuvante1 = array_filter($cuvinte0);
$cuvinte = array_values($cuvante1);

echo "<pre>";
print_r($cuvinte);
echo "</pre>";

?>


.:: Develop and Fun in .Ro Style ::.
I love Firefox and i enjoy browsing web with Chrome

Avatar utilizator
Dodo
Senior Member
Mesaje: 958
Membru din: Mar Aug 22, 2006 2:40 pm
Localitate: Constanta
Contact:

Mesajde Dodo » Joi Sep 21, 2006 11:27 am

King:
Daca printezi toate cuvintele n-ai rezolvat nimic... el vrea sa printeze doar primele n cuvinte.
xtzy:
eu in general consider ca am de-a face cu oameni care stiu macar putin php si pot sa bage si ei o linie de cod in plus ca sa le mearga codul asa cum il vor... stii ce cred eu despre raspunsurile mura-n gura

Avatar utilizator
oriceon
PHPRomania Moderator
Mesaje: 480
Membru din: Vin Dec 24, 2004 3:48 pm
Localitate: Constanta
Contact:

Mesajde oriceon » Joi Sep 21, 2006 12:41 pm

Dodo, right.

Cod: Selectaţi tot

<?php

$propozitie = 'salut aceasta este   o propozitie   ';
$nr_cuvinte = 3;

$cuvinte0 = explode(' ', $propozitie);
$cuvante1 = array_filter($cuvinte0);
$cuvinte = array_values($cuvante1);

$cnt = count($cuvinte);

for($i=0;$i<($cnt < $nr_cuvinte ? $cnt : $nr_cuvinte);$i++) {
    echo $cuvinte[$i] . " ";
}

?>



Asta daca vrea un nr de cuvinte...
.:: Develop and Fun in .Ro Style ::.

I love Firefox and i enjoy browsing web with Chrome


Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 31 vizitatori