坏境 windows 7  apache php5.6 thinkphp 3.2.3
如图所示,从上到下依次执行,执行一个的时候注销另外两个,相应的结果就在第二行。
大概情况就是,我想用unlink删除文件, 首先有个字符串$obj['v_img'],存的是文件路径。
首先用$obj['v_img']做参数,执行unlink函数,然后失败了,返回false.
然后我直接把字符串的内容复制了当参数,执行unlink,然后成功了???这种情况是什么原因啊???真心求教!

解决方案 »

  1.   

    unlink 失败,会有 E_WARNING 级别的错误信息给你
    你自己不去看,反而让人家去猜。这是什么道理?
      

  2.   

    如果按你说的来讲。
    我这行代码是不是该输出错误信息?因为返回的是嘛
    测试结果是
    什么都没用。
    var_dump结果仍然是false.。
    讲道理真的返回了错误信息dump会不提示类型是字符串?
      

  3.   

    $fn = '405.php';
    if(! file_exists($fn)) { //确认文件不存在
      var_dump(unlink($fn));
      print_r(error_get_last());
    }<b>Warning</b>:  unlink(405.php): No such file or directory in <b>D:\AMP\web\ide_tmp.php</b> on line <b>5</b><br />
    bool(false)
    Array
    (
        [type] => 2
        [message] => unlink(405.php): No such file or directory
        [file] => D:\AMP\web\ide_tmp.php
        [line] => 5
    )
    如果你非要自己给自己找麻烦,我也无话可说
      

  4.   


    所以我一开始就说明了相关环境,才学不久不太懂。我也猜测是这个原因所以去默认坏境重新敲了一段代码测试。多谢您的提示。现在的问题是这段话是在告诉我需要一个路径作为参数而不是字符串是吧?首先我的情况是只有这样才能成功。
    然而出于某种原因我实际上数据库得到的数据是
    所以我执行了这个操作。
    echo 显示的结果和 成功情况下的字符串一致。然后我执行unlink($path),提示失败。请问这样做有错么?为什么删了第一个符号之后unlink就不能接受为参数呢?一开始的$path一样是字符串吧?
      

  5.   


    所以我一开始就说明了相关环境,才学不久不太懂。我也猜测是这个原因所以去默认坏境重新敲了一段代码测试。多谢您的提示。现在的问题是这段话是在告诉我需要一个路径作为参数而不是字符串是吧?首先我的情况是只有这样才能成功。
    然而出于某种原因我实际上数据库得到的数据是
    所以我执行了这个操作。
    echo 显示的结果和 成功情况下的字符串一致。然后我执行unlink($path),提示失败。请问这样做有错么?为什么删了第一个符号之后unlink就不能接受为参数呢?一开始的$path一样是字符串吧?成功的情况配图错了。$path='Uploads/img/test.jpg'才对,没有第一个/。