可能重复:
如何使用 PHP 解析和处理 HTML?
请帮助我,我需要使用 file_get_contents 在加载页面上的标签(<DIV id="image">any text in source soce</DIV>
)之间选择文本的脚本。
一位朋友建议我,但它不起作用:
$vyber = file_get_contents($url);
preg_match_all("'<span>(.*?)</span>'si", $vyber, $get);
可能重复:
如何使用 PHP 解析和处理 HTML?
请帮助我,我需要使用 file_get_contents 在加载页面上的标签(<DIV id="image">any text in source soce</DIV>
)之间选择文本的脚本。
一位朋友建议我,但它不起作用:
$vyber = file_get_contents($url);
preg_match_all("'<span>(.*?)</span>'si", $vyber, $get);
我不知道正则表达式是否是这里最好的解决方案。
您无法创建完美的正则表达式(或者您可以但需要很多时间),这将涵盖
<div somethingelse="" id="image"></div>
<div id="Image></div>
<div id=Image></div>
我要做的是使用 html dom 解析器 http://simplehtmldom.sourceforge.net/
代码将是:
<?php
require_once('DomParserFile.php'); //Replace this ofc
$Html = file_get_html('http://YourUrlHere.com/'); //html not file :)
$ContentInThisDiv = $Html->fing('div#image')->src;
echo($ContentInThisDiv);
?>
$dom = new DOMDocument;
$dom->loadHTMLFile('http://urlhere.com');
$xpath = new DOMXPath($dom);
$nodes = $dom->getElementsByTagName('div');
foreach($nodes as $val):
$id = $val->getElementByid('image');
foreach($id as $content){
$text = $content->nodeValue;
endforeach;
echo $text . '</br>\n';
endforeach;
尽管未经测试,这应该可以工作。