0

我正在阅读此处找到的文本文件: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 上进行 foreach 并将其打印出来

我已经在 foreach 中尝试过:

echo utf8_decode($line).'<br>';

这让我运行了一个 foreach 并显示了这些行,但是这两个“工作”解决方案都去掉了我需要将行分成字段的制表符/间距。

关于如何以不同方式将其加载到可以对其进行 foreach 并对其进行解析的数组中的任何想法,或者是否有一种好方法可以显示哪些控制/字符代码可能导致崩溃/打嗝?

谢谢

4

2 回答 2

1

我可能遗漏了一些东西,但在 for 循环中你不应该将 $i 初始化为一个值吗?以下内容对我有用,可以显示文件的内容:

$schedule = file("bia13.txt");
$count = count($schedule);
echo "<pre>";
for ($i = 0; $i < $count; $i++) {
    echo $schedule[$i];
}    
echo "</pre>";

每当 PHP 遇到致命错误时,我的虚拟主机都会给我一个 Apache 500 错误。那可能是您的错误的来源。

于 2013-08-01T15:19:43.620 回答
0

我认为编码没有错。这可能是由于您的 Apache 服务器配置不支持的设置或触发操作。

所以你需要编辑 htaccess 文件。

https://www.dokuwiki.org/faq:error500

于 2013-08-01T15:21:04.673 回答