2014-01-30 51 views
0

只是想知道,我有以下代码:今天早上PHP file_exists停止工作了吗?

  <a href="<?=$row->aw_deep_link?>"> 
       <?php if (file_exists($_SERVER['DOCUMENT_ROOT'] . 'images/products/' . $row->strId . '.jpg')):?> 

       <img alt="<?=$row->my_brand . ' ' . $row->line . ' ' . $row->my_product . ' - ' . $row->size.$row->unit?>" height="170" itemprop="image" src="<?=base_url() . 'images/products/' . $row->strId?>.jpg" width="170"> 
       <?php else:?> 

       <img alt="<?=$row->my_brand . ' ' . $row->line . ' ' . $row->my_product . ' - ' . $row->size.$row->unit?>" height="170" itemprop="image" src="<?=$row->aw_image_url?>" width="170"> 
       <?php endif;?> 

      </a> 

直到昨晚,这是完美的表演;今天上午 - 它停了下来,出蓝色和自动默认到

其他

条款。

PHP有什么改变?

+1

没有任何改变与PHP检查是否有更改为您的服务器和文件夹权限。 –

+0

由于@AbhikChakraborty说检查服务器。除非您专门选择升级/降级PHP,否则PHP不会更改。尽管在一些托管环境中主要共享托管,但这不是由您控制的。所以主机可能已经更新了他们的服务器PHP版本。确保文件也存在。但是该函数并没有被废弃,所以即使PHP版本升级了,这也不会导致你的问题。 –

+0

如果包含要检查现有文件的文件夹是否达到了特定大小,会发生这种情况吗? @AbhikChakraborty – user2505513

回答

0

如果没有文件或脚本被改变,你知道(包括如果图像文件仍然存在),那么它可能是一个服务器更改/更新导致错误。

我的建议是在单独的文件I.e中运行一些简单的测试。检查变量$_SERVER['DOCUMENT_ROOT']的值,检查包含图像的目录是否存在,然后检查图像是否存在。

如果你100%确定你在服务器上没有改变任何东西,我建议你联系你的主机。

2

你不给足够的信息对任何人给你答案,但我会建议检查:

  1. 确实$ _ SERVER [“DOCUMENT_ROOT”]仍然等于你期待什么?你可以使用echo $_SERVER['DOCUMENT_ROOT'];找出。
  2. 图像/产品/目录是否仍然存在,并且它是运行此PHP脚本的用户可读?这可能是Apache运行的用户。
  3. $row->strId仍然有效吗?
  4. 目录中是否有一些名为$row->strId.jpg的文件,它们是否可以由用户读取?

假设file_exists中断是错误的地方开始,请检查您正在使用的变量来构造文件名。

+0

+1“假设file_exists被破坏是错误的地方开始” –