file_exists 与 realpath 返回 false ,但文件存在,权限正常

WBOY
Release: 2016-06-06 20:44:06
Original
1834 people have browsed it

下文中的问题,在 PHP 5.5.14 中发生的,
测试了之后,在 5.4.30 后并无此问题……
不知道是 5.5.14 的 Bug 还是神马的……
在 5.5.14 中是否有办法解决?


(注:文中文件夹名称已打码)
在 PHP 当中实测代码如下:

<code class="lang-php"><?php var_dump(realpath('./'));
var_dump(realpath('../'));
var_dump(realpath('../u******/api/uc.php'));

</code></code>
Copy after login
Copy after login

得到了结果如下:

<code>string(28) "/home/wwwroot/m*****/u******"  
bool(false)  
bool(false)  
</code>
Copy after login
Copy after login

在网上找了好久,起初认为是文件夹权限,
所以我将 /home/wwwroot/ 下归递改为 755 (chmod -Rf 755 /home/wwwroot),
但是结果还是一样。

回复内容:

下文中的问题,在 PHP 5.5.14 中发生的,
测试了之后,在 5.4.30 后并无此问题……
不知道是 5.5.14 的 Bug 还是神马的……
在 5.5.14 中是否有办法解决?


(注:文中文件夹名称已打码)
在 PHP 当中实测代码如下:

<code class="lang-php"><?php var_dump(realpath('./'));
var_dump(realpath('../'));
var_dump(realpath('../u******/api/uc.php'));

</code></code>
Copy after login
Copy after login

得到了结果如下:

<code>string(28) "/home/wwwroot/m*****/u******"  
bool(false)  
bool(false)  
</code>
Copy after login
Copy after login

在网上找了好久,起初认为是文件夹权限,
所以我将 /home/wwwroot/ 下归递改为 755 (chmod -Rf 755 /home/wwwroot),
但是结果还是一样。

如果是Redhat系的系统,还要检查SELinux的权限是否正确

php文件是不是utf8编码,要检测的文件名是不是中文?如果是这样,需要转码为gb2312,
例:

<code class="lang-php">file_exists(iconv('utf-8','gbk','D:/test/中文啊.txt'));
</code>
Copy after login
Related labels:
php
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!