Preg_match - Abrufen href
-
19-09-2019 - |
Frage
Ich habe mit einer Frage steckengeblieben habe ich geholfen, gerade -. Es ist ein neues Problem, aber nur gerade etwas
Ich habe diese preg_match den Inhalt href zu erhalten. Bitte erzählen Sie mir nicht nicht zu verwenden regex - ich bin mir bewusst, mit anderen Parsern / Klassen usw., aber das ist ein altes Skript, dass nur Bedarf für jetzt festgelegt werden. :) Keine Zeit für die Wieder schreibt!
preg_match("~<a target=\'_blank\' rel=\'nofollow\' href=\"(.*?)\">~i", $epilink, $epiurl);
Es gibt:
http://www.example.com/frame2.php?view=&epi=54673-r
Es sollte jedoch zurück:
http://www.example.com/frame2.php?view=168204&epi=54673
Dies ist ein Beispiel für HTML es mit funktionieren würde:
<a target='_blank' rel='nofollow' href="http://www.example.com/frame2.php?view=545903&epi=54683">
Warum ist die URL Ich habe zurück malformed?
Danke alle für jede Hilfe.
Lösung
$string="<a target='_blank' rel='nofollow' href=\"http://www.example.com/frame2.php?view=545903&epi=54683\">";
$s = explode('">',$string);
foreach($s as $k){
if (strpos($k,"href")!==FALSE){
echo preg_replace('/.*href="|/ms',"",$k);
break;
}
}
Ausgang
$ php test.php
http://www.example.com/frame2.php?view=545903&epi=54683
Andere Tipps
Dies sollte funktionieren:
$epilink = "<a target='_blank' rel='nofollow' href=\"http://www.example.com/frame2.php?view=545903&epi=54683\">";
preg_match("/<a target='_blank' rel='nofollow' href=\"(.*?)\">/i", $epilink, $epiurl);
print_r($epiurl);
Sie können auch verwenden preg_match_all
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow