Autor | Zpráva | ||
---|---|---|---|
Jack06 Profil |
#1 · Zasláno: 28. 7. 2010, 17:03:46
Chtěl bych se zeptat, zda jde a jak napsat regulární výraz, který mi vypíše ze string řetězce vše co bude v a href, tedy veškeré odkazy vnitřní i ven tzn:
<a href=toto vypsat ></a> <a href='toto vypsat' ></a> <a href="toto vypsat" ></a> Psal jsem již jeden podobný dotaz, ale nebyl domyšlený, adresy se totiž nemusí vždy psát absolutně.. někdy je někdo píše i jen jako: index.php a tak.. tak díky za pomoc |
||
Majkl578 Profil |
#2 · Zasláno: 28. 7. 2010, 17:17:22
preg_match('~<a href=(["\']|)(.*)\\1 >~U', '<a href=\'toto vypsat\' ></a>', $m); var_dump($m[2]); |
||
Jack06 Profil |
#3 · Zasláno: 29. 7. 2010, 16:32:48 · Upravil/a: Jack06
Zkoušel jsem to vypsat, ale píše mi to NULL.. přišel jsem na to kde je zrada.. tou mezerou za tím co chci vypsat jsem myslel, že to může dále pokračovat, jako třeba class="neco" atd. tedy aby to bralo to co je v href a jako konec toho co chci vypsat bralo tedy: uvozovky (href="chci vypsat"), apostrof (href='chci vypsat'), mezeru (href=chci vypsat class=active), špičatou závorku (href=index.php>)
to jsou tedy jediné možnosti, které mě napadají.. Je právě naprd, že to není sctrict a může být za rovná se mezera, ale nemusí, může to být v uvozovkách, ale nemusí a to samé s apostrofama atd. :-( Jinak díky za ochotu, asi se budu muset naučit ty regulární výrazy, neboť je to jak koukám potřeba více a více. $string = htmlspecialchars(file_get_contents("http://www.superpokec.cz/")); preg_match('~<a href=(["\']|)(.*)\\1 >~U', $string, $m); var_dump($m[2]); |
||
tiso Profil |
#4 · Zasláno: 29. 7. 2010, 17:10:38
Jack06: učením sa nič nepokazíš, práve dnes vyšiel článok o regulárnych výrazoch na intervale. Prvý diel si nečítaj.
|
||
Jack06 Profil |
#5 · Zasláno: 30. 7. 2010, 10:29:35 · Upravil/a: Jack06
NU, tak jsem trochu postoupil, ale ještě nevím, jak omezit aby před a za rovná se mohlo být mezer kolik chce.., kdyžtak se pls podívejte, jestli to co jsem upravil jsem vůbec upravil dobře.
preg_match('^href *=(["|\']|)(.*)(["|\']| |$)^U', "<a href =index.php class='a'>asdf</a>", $m); var_dump($m[2]); nicméně pořád nechápu proč mi to nebere ty uvozovky, apostrof, nebo mezeru prostě jako poslední znak který to brát :-( .. když tam je mezera, tak to funguje jak má, ale jakmile tam jsou uvozovky například, tak to bere ještě x znaků za tím. |
||
Časová prodleva: 14 let
|
0