Autor | Zpráva | ||
---|---|---|---|
H13 Profil |
#1 · Zasláno: 9. 2. 2009, 19:35:39
Ahoj, potřeboval bych poradit, najít optimální regulární výraz pro nahrazení řetězce v URL. Nejlepší bude, když to uvedu v příkladu. Mám XHTML řetezec:
<p>Toto je retezec <a href="http://nejaka_stranka.cz/index.php?akce=retezec">retezec</a></p> a potřebuju nahradit řetězec "retezec" za např. "string" pouze v adrese, tedy, abych dostal: <p>Toto je retezec <a href="http://nejaka_stranka.cz/index.php?akce=string">retezec</a></p> Zajímá mě hlavně "href=" (ne http:// ... protože adresa může být relativní) Díky moc, Honza |
||
SwimX Profil |
#2 · Zasláno: 9. 2. 2009, 19:46:56 · Upravil/a: SwimX
H13
např: <?php $a = '<p>Toto je retezec <a href="http://nejaka_stranka.cz/index.php?akce=retezec">retezec</a></p>'; $a = preg_replace('#(.+)href=\\"(.*)retezec(.*)\\"#si', "\\1href=\"\\2string\\3\"", $a); echo $a; ?> |
||
H13 Profil |
#3 · Zasláno: 9. 2. 2009, 21:41:11 · Upravil/a: H13
Ahoj, díky ... mám s tím ale problém, pokud je $a větší např. 1000 znaků, pak se mi skript neprovede do 30 sekund :-(
Potřeboval bych aby to nefungovalo pouze pro jeden výskyt ale pro všechny v řetězci :-( |
||
H13 Profil |
#4 · Zasláno: 10. 2. 2009, 00:10:23
Tak už jsem na to snad přišel... :
preg_replace_callback('{(.+)href=\"(.*)retezec(.*)\"}U', ..., ...) |
||
Časová prodleva: 15 let
|
0