Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

afisare partiala
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Incepători
Subiectul anterior :: Subiectul următor  
Autor Mesaj
esix



Data înscrierii: 21/Noi/2004
Mesaje: 19
Locație: Calafat

Trimis: Vin Dec 10, 2004 8:23 pm    Titlul subiectului: afisare partiala  

M-ar interesa si pe mine sa afisez partial detaliul privind un produs... Spre exemplu am un produs cu ID-ul 1, numele test, pret 250000, si detalii de 250 caractere. Cum pot face sa afisez, sa zicem, decat 15 caractere?

Folosesc ereg()? Daca da, cum....?
Sus  
mihnea sim



Data înscrierii: 20/Aug/2004
Mesaje: 149
Locație: Alexandria

Trimis: Vin Dec 10, 2004 10:40 pm    Titlul subiectului:  

Folosesti substr($descriere,0,49);
Dar vezi ca pot aparea buguri de genul:
-daca in descriere se afla cod html, exista cazul sa "tai" din acesta. Spre exemplu ai un link in primele 53 de caractere, iar cand afisezi doar primele 50 o sa afiseze descriere fara inchiderea linkului (</a>) si vei obitne un rezultat nedorit. Cel mai elegant ar fi sa afisezi prima sau a doua propozitie din descriere. Pentru asta folosesti $arr = explode(".",$descrire); unde $arr[0] - prima propozitie, $arr[1] - a doua prop. etc.
Cu placere :lol:
Sus  
esix



Data înscrierii: 21/Noi/2004
Mesaje: 19
Locație: Calafat

Trimis: Vin Dec 10, 2004 11:01 pm    Titlul subiectului:  

Saru-mana :D
Sus  
MasterPhoton



Data înscrierii: 06/Mar/2003
Mesaje: 437

Trimis: Sâm Dec 11, 2004 12:50 am    Titlul subiectului:  

Sau poti scoate tagurile HTML din variabila (sau clonezi variabila initiala si scoti din clona tagurile) si de-abia apoi substr.
Sus  
esix



Data înscrierii: 21/Noi/2004
Mesaje: 19
Locație: Calafat

Trimis: Sâm Dec 11, 2004 8:37 pm    Titlul subiectului:  

Am "rasfoit" nitel manualul PHP si am realizat o metoda mai practica:

an style="color: #000000"><?php $string = 'Bine ati venit doamnelor si domnilor la aceasta plesneala la nivel mondial, interplanetar, etc'; $pe_scurt = explode(' ',$string); for($i = 0; $i < 10; $i++){ $test .= $pe_scurt[$i].' '; } print $test; 

Rezultatul este:
"Bine ati venit doamnelor si domnilor la aceasta plesneala la"

Problema intampinata de mine acum este, ca, atunci cand integrez acest cod intr-o functie, nu-mi returneaza variabila, chiar daca dau return $test

an style="color: #000000"><?php function afis_10c($string){   $pe_scurt = explode(' ',$string);   for($i = 0; $i < 10; $i++){     $test .= $pe_scurt[$i].' ';   }   return $test; } 

Daca am gresit undeva in codul de mai sus, va rog corectati-ma...
Sus  
mihnea sim



Data înscrierii: 20/Aug/2004
Mesaje: 149
Locație: Alexandria

Trimis: Dum Dec 12, 2004 7:53 am    Titlul subiectului:  

Vezi tu, ai initiat variabila $test printr-o concatenare (.=) , si s-ar putea sa fie aia problema. Pune la inceputul functiei $test = "";
Apoi mai e o problema. Daca ai folosit return, functia este o "functie" in adevaratul sens al cuvantului. (adica nu e void, si nici procedura - asemuiesc aici cu C si Pascal, ci functie - in cazul tau de tip string). Ai doua solutii:
1. Ori o apelezi--> print afisa_10c($var);
2.Ori scrii la sfarsitul functiei, in loc de return, print $test, si atunci poti sa apelezi functia ca pe un void/procedura --> afisa_10c($var).
Problema e de la faptul ca php e f. flexibil si mai apar si astfel de "incorectitudini" evitate de alte limbaje prin prisma declararilor.

PS: De unde stii ca explode-ul tau returneaza un array cu cel putin 10 elemente? Eu asa as face:
<? function afis_10c($string){  $test = "";   $pe_scurt = explode(' ',$string);   if(10 > count($pe_scurt))  $limita = count($pe_scurt); else $limita = 10;   for($i = 0; $i < $limita; $i++){      $test .= $pe_scurt[$i].' ';    }    return $test;  }  print afis_10c("Un string cu mai putine cuvinte"); ?>
Sus  
esix



Data înscrierii: 21/Noi/2004
Mesaje: 19
Locație: Calafat

Trimis: Dum Dec 12, 2004 9:42 am    Titlul subiectului:  

Citat:
1. Ori o apelezi--> print afisa_10c($var);
2.Ori scrii la sfarsitul functiei, in loc de return, print $test, si atunci poti sa apelezi functia ca pe un void/procedura --> afisa_10c($var).


Pana la urma, am rezolvat problema (inainte de a citi recomandarea ta) cu print()
Ahh... si in cea ce priveste cele 10 cuvinte, cam toate produsele din tabel au o descriere destul de lunga si m-am hotarat, spre exemplu, sa afisez doar 10 cuvinte... ma rog... pot modifica ulterior

Merci oricum pt. recomandare si pt. info!
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Incepători
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community