Autor Zpráva
sloncz
Profil
Hezký večer, chtěl bych se zeptat.

Mám:

<div title="Prase 1">..</div>
<div title="Slon 5">..</div>
<div title="Prase 1">.. --- ..</div>

Potom replacuji pomocí php

str_replace("Prase 1", "Prase Bradavičnaté", $retezec);

Ovšem to mi replacne oba dva div-title, je nějaké řešení, aby to replacnulo pouze první slovo, které to najde? Děkuji


//EDIT: vyřešeno
Alphard
Profil
sloncz:
//EDIT: vyřešeno
Tipuji využití funkce preg_replace(), příště prosím napište i řešení.
mimochodec
Profil
Alphard:
http://php.net/manual/en/function.str-replace.php - parametr count.
Nic jsem neřekl.
juriad
Profil
str_replace to neumí omezit. Můžeš použít preg_replace, které to umí (4. argument). Tato funkce se chová stejně, dokud nepoužiješ nájaký speciální znak:
^*()[]{}.?+, musíš ale vzor uzavřít mezi nějaké oddělovače (často se používají lomítka).

mimochodec:
To je výstupní paramer:
If passed, this will be set to the number of replacements performed.
mimochodec
Profil
juriad:
Aha, tak dík. Já se do příště naučím číst, než budu něco linkovat. O tom parametru vím celou dobu, ale nikdy jsem ho nepoužil a myslel jsem, že se tam ten počet zadává.
sloncz
Profil
Omlouvám se, že jsem nenapsal řešení :)
Ano, využil jsem na to funkci preg_replace, která má jako parametr počet, kolik slov bude nahrazeno.
preg_replace("/Prase 1/","Prase Bradavičnaté", $rezetec, 1);

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: