繁体   English   中英

使用PHP preg_match_all,获取href的值

[英]With PHP preg_match_all, get value of href

即使在我阅读本教程之后,我也不太了解正则表达式的工作原理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
);

你可以笑:)

在此先感谢您的帮助和时间:)

使用正则表达式解析(X)HTML 几乎肯定是错误的 使用专用的XML解析器。 有足够的PHP可用。

使用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');

你必须在括号中覆盖所需的文本块,如(.*) ,这将是返回的内容

这个适合我

<?php
preg_match_all('/<link type="text\/html" rel="alternate" href="(.*)"\/>/','<link type="text/html" rel="alternate" href="http://link"/>',$patterns2);
print_r($patterns2);
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM