簡體   English   中英

PHP file_exists 和 unlink 不起作用(“沒有這樣的文件或目錄”)

[英]PHP file_exists and unlink doesn't work (“No such file or directory”)

$path = "F:/www/__DADOS__/__SESSAO/__9987f2bfdfb80bce8fd72402887bb2c50a433ae0__E6nDSMnD7TCY5#47$BNCx0e#47$r#47$ByZJvcyMIazXSYWBWBXN5lgdZOd3Ps#47$ROrVSPl7QVQaCqfa2WezCauk#47$LVFyhgw==.meudominio.com.sessid"

file_put_contents($path, $texto);

unlink($path);

在上面的代碼中,我收到警告在unlink($ path); No such file or directory unlink($ path); 而且文件沒有刪除,之前我也試過用file_exists檢查文件,返回: false

file_put_contents正確創建文件(已檢查),即使內容正確。 我可以通過file_get_contents訪問文件,但及時刪除或驗證存在獲取失敗。 有人有線索嗎?

$path的總大小為241

問題似乎更加微妙。 文件名由base64_encode 組成,文件名經常更改,每次執行我大約有 10 個文件。 我可以刪除一些,其他人不能,發出上述警告。 可以是不是unlink()不接受的任何字符嗎? 我有一些轉義保留字符,例如/\\?%*:|"<> 。http://en.wikipedia.org/wiki/Filename

我嘗試使用哈希(sha1、sha256 和 sha512)而不是 base64_encode,但錯誤仍然存​​在。

由於您在" "內部使用/ ,所以/ char 不是普通字符,它通常用於轉義特殊字符(在雙引號內使用 wen ),但是如果您想忽略字符串值定義中的任何/使用//所以第一個正斜杠將轉義第二個, PHP會將它們視為一個斜杠,但不要忘記轉義美元符號 ( $ ) 以及所有特殊字符或將引號從"更改為'然后你不不必更改字符串值中的任何內容:

<?php
$path = 'F:/www/__DADOS__/__SESSAO/__9987f2bfdfb80bce8fd72402887bb2c50a433ae0__E6nDSMnD7TCY5#47$BNCx0e#47$r#47$ByZJvcyMIazXSYWBWBXN5lgdZOd3Ps#47$ROrVSPl7QVQaCqfa2WezCauk#47$LVFyhgw==.meudominio.com.sessid';
//OR
$path = "F://www//__DADOS__//__SESSAO//__9987f2bfdfb80bce8fd72402887bb2c50a433ae0__E6nDSMnD7TCY5#47/$BNCx0e#47/$r#47/$ByZJvcyMIazXSYWBWBXN5lgdZOd3Ps#47/$ROrVSPl7QVQaCqfa2WezCauk#47/$LVFyhgw==.meudominio.com.sessid";

echo file_exists($path);//will return 1
//unlink($path);
?>

嘗試

$path ="F:/www/__DADOS__/__SESSAO/__9987f2bfdfb80bce8fd72402887bb2c50a433ae0__E6nDSMnD7TCY5#47$BNCx0e#47$r#47$ByZJvcyMIazXSYWBWBXN5lgdZOd3Ps#47$ROrVSPl7QVQaCqfa2WezCauk#47$LVFyhgw==.meudominio.com.sessid"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM