PHP fwrite写空文件

时间:2013-03-27 23:59:13

标签: php file-io fwrite

我正在尝试将此文件保存并创建文件,但它始终为空。这是它的代码:

<?php

$code = htmlentities($_POST['code']);

$i = 0;
$path = 'files/';
$file_name = '';

while(true) {
    if (file_exists($path . strval($i) . '.txt')) {
        $i++;
    } else {
        $name = strval($i);
        $file_name = $path . $name . '.txt';
        break;
    }
}

fopen($file_name, 'w');
fwrite($file_name, $code);
fclose($file_name);

header("location: index.php?file=$i");

?>

我回显了$ code以确保它不是空的,但事实并非如此。我也试过替换

fwrite($file_name, $code);

用这个:

fwrite($file_name, 'Test');

它仍然是空的。我以前在PHP中写了几次文件,但我还是PHP的新手,我不知道什么是错的。有人能告诉我我做错了什么或如何解决这个问题?感谢

2 个答案:

答案 0 :(得分:1)

看看php.net上的samples

答案 1 :(得分:1)

读取/写入文件或流需要资源句柄:

$resource = fopen($file_name, 'w');
fwrite($resource, $code);
fclose($resource);

资源句柄$resource本质上是指向打开文件/流资源的指针。您与创建的资源句柄交互,而不是文件名的字符串表示。

此概念也存在cURL。这是PHP中的常见做法,特别是因为当这些方法出现时,PHP不支持OOP。