如何用PHP从html中获取URL值
我发现我的家庭作业有一个问题,那就是如何使用php从html中获取URL值。我尝试了一个网站来尝试我的代码,但我需要得到一些模式的URL(具体结果) 示例:https://video.xxxxxxx/ 我的代码:如何用PHP从html中获取URL值,php,regex,Php,Regex,我发现我的家庭作业有一个问题,那就是如何使用php从html中获取URL值。我尝试了一个网站来尝试我的代码,但我需要得到一些模式的URL(具体结果) 示例:https://video.xxxxxxx/ 我的代码: $regexp = "/<a\s[^>]*href=([\"\']??)([^\\1 >]*?)\\1[^>]*>(.*)<\/a>/siU"; if(preg_match_all("$regexp", $data, $matches, P
$regexp = "/<a\s[^>]*href=([\"\']??)([^\\1 >]*?)\\1[^>]*>(.*)<\/a>/siU";
if(preg_match_all("$regexp", $data, $matches, PREG_SET_ORDER)) {
foreach($matches as $match) {
echo $match[0];
}
}
$regexp=“/]*href=([\”\']??)([^\\1>]*?)\\1[^>]*>(.*)/siU”;
if(preg_match_all($regexp“,$data,$matches,preg_SET_ORDER)){
foreach($matches作为$match进行匹配){
echo$match[0];
}
}
您可以尝试以下方法:
<a.*?href\s*=\s*([\"\'])(.*?)\1.*?>.*?<\/a>
我以前从未使用过PHP,因此您可能必须使用\\1
而不是\1
说明:
解释其中的每一个元素都很繁琐,因此我将给您一个大致的想法。首先,您匹配a
标记,后跟任意数量的字符、样式或不同的属性,然后是href=
。在这里,我们开始捕获组1,其中包含您的'
或“
”。捕获组2包含您网站的url,但不包含报价。然后,我们使用\1
来引用首次使用的报价类型
如果出于任何原因,希望将文本放在a
标记中,可以使用\3
请注意:您需要使用match[2]
而不是match[0]
请说得更具体一些,因为它是目前写的,您的帖子可能永远不会有任何答案。请在问题中包括一些示例输入和它们所需的输出。@Pierre我在几分钟内编辑了我的答案多次,所以请参考它的最新版本,就是现在的版本。