这是我从旧表中加载数据的脚本,也就是说它是单向的,不可编辑的"。
$document = new DOMDocument();
$document -> loadHTMLFile('http://www.table.html');
$rows = $document -> getElementsByTagName('tr');
之后我将<td>
加载到数组中:
$numRow = 0;
foreach($rows as $result){
// 15 columns to load.
for($i = 0; $i < 15; $i++){
$array[$numRow][$i] = $result
->getElementsByTagName('td')
->item($i)
->nodeValue;
}
$numRow++;
}
到目前为止一切顺利,但问题就此开始了。所有行都有一个字符串列,用于&#34; description&#34;并且在描述中经常存在人类错误类型错误,例如:
这是一个单元格:<td>Suppor<</td>
(有人在这里错误地IDK如何)错误:Tag o invalid
或当细胞含有&#34;&amp;&#34;喜欢这个:
另一个例子:<td>From A&A Limited.</td>
错误:htmlParseEntityRef: expecting ';'
此行$document -> loadHTMLFile('http://www.table.html');
正如您所见,该表的15 columns
为$i = 4
字符串列。我不是一个真正的PRO程序员,并没有真正看到这一点。提前感谢任何可以帮助我的人。
答案 0 :(得分:0)
我认为你不会找到任何修复破坏HTML的神奇方法,但是你可以改变libxml(它支持DOMDocument)稍微处理错误的方式,这样它就能为你提供尽可能多的可用输出。您是否尝试将错误处理更改为内部?查看libxml_use_internal_errors()。
答案 1 :(得分:0)
我找到了解决方案:
@$document -> loadHTMLFile('http://www.table.html');
$rows = $document -> getElementsByTagName('tr');
$nodeListLength = htmlentities($rows->length);
for ($i = 0; $i < $nodeListLength; $i ++)
{
$node = $gastos->item(0);
//-> VALORES A MOSTRAR EN TU QUERY
}
我希望它可以帮助另一个有同样问题的人。 感谢那些检查我问题的人。
答案 2 :(得分:0)
尝试在ForEach
之前使用bookings