'unlink',执行函数[exec]时权限被拒绝错误

D T*_*D T 10 php

这是文件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';
Run Code Online (Sandbox Code Playgroud)

这是文件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';
Run Code Online (Sandbox Code Playgroud)

如果我在test1.php运行时运行文件test2.php,则会发生错误:

警告:的unlink(E:/temp/test.xml):权限被拒绝在C:\ XAMPP\htdocs中\第45行上test2.php

当我只运行test2.php而没有test1.php时,不会发生此错误.为什么在执行函数时unlink会给出Permission denied错误?

我在Windows 7上使用XAMPP 3.2 vs php 5.6.

D T*_*D T -1

我通过将 PHP 版本升级到 7.1.12 解决了这个问题