写入php文件时无法打开文件

时间:2019-01-27 08:38:56

标签: php fopen file-handling

我正在尝试使用fopen和fwrite

$book="http://bittotb.com/synthesis_study_material/student_admin/include/uploaded/epub/923960_hotel (1).epub";
$path=$book.".php";
$myfile =fopen($path, "w");
$txt = "<?php include('hello.php'); ?>";
fwrite($myfile, $txt);
fclose($myfile);

当我像这样在fopen中写文件名时

$myfile =fopen("abc.php", "w");

然后在同一目录中创建文件,但我想在另一个目录中创建该文件。使用path时,如果我回显$ path则不起作用

http://bittotb.com/synthesis_study_material/student_admin/include/uploaded/epub/923960_hotel (1).epub.php

这是正确的文件名和路径,但是,这仍然使我无法打开文件,并且我的文件夹权限显示为0777

1 个答案:

答案 0 :(得分:3)

您必须使用服务器上的路径,而不是页面的URL。

例如,您的页面可以具有URL http://example.org/index.php。该文件可以位于称为/var/www/example.org/index.php的服务器上。

使用此代码确定您的目录:

<?php
echo getcwd();

如果上面的代码显示/var/www/example.org/,则文件http://example.org/test.php的文件路径为/var/www/example.org/test.php。但是最好使用相对路径。 (见下文)


如果您有页面http://example.org/index.php,并且要创建http://example.org/test.php,请使用以下方法:

$file = fopen("test.php", "w");
fwrite($file, "<?php echo 'Hello World'; ?>");
fflush($file);
fclose($file);

如果要从脚本http://bittotb.com/synthesis_study_material/student_admin/include/uploaded/epub/file.php写入文件http://bittotb.com/synthesis_study_material/student_admin/module/corses/file.php,请使用相对路径:

$file = fopen("../../include/uploaded/epub/file.php", "w");
// ...