即使在我阅读本教程http://www.webcheatsheet.com/php/regular_expressions.php
之后,我也不太了解正则表达式的工作原理以下是我需要找到的内容:
<link type="text/html" rel="alternate" href="http://link"/>
它应该返回:
http://link
以下是我的尝试:
$find = preg_match_all(
'/<link type="text/html" rel="alternate" href=".*',
$file,
$patterns2
);
你可以笑:)
提前感谢您的帮助和时间:)
答案 0 :(得分:3)
使用正则表达式解析(X)HTML为almost certainly wrong。使用专用的XML解析器。有很多可用于PHP。
答案 1 :(得分:3)
使用simplexml
$html = '<link type="text/html" rel="alternate" href="http://link"/>';
$xml = simplexml_load_string($html);
$attr = $xml->attributes();
使用dom
$dom = new DOMDocument;
$dom->loadHTML($html);
$nodes = $dom->getElementsByTagName('link');
$attr = $nodes->item(0)->getAttribute('href');
答案 2 :(得分:2)
您必须在括号中填写所需的文本块,例如(.*)
,这将是要返回的内容
这个适合我
<?php
preg_match_all('/<link type="text\/html" rel="alternate" href="(.*)"\/>/','<link type="text/html" rel="alternate" href="http://link"/>',$patterns2);
print_r($patterns2);
?>