FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Har WN som tidsfördriv
|
Hej!
Jag har ett litet problem med preg_match_all i php. Eller snarare, jag skulle behöva hjälp med hur man konstruerade en regexp för att matcha länkar. Jag har en sträng som innehåller flera rader av länkar i följande struktur: Kod:
<a href="/xxx" title="xxxx">12312</a> - <a href="exempellänk.php" title="Länk 1 title">haha, jasså?</a>, liten kommentar. <a href="/xxx" title="xxxx">12312</a> - <a href="exemp_ellnk.php" title="Länk 2 title">absolut sant</a>. Hur gör man? Dvs, få ett resultat likt detta: Kod:
Array ( 0 = "Länk 1 title" 1 = "Länk 2 title" ) Kod:
preg_match_all('/\<a href="([^"]+)" title="([^"]+)">([^"]+)<\/a>/', $output, $matches); Jag har slut på idéer.. Hur får man detta att fungera? Hjälp mig! // Jim |
|||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Nykomling
|
Är det någonting sånt här du är ute efter eller missförstår jag?
Kod:
<?php $str= '<a href="/xxx" title="xxxx">12312</a> - <a href="exempellänk.php" title="Länk 1 title">haha, jasså?</a>, liten kommentar. <a href="/xxx" title="xxxx">12312</a> - <a href="exemp_ellnk.php" title="Länk 2 title">absolut sant</a>.'; preg_match_all("/title=\"(.*?)\"/",$str,$matches); print_r($matches); ?> Kod:
Array ( [0] => Array ( [0] => title="xxxx" [1] => title="Länk 1 title" [2] => title="xxxx" [3] => title="Länk 2 title" ) [1] => Array ( [0] => xxxx [1] => Länk 1 title [2] => xxxx [3] => Länk 2 title ) ) |
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Har WN som tidsfördriv
|
Din kod fungerar helt perfekt. Men ett par undantag.
Slutarrayn blir väldigt rörig, då den plockar ut "xxxx" också. Jag kan ta bort varannan rad i arrayn, men det blir inte riktigt helt säkert, för ibland har jag upptäckt att det saknas "xxxx" på vissa rader, och tvärt om. Finns det nåt sätt att plocka ut bara den ANDRA länken's title, och skippa den första helt? // Jim |
|||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Nykomling
|
Om din data ser exakt likadan ut som ditt exempel förutom title-taggarna så borde detta fungera.
Kod:
<?php $str= '<a href="/xxx" title="xxxx">12312</a> - <a href="exempellänk.php" title="Länk 1 title">haha, jasså?</a>, liten kommentar. <a href="/xxx" title="xxxx">12312</a> - <a href="exemp_ellnk.php" title="Länk 2 title">absolut sant</a>. <a href="/xxx">12312</a> - <a href="exempellänk.php" title="Länk 3 title">haha, jasså?</a>, liten kommentar. <a href="/xxx" title="xxxx">12312</a> - <a href="exemp_ellnk.php">absolut sant</a>.'; preg_match_all("/ - <a(.*?) title=\"(.*?)\"/",$str,$matches); print_r($matches); ?> Kod:
... * *[2] => Array * * * *( * * * * * *[0] => Länk 1 title * * * * * *[1] => Länk 2 title * * * * * *[2] => Länk 3 title * * * *) ) |
||
![]() |
![]() |
Svara |
|
|