我是 SimpleHTMLDom 的新手。我正在用它来解析几个网址并让它以我想要的方式运行。
唯一的问题是加载速度非常慢。我不确定,但我认为是因为我要求解析这么多网址。
但是,我确实知道要解析的源代码的某个区域。
所以我的问题是:有没有办法告诉simpleHtmlDom只解析页面代码中的给定范围,所以它没有那么多要解析的东西? < / p>
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'/>";
}
}
}
?>
答案 0 :(得分:0)
我不知道是否有办法根据行号解析代码的某一部分。我不这么认为,说实话,因为这意味着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'/>";
}
}