使用PHP preg_match_all,获取href的值
即使阅读了本教程,我也不太了解正则表达式是如何工作的 以下是我需要找到的:使用PHP preg_match_all,获取href的值,php,regex,preg-match-all,Php,Regex,Preg Match All,即使阅读了本教程,我也不太了解正则表达式是如何工作的 以下是我需要找到的: <link type="text/html" rel="alternate" href="http://link"/> 以下是我尝试过的: $find = preg_match_all( '/<link type="text/html" rel="alternate" href=".*', $file, $patterns2 ); $find=preg\u match\u a
<link type="text/html" rel="alternate" href="http://link"/>
以下是我尝试过的:
$find = preg_match_all(
'/<link type="text/html" rel="alternate" href=".*',
$file,
$patterns2
);
$find=preg\u match\u all(
“/使用regex解析(X)HTML是。使用专用的XML解析器。php有很多可用的解析器。您必须在括号中包含所需的文本块,如(.*)
,这就是将返回的内容
这个对我有用
<?php
preg_match_all('/<link type="text\/html" rel="alternate" href="(.*)"\/>/','<link type="text/html" rel="alternate" href="http://link"/>',$patterns2);
print_r($patterns2);
?>
使用simplexml
$html = '<link type="text/html" rel="alternate" href="http://link"/>';
$xml = simplexml_load_string($html);
$attr = $xml->attributes();
你确定,你没有在某个地方收到关于缺少分隔符的错误消息吗?你为什么要这样做?你应该告诉他不要使用正则表达式解析HTML。另外,我很抱歉我给了他想要的。哦,好的,谢谢你帮我理解这一点。:)我很感激@Goresplater:谢谢你的建议:)如果它解决了你的问题,请将其标记为“已解决”(绿色nike符号);)你给了他破烂的代码,似乎给了他想要的东西,但正如Goresplater先生所指出的那样,这是错误的和不可扩展的。。。我以后不会再犯同样的错误:)我想我会使用DOM,你更喜欢哪一种?(我只是在听你的youtube视频,我很喜欢:)@Jeremy Dicaire-DOMDocument::loadHTML
将为你修复格式错误的html,因此是首选。但是simple意味着simple(如果html没有格式错误,我个人更喜欢simplexml)
$html = '<link type="text/html" rel="alternate" href="http://link"/>';
$xml = simplexml_load_string($html);
$attr = $xml->attributes();
$dom = new DOMDocument;
$dom->loadHTML($html);
$nodes = $dom->getElementsByTagName('link');
$attr = $nodes->item(0)->getAttribute('href');