Autor | Zpráva | ||
---|---|---|---|
Pavka Profil |
#1 · Zasláno: 6. 6. 2006, 17:48:28
Ahoj, potřeboval bych zajistit nahrazování odkazů, které obsahují proměnné "statickým" odkazem, odkazujícím na normální html soubor - slyšel jsem, že to zvýší pravděpodobnost nalezení stránky vyhledávačem.
Zatím to nahrazuji tímto regulárním výrazem: $a = '<a href="index.php?action=login&uch=ouch">blabla</a>'; echo preg_replace('#<a href="index.php\?(.*?)=(.*?)[&?|(&)?](.*)"(.*)>(.*)</a>#', '<a href="http://url.com/web/\\1(\\2).html"\\4>\\5</a>', $a); // vypíše <a href="http://url.com/web/action(login).html">blabla</a> No a jak asi tušíte a vidíte, problém nastává pokud je v url víc jak jedna proměnná, nedaří semi přijít na to jak nahradit proměnný počet proměnných. Proto se obracím na vás, doufám, že jsem to dobře zformuloval. Díky za pomoc. |
||
Oswald Profil |
#2 · Zasláno: 6. 6. 2006, 19:12:14
Možná požít nějaký obecnější regexp a zpracovávat pomocí preg_replace_callback.
Jinak tahle část dělá nejspíš něco jiného, než bylo zamýšleno: [&?|(&)?] - bere jakýkoliv znak ze skupiny '&', '(', 'a', 'm', 'p', ';', ')' a '?'. |
||
Pavka Profil |
#3 · Zasláno: 6. 6. 2006, 21:40:18 · Upravil/a: Pavka
díky mrknu na to
[&?|(&)?] - operátor "?" znamená předchozí znak max. jednou, "|" rozdělení na pod výrazy, [] libovolný ze znaků, () všechny znaky = buď nic, & nebo & |
||
Leo Profil |
#4 · Zasláno: 6. 6. 2006, 21:58:43
Urcite preg_replace_callback, nebo neco podobnyho - krome jinyho by mela normalizovat poradi promennych, abyste nemel na ruznych URL stejny obsah. Leo
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0