2014-01-30 48 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被破壞是錯誤的地方開始」 –