Php SimpleHTMLDom:有没有办法只解析某些代码行?
我不熟悉使用SimpleHTMLDom。我用它来解析几个url的,并让它按照我想要的方式工作 唯一的问题是加载速度非常慢。我不确定,但我想这是因为我要求解析这么多的url 然而,我确实知道我想要解析的源代码的某个区域 所以我的问题是:有没有办法告诉simpleHtmlDom只解析页面代码上的给定范围,这样它就没有那么多要解析的内容了?Php SimpleHTMLDom:有没有办法只解析某些代码行?,php,parsing,simple-html-dom,Php,Parsing,Simple Html Dom,我不熟悉使用SimpleHTMLDom。我用它来解析几个url的,并让它按照我想要的方式工作 唯一的问题是加载速度非常慢。我不确定,但我想这是因为我要求解析这么多的url 然而,我确实知道我想要解析的源代码的某个区域 所以我的问题是:有没有办法告诉simpleHtmlDom只解析页面代码上的给定范围,这样它就没有那么多要解析的内容了? Class Standings { public static function Status($url) { require_o
Class Standings
{
public static function Status($url)
{
require_once("include.all.php");
require_once('simple_html_dom.php');
// Create a DOM object from a URL
$html = file_get_html($url);
// Find all <div> with the id attribute
$ret = $html->find('div#cams_view_top');
if($ret == null)
{
echo "<img src='images/offline.fw.png'/>";
}
else
{
echo "<img src='images/online.fw.png'/>";
}
}
}
?>
班级排名
{
公共静态函数状态($url)
{
只需要一次(“include.all.php”);
require_once('simple_html_dom.php');
//从URL创建DOM对象
$html=file\u get\u html($url);
//使用id属性查找所有
$ret=$html->find('div#cams_view_top');
如果($ret==null)
{
回声“;
}
其他的
{
回声“;
}
}
}
?>
仅解析某些元素
我不知道是否有办法根据行号只解析代码的某一部分。老实说,我不这么认为,因为这意味着DOM不完整,因此无法正确解析
例如,您可以要求它不要解析某些元素。例如,当您看到一个元素时,您知道您不想解析它。但我不知道怎么做(不过我很想知道)
关于您的脚本非常慢这一更具全球性的问题:
SimpleHtmlDom已知存在内存泄漏,当迭代分析多个文档时,这通常是有问题的。这是由PHP5内存管理本身引起的已知错误
因此,在创建每个DOM对象之后,您应该像这样释放内存:
public static function Status($url)
{
require_once("include.all.php");
require_once('simple_html_dom.php');
$html = file_get_html($url);
$ret = $html->find('div#cams_view_top');
// Free memory to avoid memory leakings
$html->clear();
unset($html);
if($ret == null)
{
echo "<img src='images/offline.fw.png'/>";
}
else
{
echo "<img src='images/online.fw.png'/>";
}
}
公共静态函数状态($url)
{
只需要一次(“include.all.php”);
require_once('simple_html_dom.php');
$html=file\u get\u html($url);
$ret=$html->find('div#cams_view_top');
//释放内存以避免内存泄漏
$html->clear();
未结算($html);
如果($ret==null)
{
回声“;
}
其他的
{
回声“;
}
}
Source:当然可以,只需传递要解析的部分即可。但如果您遇到问题,可能是时候找到更好的html解析器(phpquery)或只使用DomXPath了