preg_match - استرجاع href
-
19-09-2019 - |
سؤال
لقد تعالى مع سؤال قد ساعدت للتو - مشكلة جديدة ولكن فقط قليلا فقط.
لدي هذا preg_match للحصول على محتويات href. من فضلك لا تقل لي عدم استخدام Regex - أنا أدرك استخدام المحللين / الفصول الدراسية الأخرى وغيرها ولكن هذا سيناريو قديم يحتاج فقط إلى إصلاحه الآن. :) لا وقت لإعادة يكتب!
preg_match("~<a target=\'_blank\' rel=\'nofollow\' href=\"(.*?)\">~i", $epilink, $epiurl);
يعود:
http://www.example.com/frame2.php?view=&epi=54673-r
ومع ذلك، يجب أن يعود:
http://www.example.com/frame2.php?view=168204&epi=54673
هذا مثال على HTML ستعمل مع:
<a target='_blank' rel='nofollow' href="http://www.example.com/frame2.php?view=545903&epi=54683">
لماذا عنوان URL الذي عدت إليه مشوه؟
شكرا جميعا على أي مساعدة.
المحلول
$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;
}
}
انتاج
$ php test.php
http://www.example.com/frame2.php?view=545903&epi=54683
نصائح أخرى
هذا يجب أن يعمل:
$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)؛
تستطيع ايضا استخذام preg_match_all.
لا تنتمي إلى StackOverflow