FAQ |
Kalender |
2005-01-30, 23:07 | #1 | ||
|
|||
Medlem
|
Hej!
Är ingen höjdare på regular expression så jag undrar om nån kan visa hur man skriva för att söka igenom och returnera samtliga länkar från ett html-dokument som skulle kunna vara skrivna av följande PHP-kod: Kod:
<?PHP echo("<a href=\"javascript:displayMessage('".$msgid."', ".$fm.");\" class='lank2'>".$rubrik."»</a>"); ?> gärna i en array som Kod:
array( 0 => array("msgid" => ..., "fm" => ..., "rubrik" => ...), 1 => array("msgid" => ...,...) ... ); (det räcker visserligen med siffer-keys i array:en om det är lättare) $msgid är en 22-siffrigt sifferkod. $fm är 0 eller 1 $rubrik är en textsträng med godtycklig längd! Exempel på några rader ur html-dokumentet: Kod:
<html> blabla <a href="javascript:displayMessage('1096471958673919927738', 0);" class='lank2'>Tryck här»</a> blabla blabla<a href="javascript:displayMessage('1096471870257651289544', 0);" class='lank2'>En annan länk»</a> </html> |
||
Svara med citat |
2005-01-31, 09:44 | #2 | ||
|
|||
Medlem
|
Följande borde fungera...
Kod:
<?php $input="<html>\r\nblabla\r\n<a href=\"javascript:displayMessage('1096471958673919927738', 0);\" class='lank2'>Tryck här»</a> blabla\r\nblabla<a href=\"javascript:displayMessage('1096471870257651289544', 0);\" class='lank2'>En annan länk»</a></html>"; $count = preg_match_all("/<a href=\"javascript:displayMessage\('([0-9]+)', ([0-9]+)\);\" class='lank2'>(.{1,40})»<\/a>/", $input, $matches); print_r($matches); for ($i=0;$i<$count;$i++) { print "msgid: ".$matches[1][$i]."\n"; print "fm: ".$matches[2][$i]."\n"; print "rubrik: ".$matches[3][$i]."\n\n"; } ?> Kod:
Array ( [0] => Array ( [0] => <a href="javascript:displayMessage('1096471958673919927738', 0);" class='lank2'>Tryck här»</a> [1] => <a href="javascript:displayMessage('1096471870257651289544', 0);" class='lank2'>En annan länk»</a> ) [1] => Array ( [0] => 1096471958673919927738 [1] => 1096471870257651289544 ) [2] => Array ( [0] => 0 [1] => 0 ) [3] => Array ( [0] => Tryck här [1] => En annan länk ) ) msgid: 1096471958673919927738 fm: 0 rubrik: Tryck här msgid: 1096471870257651289544 fm: 0 rubrik: En annan länk |
||
Svara med citat |
Svara |
|
|