我已经查看了 PHP 的 simple html dom ,它的功能非常好。但是当我尝试将返回值添加到 PHP 数组时出现了问题。
我有一个示例,您可以在http://fae.ctrl.fo/plane_script/ 查看结果。下面的脚本提供了该链接的数据。
我有一个示例,您可以在http://fae.ctrl.fo/plane_script/ 查看结果。下面的脚本提供了该链接的数据。
<?PHP
include('simple_html_dom.php');
$resultSet = array();
$html = file_get_html('http://212.55.50.147');
foreach($html->find('tr[class^=FlightScheduleItem]') as $tr)
{
$row = array();
foreach($tr->find('td') as $td)
{
echo $td->innertext." ";
$row[] = $td->innertext;
}
$resultSet[] = $row;
}
echo "<br/><br/><br/>";
echo $_GET['callback'] . '(' .json_encode($resultSet) . ')';
?>
您可以看到,我打印出在 td 标签中发现的所有数值,并在同一循环中将它们保存在一个数组中。如果您检查输出结果,您会发现 "Reykjavík" 没有在该数组中。
您知道为什么吗?
后来编辑:
如果我使用 PHP 的 print_r 函数,我可以在我的数组中找到这个词。这意味着 json_encode 将 Reykjavík 转换为 null。
您知道为什么或者有其他替代方法吗?
谢谢!
后来编辑:
在您的帮助下,我修改了此行:
$row[] = htmlentities($td->innertext, UTF-8);
...现在它可以运行了。
谢谢。
Reykjavík
,而不是Reykjavik
。请注意特殊字符í
。 - Nick