Autor | Zpráva | ||
---|---|---|---|
H13 Profil |
#1 · Zasláno: 21. 11. 2007, 16:07:17
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 |
#2 · Zasláno: 21. 11. 2007, 18:11:24
while cyklem. pokazde narazis jen na jednu a budes zvysovat nejaky pocitadlo. od 4 zacnes zamenovat.
|
||
H13 Profil |
#3 · Zasláno: 21. 11. 2007, 18:20:58
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 |
#4 · Zasláno: 21. 11. 2007, 18:31:56
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 |
#5 · Zasláno: 21. 11. 2007, 20:45:29
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... |
||
Časová prodleva: 3 roky
|
|||
fuk Profil * |
#6 · Zasláno: 22. 7. 2010, 10:32:15
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.
|
||
Časová prodleva: 14 let
|
0