php explode() delimiter z db

Programovacie jazyky, rady, poradňa...
Junkman
Novice
Novice
Príspevky: 8
Registrovaný: 07 jún 2007, 22:27

php explode() delimiter z db

Príspevok od používateľa Junkman »

zdravim, :)
mam nasledovny problem s touto funkciou explode($delimiter,$string);
ked pouzijem rozdelovac stringu($delimiter) ktory vyberiem z db tak mi to nefunguje.ale ked si tu istu premennu vypisem a vlozim si ju priamo do zdrojaka
explode("rozdelovac",$string);
tak to funguje.
potesi kazdy napad
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: php explode() delimiter z db

Príspevok od používateľa audiotrack »

ukáž časť zdrojáku ako to robíš. Z toho popisu čo si dal mi vychádza iba že tam máš niekde chybu
Junkman
Novice
Novice
Príspevky: 8
Registrovaný: 07 jún 2007, 22:27

Re: php explode() delimiter z db

Príspevok od používateľa Junkman »

Kód: Vybrať všetko

$last = mysql_query("SELECT * FROM table ORDER BY idd DESC LIMIT 1");

while($row = mysql_fetch_array($last)){
$delic = htmlspecialchars($row['nazov'].";");
}	

$editstring = end(explode($delic,$string));
 echo "string:".htmlspecialchars($editstring );
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: php explode() delimiter z db

Príspevok od používateľa audiotrack »

jediná možnosť čo mi napadá je, že máš chybu v tom query, a teda do cyklu ktorý by naplnil premennú $delic sa to nedostane. Pridaj si tam ešte echo $delic či je tam určite to čo predpokladáš
Junkman
Novice
Novice
Príspevky: 8
Registrovaný: 07 jún 2007, 22:27

Re: php explode() delimiter z db

Príspevok od používateľa Junkman »

to som kontroloval.dal som echo $delic a vypisalo ho.potom ten retazec co sa vypisal som skopiroval do tej funkcie priamo cize to vyzeralo nejak takto
explode('rozdelovac',$string)
a takto to uz fungovalo.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: php explode() delimiter z db

Príspevok od používateľa audiotrack »

to čo vypísalo nemusí byť totožné s tým čo si tam dal. Príklad:

Kód: Vybrať všetko

$delic = "                        ahoj";
echo $delic;
vypíše ti ahoj, ale medzeri pred ním sa stratia lebo to prehliadač tak proste spracuje (aby sa nestratili bolo by treba dať pevnú medzeru   ). Takže ty tam dáš "ahoj" aj keď v tej premennej máš

Kód: Vybrať všetko

"                     ahoj"
. Ďalší príklad by bol napríklad:

$delic = ">"
echo $delic;

vypíše ti znak >. Pretože tam máš htmlspecialchars, na výstupe môžeš dostať interpretáciu znaku ktorú keď kopíruješ zo stránky je iná. Dúfam že si z týchto dvoch príkladov pochopil prečo to nie je len tak že vypíše to isté čo tam dávam. Pozeraj to v zdrojáku a nie na stránke
sorien
Medium Expert
Medium Expert
Príspevky: 88
Registrovaný: 02 jún 2011, 21:55

Re: php explode() delimiter z db

Príspevok od používateľa sorien »

Kód: Vybrať všetko

$editstring = end(explode($delic,$string));
OT: inak toto je taky pekny priklad predpokladam ze pouzivas niake php < 5.3 lebo end potrebuje referenciu na pole (co v tvojom priklade sposobi prvu chybu pri prechode na novsie php) a explode nevracia vzdy array co sposobi druhu ak $string bude '' ;)

spravne je nieco ako:

Kód: Vybrať všetko

$exploded = explode($delic,$string); 
$existing = $exploded !== false ? end($exploded) : '';
:)
Junkman
Novice
Novice
Príspevky: 8
Registrovaný: 07 jún 2007, 22:27

Re: php explode() delimiter z db

Príspevok od používateľa Junkman »

AudioTrack: máš pravdu nejak som si to neuvedomil ale vyzerá to tak že to bolo v tom.

sorien: používam 5.3.1.S tú podmienku som tam ešte chcel doplniť, ale asi by som to zabudol.

Takže ďakujem obom
Napísať odpoveď