0
<?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 中写入或放入任何内容。这里有什么问题?

4

2 回答 2

0

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

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

于 2012-11-04T16:29:56.393 回答
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); <----------------------------------+
}

您要做的就是与这两条线相同

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

观察

仍然不确定您为什么决定使用以下代码

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

这个会

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

你需要添加你的var_dump($list)expected output如果你真的有一个可行的解决方案

于 2012-11-04T16:46:03.573 回答