0

我试图让它保存一个文件并创建文件,但它总是空的。这是它的代码:

<?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 还是很陌生,我不知道出了什么问题。有人可以告诉我我做错了什么或如何解决这个问题吗?谢谢

4

2 回答 2

1

看看php.net上的示例

于 2013-03-28T00:05:51.147 回答
1

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

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

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

这个概念也存在于cURL中。这是 PHP 中的一种常见做法,尤其是当这些方法出现时 PHP 不支持 OOP。

于 2013-03-28T00:11:50.120 回答