PHP simple_html_dom 函数中的内部错误
PHP internal error in simple_html_dom function
我尝试使用 curl 和 simple_htmlDOM 从网站提取数据。数据包含时间 table、讲座和老师。代码正常运行,但出现内部错误 500。
function parse($curl){
$html=new simple_html_dom();
$html->load($curl);
$legend=$html->find('div.mainpage',0)->children(6);//legenda
$table=$html->find('div.mainpage',0)->children(3);//table body
echo $table->outertext;
echo $legend->outertext;
echo "<p>";
foreach ($html->find('td.rozvrh-pred')as $subject){
$subjecttextname=$subject->children(0)->children(2)->innertext;
$subjecttextlecture=$subject->children(0)->children(5)->children(0)->innertext; //internal error point to this row to function children
echo $subjecttextname." : ".$subjecttextlecture."<br>";
}
echo "</p>";
}
有什么办法可以解决这个问题吗?
[更新]
我正在处理的数据如下所示:
<td class="" align="left"><small></small></td><td width="18" colspan="2" align="center" class="rozvrh-pred">
<small>
<a href="../mistnosti/?zobrazit_mistnost=922;zpet=../katalog/rozvrhy_view.pl?rozvrh_student=79992,zobraz=1;lang=en">ab300 (BA-MD-FEI A-B)</a><br/>
<a href="../katalog/syllabus.pl?predmet=313986;zpet=../katalog/rozvrhy_view.pl?rozvrh_student=79992,zobraz=1;lang=en">Algebraic structures</a>
<sup>(1)</sup><br />
<i><a href="../lide/clovek.pl?id=733;zpet=../katalog/rozvrhy_view.pl?rozvrh_student=79992,zobraz=1;lang=en">TEACHER</a></i>
</small>
</td>
但是我如何处理文本值,例如 Algerbraic Structures 或 Teacher?
用 is_object() 测试你从简单的 html dom 得到的每一件事。
示例:
$html = str_get_html($str_html);
if(!is_object($html)) {
//Log error or return error
return false;
}
$legend=$html->find('div.mainpage',0)->children(6);
if(!is_object($legend)) {
//Log error or return error
return false;
}
如果它不是对象并且您尝试使用简单的 html dom 进一步解析,那么您每次都会遇到致命错误。
我尝试使用 curl 和 simple_htmlDOM 从网站提取数据。数据包含时间 table、讲座和老师。代码正常运行,但出现内部错误 500。
function parse($curl){
$html=new simple_html_dom();
$html->load($curl);
$legend=$html->find('div.mainpage',0)->children(6);//legenda
$table=$html->find('div.mainpage',0)->children(3);//table body
echo $table->outertext;
echo $legend->outertext;
echo "<p>";
foreach ($html->find('td.rozvrh-pred')as $subject){
$subjecttextname=$subject->children(0)->children(2)->innertext;
$subjecttextlecture=$subject->children(0)->children(5)->children(0)->innertext; //internal error point to this row to function children
echo $subjecttextname." : ".$subjecttextlecture."<br>";
}
echo "</p>";
}
有什么办法可以解决这个问题吗? [更新]
我正在处理的数据如下所示:
<td class="" align="left"><small></small></td><td width="18" colspan="2" align="center" class="rozvrh-pred">
<small>
<a href="../mistnosti/?zobrazit_mistnost=922;zpet=../katalog/rozvrhy_view.pl?rozvrh_student=79992,zobraz=1;lang=en">ab300 (BA-MD-FEI A-B)</a><br/>
<a href="../katalog/syllabus.pl?predmet=313986;zpet=../katalog/rozvrhy_view.pl?rozvrh_student=79992,zobraz=1;lang=en">Algebraic structures</a>
<sup>(1)</sup><br />
<i><a href="../lide/clovek.pl?id=733;zpet=../katalog/rozvrhy_view.pl?rozvrh_student=79992,zobraz=1;lang=en">TEACHER</a></i>
</small>
</td>
但是我如何处理文本值,例如 Algerbraic Structures 或 Teacher?
用 is_object() 测试你从简单的 html dom 得到的每一件事。 示例:
$html = str_get_html($str_html);
if(!is_object($html)) {
//Log error or return error
return false;
}
$legend=$html->find('div.mainpage',0)->children(6);
if(!is_object($legend)) {
//Log error or return error
return false;
}
如果它不是对象并且您尝试使用简单的 html dom 进一步解析,那么您每次都会遇到致命错误。