Nemůžu přijít na jednu věc.
Dejme tomu, že mám řetězec:
bleblbbelblbleblb [sign|1|sign] bleblebleblbelblbelb [sign|2|sign] , atd...
a teď bych ten řetězec potřeboval reozdělit na části, abych měl něco takovýho:
$pole[0] = bleblbbelblbleblb;
$pole[1] = [sign|1|sign];
$pole[2] = bleblebleblbelblbelb;
$pole[3] = [sign|2|sign];
prostě něco jako explode, akorát se zástupnym znakem.
Kdo poradí?
$pole = explode(" ", $retezec);
bud tohle nebo nevim, jak to myslis...
Tak přesně takhle to nemyslim, to bleblebl nemůžeš brát doslova, ta můžou být i mezery.
A co třeba takhle?
$retezec = str_replace("[sign|1|sign]" , "*", $retezec);
$retezec = str_replace("[sign|2|sign]" , "*", $retezec);
$pole = explode("*", $retezec);
No jo, teď mě ale napadá, že $pole[1] nebude [sign|1|sign]; , ale hvezdička "*" a to ty asi nechceš.
Petr
Co jsem to ale napsal za hovadinu, že $pole[1] bude *.
Tak to sorry
Že se do toho ještě do třetice motám ...
>> bleblbbelblbleblb [sign|1|sign] bleblebleblbelblbelb [sign|2|sign]
Nevím jak přicházíš k tomu řetězci, ale co místo těch mezer před [sign|1|sign] a za ním, to nahradit nějak právě třeba tou hvězdičkou?
A co takhle naučit se používat REGULÁRNÍ VÝRAZY?
Teď sem dělal něco podobnýho:
převáděl jsem string: "něco1,něco2,něco3,něco4" na pole
[1]=něco1
[2]=něco2
[3]=něco3
[4]=něco4
prostě vezmeš první písmenko ze stringu a uložíš jako první písmenko do nové proměnné (třeba $1)
dál vezmeš druhé písmenko a pokud se nerovná tomu čím chceš aby začínal další výraz (u mně je to čárka ",") uložíš ho jako druhé písmenko do $1,
a tak dál....
tušim že sem to dělal takhle
$var=1;
$string = "něco1,něco2,něco3,něco4";
for ($i=0; $string{$i}!=false; $i++) // kudrnaty zavorky urcujou misto ve stringu
if ($string{$i} != ",") // carka jako separator
{
$$var{$i}= $string{$i}
}
elseif ($string{$i} == ",") //preskoci carku a zmeni jmeno promene
{
$var++
}
}
mel bys z toho dostat:
$1=něco1
$2=něco2
$3=něco3
$4=něco4
Já s PHP začínám - tak tam možná budou nějaký chyby a vůbec to asi je blbej nápad to takhle dělat (asi si budu muset prostudovat to explode) ale mně to funguje jak má.. takže jako první pokus mi to docela vyšlo :o)
2 Karlos:
pokiaľ tam máš tie "," tak v php je funkcia explode:
array explode ( string separator, string string [, int limit])
kde string "něco1,něco2,něco3,něco4" rozdelí na pole pomocou stringseparator ","
môžeš nastaviť aj počet prvkov v poli cez limit - je nepovinný (posledný prvok bude obsahovať zvyšok stringu)
tvoj prípad $pole = explode(",", "něco1,něco2,něco3,něco4")
mal by si z toho dostať:
$pole[0]=něco1
$pole[1]=něco2
$pole[2]=něco3
$pole[3]=něco4
viď manuál (niekde na www.php.net )