PHP file_exists 今天早上停止工作了?
Posted
技术标签:
【中文标题】PHP file_exists 今天早上停止工作了?【英文标题】:PHP file_exists stopped working this morning? 【发布时间】:2014-02-22 21:10:16 【问题描述】:只是想知道,我有以下代码:
<a href="<?=$row->aw_deep_link?>">
<?php if (file_exists($_SERVER['DOCUMENT_ROOT'] . 'images/products/' . $row->strId . '.jpg')):?>
<img itemprop="image" src="<?=base_url() . 'images/products/' . $row->strId?>.jpg" >
<?php else:?>
<img itemprop="image" src="<?=$row->aw_image_url?>" >
<?php endif;?>
</a>
直到昨晚,这表现完美;今天早上 - 它突然停止并自动默认为
其他
条款。
PHP 有什么改变吗?
【问题讨论】:
PHP 没有任何变化,检查您的服务器和文件夹权限是否发生了变化。 正如@AbhikChakraborty 所说,检查服务器。 PHP 不会改变,除非您特别选择升级/降级它。尽管在某些托管环境中主要是共享托管,但这不是由您控制的。所以主机可能已经更新了他们的服务器 PHP 版本。确保该文件也确实存在。但是该功能并没有被弃用,所以即使 PHP 版本升级了,也不会引起您的问题。 如果包含要检查是否存在的文件的文件夹达到一定大小,会发生这种情况吗? @AbhikChakraborty 【参考方案1】:你没有提供足够的信息让任何人给你答案,但我建议检查一下:
-
$_SERVER['DOCUMENT_ROOT'] 是否仍与您期望的一样?您可以使用
echo $_SERVER['DOCUMENT_ROOT'];
来查找。
images/products/ 目录是否仍然存在,运行此 php 脚本的用户是否可以读取?可能是运行 Apache 的用户。
$row->strId
仍然有效吗?
目录中是否有一些名为$row->strId.jpg
的文件,您的用户是否可以读取这些文件?
假设file_exists
损坏是错误的起点,请检查用于构造文件名的变量。
【讨论】:
+1 表示“假设 file_exists 已损坏是错误的起点”【参考方案2】:如果您知道没有文件或脚本被更改(包括图像文件是否仍然存在),则可能是服务器更改/更新导致了错误。
我的建议是在单独的文件中运行一些简单的测试,即检查$_SERVER['DOCUMENT_ROOT']
变量的值,检查包含图像的目录是否存在,然后检查图像是否存在。
如果您 100% 确定您没有在服务器上进行任何更改,我建议您联系您的主机。
【讨论】:
以上是关于PHP file_exists 今天早上停止工作了?的主要内容,如果未能解决你的问题,请参考以下文章