php
2014-04-28 118 views 0 likes 
0

我在迴應div的嵌入式樣式。在這種風格中,我設置了背景圖像。我知道圖像文件的名稱,但我不能確定文件類型,因爲它可以是jpeg,jpg,gif或png。字符串中的PHP通配符

就像在這個例子中,它可能是PNG圖像。

if(file_exists("images/img_".$loggedInUser->user_id.".jpeg")){ 
    echo "style='background-image: url(\"images/img_".$loggedInUser->user_id.".jpeg\");'"; 
} 

在這裏可以使用某種通配符來擴展嗎?

+0

如果只有4種可能性,爲什麼不使用'if else'並列出所有4個選項? – Styphon

+3

爲什麼不只是*存儲文件名?每次需要顯示頁面時,開始猜測似乎毫無意義。 –

回答

0

如果有多個文件匹配的模式,則第一個將被使用:

if($file = glob("images/img_{$loggedInUser->user_id}.*")) { 
    echo "style='background-image: url(\"{$file[0]}\");'"; 
} 

調整它如果你想多個文件不同的行爲。

0

通配符可以與glob()一起使用。

實施例:

$pics = glob("images/img_" . $loggedInUser->user_id . ".*"); 
if (isset($pics[0])) { 
    // file exists 
} 

fnmatch()可以是有用的。

替代方式,使用還挺經理class

class Image { 
    private $user; 
    public function __construct($user) { 
     $this->user = $user; 
    } 

    public function getPicture() { 
     $path = glob("images/img_" . $this->user . ".*"); 
     if (isset($pics[0]) { 
      return "style='background-image: url(" . $pics[0] . ");'"; 
     } 
    } 
} 

用法:

$pic = new Image($loggedInUser->user_id); 
echo $pic->getUserPicture(); 
相關問題