PHP file_exists 和取消链接不起作用 ("No such file or directory")

标签 php warnings file-exists unlink

$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> 并且文件没有被删除,我之前也尝试过使用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);
?>

关于PHP file_exists 和取消链接不起作用 ("No such file or directory"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18455188/

相关文章:

php - 用于评级系统的高效 MySQL 表结构

java - 如何解决 "javadoc: warning - Multiple sources of package comments found for package a.b.c"?

function - 使用 VBA 或 Excel 测试文件是否存在(不带 "DIR")

php - Wordpress 格式问题

PHP -MySQL 插入和选择语句 - 如何使它们成为原子的?

java - 类型参数 T 使用 Eclipse 在 <T> T[] toArray(T[] a) 中隐藏类型 T

c# - 区分大小写 Directory.Exists/File.Exists

PHP:is_file() 和 file_exists() 在同一个文件上返回不同的结果

php - 使用 PHP 从字符串或文件中提取多个电话号码

mysql - 为什么我的数据被截断了?警告 |第1265章列的数据被截断