源代码(Código):
$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);
在上面的代码中,我在 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
我尝试使用hash(sha1,sha256和sha512)而不是base64_encode,但错误仍然存在。
谢谢。
没有códigoacimaobtenho o alerta No such file or directory
em unlink($path);
eoarquivonãoéexxluído,eutambémtenteiusar {{1 }} para verificararevenênciadoarquivo antes,eoretornoé: file_exists
。
O false
cria o arquivo corretamente(verificado),包含com oconteúdocorreto。 Eutambémconsigo acessar oarquivoatravésde file_put_contents
,mas na hora de excluir ou verificarannileênciaobtenhoinsucesso。 Alguémtemuma dica?
O tamanho total de file_get_contents
é$path
。
O problema parecer mais delicado。 Pois o nome doarquivoéformadopor um base64_encode ,o nome do arquivo muda frequentemente,e eu tenho cerca de 10 arquivosporexecução。 Alguns deles consigo deletar,outrosnão,emitindo o alerta descrito acima。 Seráquepode ser algum caracterequenãquen unlink()nãacerita? Eujáescapoalguns caracteres reservados,como / \?%*:|“<> 。http://en.wikipedia.org/wiki/Filename
Eu tentei usar hash(sha1,sha256 e sha512)no lugar de base64_encode,mas o erro persiste。
Obrigado。
答案 0 :(得分:2)
由于您在/
内使用" "
所以/
char不是普通字符,它通常用于转义特殊字符(在双引号内使用) ),但如果您想忽略字符串值定义中的任何/
,请使用//
所以第一个正斜杠将从第二个斜杠中逃脱,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);
?>
答案 1 :(得分:0)
尝试
$path ="F:/www/__DADOS__/__SESSAO/__9987f2bfdfb80bce8fd72402887bb2c50a433ae0__E6nDSMnD7TCY5#47$BNCx0e#47$r#47$ByZJvcyMIazXSYWBWBXN5lgdZOd3Ps#47$ROrVSPl7QVQaCqfa2WezCauk#47$LVFyhgw==.meudominio.com.sessid"