<?php
//test.php
@unlink('/tmp/abc.php');
var_dump(@include_once('/tmp/abc.php'));
swritefile('/tmp/abc.php','<?php echo 123;');
var_dump(file_exists('/tmp/abc.php'));
var_dump(include_once('/tmp/abc.php'));
function swritefile($filename, $writetext, $openmod='w')
{
if (@$fp = fopen($filename, $openmod)) {
flock($fp, 2);
fwrite($fp, $writetext);
fclose($fp);
return true;
}
}
针对以上代码,分三次运行:
- 访问test.php,输出如下
bool(false) bool(true) 123int(1)
- 更改生成文件所属用户
chown vaxili:vaxili /tmp/abc.php
.,然后访问test.php输出如下
123int(1) bool(true) bool(true)
- 删除生成的文件
rm /tmp/abc.php
,访问test.php,输出如下:
bool(false) bool(true) bool(true)
类似这个问题
最后决定不用include_once了 换成include