You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中file_exists对存在文件返回false的问题求助

问题分析与解决方案

嘿,我一眼就揪出问题所在啦!你遇到的麻烦根源出在fgets()函数的特性上——它会把文件行尾的换行符(或空白字符)一起读取进来。

看你给出的输出:

string(8) "myfile2 "
string(22) "/Users/aashok/myfile2 "

myfile2本身只有6个字符,但输出里的字符串长度是8,多出来的就是行尾的空白字符(大概率是换行符,显示成了空格)。这就导致你拼接后的文件路径末尾多了无效空白,和实际存在的文件名myfile2不匹配,所以file_exists()自然返回不存在。

解决办法

只需要在读取行内容后,用trim()函数去掉字符串首尾的空白字符(包括换行符、空格、制表符等)就行:

修改代码里读取文件行的部分:

$f = fopen($file1, 'r');
$file2 = trim(fgets($f)); // 加上trim()处理多余空白
fclose($f);

如果你担心误删文件名开头的合法空格(虽然你这里不存在这种情况),也可以用rtrim()只去掉右侧的空白字符。

修改后,$file2就会变成纯净的myfile2,拼接后的路径/Users/aashok/myfile2和实际文件名完全匹配,file_exists()就能正确检测到文件存在啦。

内容的提问来源于stack exchange,提问作者Abhinav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:12:43