| FAQ |
| Kalender |
|
|
#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
|
|
|
#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 |
|
|