iT邦幫忙

3

PHP連載 13

某天超人飛來找老鷹.....
超人:老鷹!我這邊寫的檔案顯示,不過我想要它副檔名不同,就顯示不同的圖片,請問要怎麼用!

檔案顯示格式 xxx.jpg

老鷹瞬間略過幾個念頭 字串切割->判斷
立馬寫了一段code

<?php
function Judge($type){
	switch ($type)
	{
		case 'doc':
  			echo "圖檔名稱";
  		break;
		case 'png':
  			echo "圖檔名稱";
  		break;
		case 'jpg':
  			echo "圖檔名稱";
  		break;
		default:
  		echo "X";
	}
}

?>

<?php
$array = explode(".", $Row['File_Path']);
$icon = Judge($array[1]);
?>

<img src="<?=$icon;?>">

這樣丟給超人~~!

後面想想因該來個物件化,以後可以當作自己的元件庫,然後用一點時間改成物件

<?php
/**
 * Description of File_Judge
 *
 * @author Hung(蒼鴻,老鷹)
 */
class File_Judge {
    
    public function judge($type){
        switch ($type)
	{
		case 'doc':
  			echo "圖檔名稱1";
  		break;
		case 'png':
  			echo "圖檔名稱2";
  		break;
		case 'jpg':
  			echo "圖檔名稱3";
  		break;
		default:
  		echo "請檢查副檔名";
	}
    }
    
    public function string_cutting($string){
        $array = explode('.', $string);
        if(isset($array[1])){
            return $array[1];
        }else{
            echo "檔案沒有副檔名".'<BR>';
        }
    }
    
}
?>

<?php 
    $file = new File_Judge;
    $string = "xxx.jpg";
    $type = $file->string_cutting($string);
    echo $file->judge($type).'<br>';
    
    $string1 = "xxx";
    $type1 = $file->string_cutting($string1);
    echo $file->judge($type1);
?>

顯示結果


0
海綿寶寶
iT邦超人 1 級 ‧ 2014-03-26 11:40:03

不解其妙

跟取得

$array = explode('.', $string);

的 array[0]

有何不同
疑惑

explode

這個函數是切割字串的函數
xxx.jpg
經過這個函數,他會把有.的區隔開成陣列
所以array[0] = xxx;
array[1] = jpg;

&lt;pre class="c" name="code">$array = explode('.', $string);
print_r($array);

/*顯示結果 array('0'=>'xxx','1'=>jpg)*/
//以上為沒測試過,不過因該是這樣

這我明白
我不明白的是
你寫的程式碼,不就是在取前面那段的檔名
還是我誤會了
疑惑

chingfeng提到:
想要它副檔名不同,就顯示不同的圖片

要取副檔名暈

0
weiclin
iT邦高手 4 級 ‧ 2014-03-26 13:07:35

建議不要用 explode 取副檔名, 如果檔名有多個 . 你就抓錯了
php 有專用的 function 處理
http://www.php.net/manual/en/function.pathinfo.php

&lt;pre class="c" name="code">
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');
echo $path_parts['extension'], "\n";

讚
大大也來連載吧抱抱

0
rickyisme
iT邦新手 5 級 ‧ 2014-03-27 11:44:57

也可以試試 SplFileInfo

&lt;pre class="c" name="code">&lt;?php
$info = new SplFileInfo('example.php');
echo $info->getExtension();

除此之外,SplFileInfo 還能提供更多有關檔案的資訊,包含完整的路徑,目錄。
或是檔案大小以及權限。

讚
大大繼續連載吧~~!開心

我要留言

立即登入留言