2017-08-07 8 views
-3

入力$ filetypeはファイル拡張子なので、PHP $ defは "Web"と同じでなければなりません。 しかし、入力はどのファイルタイプであっても出力は "Image"に過ぎません。ファイルタイプの意味を示すPHP switch文

$filetype = "PHP"; 
switch(strtolower($filetype)) { 
    case ("jpeg" || "jpg" || "png" || "ico" || "gif" || "svg" || "ps" || "psd" || "tif" || "tiff" || "ai" || "bmp"): 
     $def = 'Image'; 
     break; 
    case ("aif" || "cda" || "mid" || "midi" || "mp3" || "mpa" || "ogg" || "wav" || "wma" || "wpl"): 
     $def = 'Audio'; 
     break; 
    case ("7z" || "arj" || "deb" || "pkg" || "rar" || "gz" || "tar.gz" || "z" || "zip"): 
     $def = 'Archive'; 
     break; 
    case ("bin" || "dmg" || "iso" || "toast" || "vcd"): 
     $def = 'Disc'; 
     break; 
    case ("csv" || "dat" || "db" || "dbf" || "log" || "mdb" || "sav" || "sql" || "tar" || "xml"): 
     $def = 'Data'; 
     break; 
    case ("apk" || "bat" || "cgi" || "pl" || "com" || "exe" || "gadget" || "jar" || "py" || "wsf"): 
     $def = 'Executable'; 
     break; 
    case ("fnt" || "fon" || "otf" || "ttf"): 
     $def = 'Font'; 
     break; 
    case ("asp" || "aspx" || "cer" || "cfm" || "css" || "htm" || "html" || "js" || "jsp" || "part" || "php" || "rss" || "xhtml"): 
     $def = 'Web'; 
     break; 
    case ("key" || "odp" || "pps" || "ppt" || "pptx"): 
     $def = 'Presentation'; 
     break; 
    case ("c" || "class" || "cpp" || "cs" || "h" || "java" || "sh" || "swift" || "vb"): 
     $def = 'Programming'; 
     break; 
    case ("ods" || "xlr" || "xls" || "xlsx"): 
     $def = 'Spreadsheet'; 
     break; 
    case ("3g2" || "3gp" || "avi" || "flv" || "h264" || "m4v" || "mkv" || "mov" || "mp4" || "mpg" || "mpeg" || "rm" || "swf" || "vob" || "wmv"): 
     $def = 'Video'; 
     break; 
    case ("doc" || "docx" || "odt" || "pdf" || "rtf" || "tex" || "txt" || "wks" || "wps" || "wpd"): 
     $def = 'Document'; 
     break; 
    default: 
     $def = ''; 
} 
echo $def; 

スイッチから正しい$ def出力を取得するにはどうすればよいですか?

+0

質問に[mcve]が含まれていることを確認してください。 phpfiddleがなくなると、あなたの質問は将来の訪問者に価値を失います。 – j08691

+1

あなたのコードをここに**掲載してください。外部サイトではありません。 – GrumpyCrouton

+0

@ j08691これは最小限で完全で、例はリンクされています。 –

答えて

2

スイッチの状態が間違っているようです。下記のように使用してください

$filetype = "PHP"; 

switch(strtolower($filetype)) { 
case 'jpeg'; 
    case 'jpg'; 
    case 'png'; 
     $def = 'image'; 
    break; 
    case 'asp'; 
    case 'php'; 
     $def = 'web'; 
    break; 
    default: 
     $def = ''; 
     break; 

} 
echo $def; // web