php
  • image
  • file-exists
  • 2013-01-23 37 views -2 likes 
    -2

    這應該是簡單的,但它不工作PHP file_exists

    $photo = "../members/".$vid.".jpg"; 
    
        if (file_exists ($photo)) 
         echo "<img id='memberpic' src = '$photo'/>"; 
    

    在這種情況下,圖像顯示從未

    但是,如果我離開了if語句...

    echo "<img id='memberpic' src = '$photo'/>"; 
    

    當文件時,它不但是有一個空架存在圖像顯示正常。我想消除那個空框架。

    我錯過了什麼?

    回答

    3

    您正在使用file_exists()的相對路徑。嘗試使用完整的服務器路徑。

    例如

    $photo = "/var/www/html/members/".$vid.".jpg";

    但顯然與您的服務器的完整路徑,如經常更換:)

    +0

    使用類似'__DIR__'或'$ _ SERVER [「DOCUMENT_ROOT」]'把一個相對路徑爲絕對的。 – SDC

    +0

    ...或者你可以通過'getcwd()' – ConcurrentHashMap

    +0

    得到當前的工作目錄感謝所有人,但似乎還有其他的東西在這裏玩。我已經切換到絕對路徑,現在File_exists正在查找該文件,但img標籤沒有。 以下解決方案作品,但似乎convul​​uted: $照片= 「$根/會員/".$ VID」 JPG「; $ photo1 =「../members/".$vid.".jpg」; 如果(file_exists($照片)) 回聲 「」; 所以,我讓我相信,HTML需要一個相對路徑,但PHP更喜歡絕對路徑。這是正確的嗎? – delpi767

    -1

    使用絕對路徑,你可以。相對路徑是PHP計算它們時的一個痛苦(以性能方式)。

    如果你不想使用絕對path..you可以使用相對路徑有以下。

    $_SERVER['DOCUMENT_ROOT'] = '<root_dir_of_your_project>'; 
    file_exists($_SERVER['DOCUMENT_ROOT'].'/path/to/file.php'); 
    
    0

    在處理文件和目錄路徑時,有些事情需要注意。基本上,訪問絕對文件(網絡服務器上的完整路徑)比相對路徑(從php-script執行的目錄的路徑)更好。這將幫助您檢查文件是否存在。你可以讓你的腳本的活動目錄與PHP魔術常量DIR(PHP版本> = 5.3)或目錄名(FILE)。

    你要跟蹤的另一件事是,你的Web服務器的文檔根目錄。你(你的情況)圖像文件一樣處理: 文檔根:/var/www/example.com/img/photo.png 網址:http://example.com/img/photo.png

    雖然可以使用「父目錄」與..我不會推薦使用,因爲它很難。

    相關問題