这是文件test1.php:
<?php
set_time_limit(0);
for($i= 1;$i<5000 ;$i++){
$comm_sjis = "echo 'test'";
$result = exec($comm_sjis);
}
unset($result);
echo 'ok';
这是文件test2.php:
<?php
set_time_limit(0);
function write_txt($str)
{
$filepath = 'E:/temp/test.xml';
if (($fp = @fopen($filepath, "a")) === false) {
return;
}
if (!flock($fp, LOCK_EX)) {
@fclose($fp);
return;
}
if (fwrite($fp, $str . "\n") === false) {
@flock($fp, LOCK_UN);
@fclose($fp);
return;
}
if (!fflush($fp)) {
@flock($fp, LOCK_UN);
@fclose($fp);
return;
}
if (!flock($fp, LOCK_UN)) {
@fclose($fp);
return;
}
if (!fclose($fp)) {
return;
}
}
for($i= 1;$i<100 ;$i++){
write_txt('test');
unlink('E:/temp/test.xml');
}
echo 'ok';
如果我在运行test1.php的同时运行test2.php,就会出现如下错误:
当我只运行test2.php时,而不运行test1.php,则不会出现此错误。为什么执行该函数时unlink会出现Permission denied错误?警告: unlink(E:/temp/test.xml): Permission denied in C:\xampp\htdocs\test2.php on line 45
我使用的是Windows 7上的XAMPP 3.2和php 5.6。
if
不会测试==
或===
,它测试的是true
或false
,括号中的内容先运行并返回true
或false
,设置一个变量后,该变量的内容被返回,所以如果$fp = false
,则 if 语句返回 false,就像在设置$fp
后执行if($fp)
一样。这是 PHP 中最基本的 if 语句用法,你应该阅读一些文档,而不仅仅是按照你看到的基本代码去做。 - Barkermn01