[英]How to get <pre> tag contents using preg_match_all?
我需要废弃<pre>
标签内容中的webspage。 我正在使用preg_match_all
函数,但它不起作用。
我的刮痧网站<pre>
标签内容如下。
<pre># Mon Jul 22 03:10:03 CDT 2013
99.46.177.18
99.27.119.169
99.254.168.132
99.245.96.210
99.245.29.38
99.240.245.97
99.239.100.211
<pre>
Php文件
更新
$data = file_get_contents('http://www.infiltrated.net/blacklisted');
preg_match_all ("/<pre>([^`]*?)<\/pre>/", $data, $matches);
print_r($matches);
exit;
我的php文件返回空数组。 我知道我的preg_match_all
函数是个问题。
我怎样才能获得预标签内容。 请指导我。
编辑问题
我可以运行@Pieter脚本。 但它只返回Array()
我的脚本如下。
<?php
$url = 'http://www.infiltrated.net/blacklisted';
$data = new DOMDocument();
$data->loadHTML(file_get_contents($url));
$xpath = new DomXpath($data);
$pre_tags = array();
foreach($xpath->query('//pre') as $node){
$pre_tags[] = $node->nodeValue;
}
print_r($pre_tags);
exit;
?>
使用PHP函数循环遍历DOM。 强烈建议不要使用HTML标记的Regex模式。
试试这段代码:
$data = new DOMDocument();
$data->loadHTML(file_get_contents($url));
$xpath = new DomXpath($data);
$pre_tags = array();
foreach($xpath->query('//pre') as $node){
$pre_tags[] = $node->nodeValue;
}
或者尝试PHP Simple HTML DOM Parser,请参阅: http : //simplehtmldom.sourceforge.net/
终于我明白了。 这个http://www.infiltrated.net/blacklisted网址从一个文本文件加载。所以只有pre标签显示在页面源中。 所以我正在使用这种方法。
$array = explode("\n", file_get_contents('http://www.infiltrated.net/blacklisted'));
print_r($array);
最后它的工作迎接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.