 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| 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 |
|
| |
|