在php中循环for循环

时间:2012-11-04 16:06:35

标签: php explode

<?php
$list    = file_get_contents('sitelist.txt');
$explode = explode("http://", $list);
$i       = 1;
for ($i = 1; $i < count($explode); $i++) {
    $filename = 'tost.txt';
    $fp       = fopen($filename, "a+");
    $write    = fputs($fp, $explode[$i] . "\n");
    fclose($fp);
}
echo "ok";
?>

它不会在tost.txt中写入或放置任何内容。这有什么不对?

2 个答案:

答案 0 :(得分:0)

您向我们展示的代码没有任何问题。 (好吧,除了跳过数组中的第一个条目,并且数组中可能没有多个条目。)我已经在我的服务器上运行了代码,它输出到tost.txt

因此,问题必须在于代码之外的因素,例如文件权限是否正确以及服务器上是否禁用了文件访问。

答案 1 :(得分:0)

我发现您的代码存在一些问题

for ($i = 1; $i < count($explode); $i++) {
    $filename = 'tost.txt';     <-------------------+
    $fp       = fopen($filename, "a+");-------------| All this should not be 
    $write    = fputs($fp, $explode[$i] . "\n");<---| in a loop
    fclose($fp); <----------------------------------+
}

所有你想要做的就是这2行

$list = file_get_contents('sitelist.txt');
file_put_contents('tost.txt', implode("\n", explode("http://", $list)));

观察

不确定为什么你决定使用以下代码

 explode("http://", $list)

这会

  • 忽略新行
  • 返回无效的网址等

如果您真的想要一个有效的解决方案,则需要添加var_dump($list)expected output