PHP在foreach循环后停止执行

时间:2014-07-08 19:48:11

标签: php

我有一段代码如下:

ini_set("display_errors", "1");
error_reporting(E_ALL);

$i = 0;
do {
$filename = "links".DIRECTORY_SEPARATOR . $i++ . "-WriteURLs.txt";
} while (file_exists($filename));

$write_URLs = fopen($filename, "w");

foreach ($list_URLs as $htmlIndividual) {
      GetURLs ($htmlIndividual);
      foreach ($URLs as $URLK) {
      fwrite($write_URLs, $URLK ."\n");
    }
echo "Hello World (Inside Foreach Loop) <br>";    
}    
echo "Hello World (First Foreach Loop) <br>";
fclose($write_URLs);
$trimmed = explode("\n",file_get_contents($filename));
foreach ($trimmed as $URLSa) {
    echo "Hello World (Second Foreach Loop) <br>";
}

代码会将网址写入0-WriteURLs.txt1-WriteURLs.txt2--WriteURLs.txt和...并在每次执行代码时回显以下内容:

Hello World (Inside Foreach Loop) 
Hello World (Inside Foreach Loop) 

但是,正如您所看到的,代码在第一个foreach循环之后停止执行代码,并且它无法相应地回显Hello World (First Foreach Loop)Hello World (Second Foreach Loop)。能告诉我怎样才能解决这个问题吗?谢谢

注意:我将error_reporting = E_ALL添加到php.ini文件并将内存限制增加到memory_limit = 256M,但仍然没有变化。

1 个答案:

答案 0 :(得分:1)

你的代码执行得很好,我打印Hello World(First Foreach Loop)和 Hello World(第二个Foreach循环)以及创建txt文件。

目前没有打印“Hello World(Inside Foreach Loop)”,因为$ list_URLs未定义。

还尝试明确定义错误报告     error_reporting(E_ALL); ini_set('display_errors', 1);

在你的php文件中查看内联的所有错误和警告。这样,它就不会永久保存在整个系统中,只适用于一个文件。