1

我有一个脚本可以创建一个包含大约 40,000 个条目的数组,PHP 数组没有限制,除了服务器的内存......

然而,当试图将一个包含大约 40,000 个条目的数组内爆到一个字符串中时,PHP 函数implode()根本不输出任何内容。每个数组条目都有大约一个句子的 aZ 个字符。没有内存错误,完全没有错误!

谁能证实这一点?

我不确定是否可以发布示例!

编辑(2013-06-03):

我可以确认 PHP 内存限制设置为 -1,PHP 错误设置为 E_ALL。那里没有错误,根本没有输出。这似乎是某种 PHP 的错误。

我正在使用echo implode("<br>\n", $myLogArr);没有错误或输出任何内容,我已经设法通过使用获得正确的预期结果foreach ($myLogArr as $line) echo $line."<br>\n";

4

3 回答 3

1

以下工作正常 - 有 50,000 个条目。

<?php
$arr = array();
for ($i = 0; $i < 50000; $i++) {
    $arr[] = str_shuffle('This sentance is of average length, which The Internet says is about 14.2 words.');
}
echo implode(PHP_EOL, $arr);

我建议增加error_reporting并尝试进一步调试。

安东尼。

于 2013-05-31T14:57:01.100 回答
0
$string = str_repeat("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz,",1000000);
$array = explode(",", $string);
var_dump(sizeof($array), strlen(implode(",", $array)));

输出:

int 1000001
int 53000000

OP,你能显示你的代码吗?

于 2013-05-31T14:57:10.973 回答
0

memory_limit 为 -1,然后在 try catch 块中执行您的脚本

于 2013-05-31T14:56:09.970 回答