我正在尝试阅读在这里找到的文本文件:http://www1.m2.mediacat.ne.jp/binews/use/bia13.txt
这是一个标签分隔列表的短波无线电广播时间表,我想要填充到一个MySQL数据库。我可以下载它并把它放到一个数组中。一个var_dump显示一切都在那里。然而..。
$schedule=file('schedule.txt');
foreach($schedule as $line)
{
echo $line.'<br>';
}只显示文件的最后一行。
for ($i; $i<=count($schedule);$i++)
{
echo $schedule[$i];
}生成Apache 500内部服务器错误(脚本头过早结束)。
但是,如果我这么做:
echo $schedule[0];它正确地显示了这一行。
因此,我假设数组中的某个地方是一些无法打印或控制的字符,这些字符使Apache非常适合。
我所做的是:
$bigstring=json_encode($schedule);
$schedule=$json_decode($bigstring);它允许我在$schedule上做一个预测,然后打印出来。
我已经尝试过:
echo utf8_decode($line).'<br>';这让我可以运行一个foreach,它会显示这些行,但是这两个“工作”解决方案都去掉了制表符/间距,我需要将这些行分解成字段。
对于如何以不同的方式将其加载到数组中,我可以对其做一个预测并对其进行解析,或者是否有一个好的方法来显示哪些控制/字符代码可能导致崩溃/打嗝?
谢谢
发布于 2013-08-01 15:19:43
我可能遗漏了一些东西,但是在for循环中,难道不应该将$i初始化为一个值吗?下列操作使我能够显示文件的内容:
$schedule = file("bia13.txt");
$count = count($schedule);
echo "<pre>";
for ($i = 0; $i < $count; $i++) {
echo $schedule[$i];
}
echo "</pre>";每当PHP遇到致命错误时,我的500主机就会给我一个Apache 500错误。这可能就是你的错误的来源。
发布于 2013-08-01 15:21:04
我觉得编码没什么不对的。这可能是由于Apache服务器配置不支持的设置或触发器操作造成的。
所以你需要编辑htaccess文件。
https://stackoverflow.com/questions/17997695
复制相似问题