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); <----------------------------------+
}

あなたが結んでいるのは、この2行と同じです

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

観察

次のコードを使用することにした理由がわからない

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

これは

  • 改行を無視する
  • 無効な URL などを返す

本当に機能するソリューションが必要な場合は、var_dump($list)およびを追加する必要がありますexpected output

于 2012-11-04T16:46:03.573 に答える