使用 php 正则表达式从 html 文档实时 url 获取任何用户输入的 html 标签
我想获取 HTML 页面上可用的任何元、标题、脚本、链接标签,这是我编写的程序(不正确,但会给专家提供想法)。
<?php
function get_tag($tag_name, $url)
{
$content = file_get_contents($url);
// this is not correct : regular expression please //
preg_match_all($tag_name, $content, $matches);
return $matches;
}
print_r(get_tag('title', 'http://stackoverflow.com'));
?>
输出应该是这样的:
Array
(
[0] => title
[1] => Stack Overflow
)
谢谢!!
I want to fetch any meta, title, script, link tag that is available on HTML page, this is the program i write (not correct but will give idea for experts).
<?php
function get_tag($tag_name, $url)
{
$content = file_get_contents($url);
// this is not correct : regular expression please //
preg_match_all($tag_name, $content, $matches);
return $matches;
}
print_r(get_tag('title', 'http://stackoverflow.com'));
?>
Output should come something like this :
Array
(
[0] => title
[1] => Stack Overflow
)
Thanks!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这个答案实际上会给你标签的名称作为你的第一个数组值而不是“数组”,并且也会停止警告。
This answer will actually give you the name of the tag as your first array value rather than "array" and will also stop the warning.
在使用正则表达式解析 HTML 之前,您需要阅读 这个问题。
尝试使用 DOMDocument,如下所示:
Before using regex for parsing HTML, you want to read the first answer from this question.
Try with DOMDocument, like this:
由于这些标签不能嵌套,因此不需要解析。
如果您在函数中使用它,则必须编写 $tag_name 而不是“meta|title|script|link”。
Since these tags cannot be nested, parsing is not necessary.
If you are using this with your function, you will have to write $tag_name instead "meta|title|script|link".