Autor Zpráva
H13
Profil
Ahoj, potřeboval bych poradit, ve funkci preg_replace je parametr limit, který určuje, kolik výskytů se má v řetězci nahradit, já bych však potřeboval něco opačného:

Takto funguje:
limit = 3: nahraď jen první tři výskyty

Takto bych to potřeboval
limit = 3: nahraď všechny výskyty kromě prvních tří...

Mohl by mi někdo poradit, jak bych toto mohl vytvořit

Konkrétně se jedná o nahrazení URL za normální text:
$link	= preg_replace ("/<a href=.*?>(.*?)</a>/","$1",$link)

díky, Honza
operanda
Profil
while cyklem. pokazde narazis jen na jednu a budes zvysovat nejaky pocitadlo. od 4 zacnes zamenovat.
H13
Profil
no to je hezký, ale jak donutím preg_replace, aby ve while cyklu změnil pouze jeden výskyt a ne všechny výskyty
Mastodont
Profil
Tak si nejdřív ty tři první výskyty URL nějak modifikuj, pak spusť preg_replace bez limitu a nakonec zase vrať zpátky ty upravené URL
H13
Profil
No napadá mě, že bych u prvních tří vyměnil:

'<a href' třeba za '<a href%muj-jedinecnej-identifikator%>'

a pak bych provedl:

preg_replace na '<a href' (byly by změněny všechny URL kromě těch prvích tří

no a nakonec bych zase vrátil zpět změny udělaný nahoře...

díky moc, vyzkouším

Jen doufám, že nebudu zbytečně dělat něco, co by mohla udělat zabudovaná fce...
fuk
Profil *
Taky se dá použít funkce preg_replace_callback. Tam si lze výskyty počítat a celkově vše je ve vlastní režii.

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:

0