2012-02-23 44 views
1

我試圖寫一個腳本來顯示圖像的基礎上,如果有一個條目形式的數據庫,例如,如果文本字符串具有ABC圖像將被顯示。我正確地得到了那部分,但現在的問題是,如果沒有文本sting匹配abc我想要一個空白圖像輸出,例如,如果沒有包含abc的文本字符串將沒有輸出或空白圖像。這是我一直在努力的代碼。如果沒有找到值,顯示圖像

<?php 
    //Begin Airline List 
       //FAA ident only eg AAH = Aloha 
       if (strpos($e[0],'AAH') !==false){ 
       $cs='<img src="http://www.virtual-aviation.org/main/map/alogos/aah.png"/>';} 
       if (strpos($e[0],'AAL') !==false){ 
       $cs='<img src="http://www.virtual-aviation.org/main/map/alogos/aal.png"/>';} 
       if (strpos($e[0],'SWA') !==false){ 
       $cs='<img src="http://www.virtual-aviation.org/main/map/alogos/swa.png"/>';} 
       if (strpos($e[0],'UAL') !==false){ 
       $cs='<img src="http://www.virtual-aviation.org/main/map/alogos/ual.png"/>';} 
       if (strpos($e[0],'HAL') !==false){ 
       $cs='<img src="http://www.virtual-aviation.org/main/map/alogos/hal.png"/>';} 
       if (strpos($e[0],'DAL') !==false){ 
       $cs='<img src="http://www.virtual-aviation.org/main/map/alogos/dal.png"/>';} 
       if (strpos($e[0],'ASA') !==false){ 
       $cs='<img src="http://www.virtual-aviation.org/main/map/alogos/asa.png"/>';} 
       if (strpos($e[0],'TRS') !==false){ 
       $cs='<img src="http://www.virtual-aviation.org/main/map/alogos/trs.png"/>';} 
       if (strpos($e[0],'KAP') !==false){ 
       $cs='<img src="http://www.virtual-aviation.org/main/map/alogos/kap.png"/>';} 
       if (strpos($e[0],'CHQ') !==false){ 
       $cs='<img src="http://www.virtual-aviation.org/main/map/alogos/chq.png"/>';} 
// this is where i want to code for if there is no matching text strings     
else (strpos($e[0],'CHQ','AAH','AAL','SWA','UAL','HAL','DAL','ASA','TRS','KAP','CHQ') ===false) 
       die $cs='<img src="http://www.virtual-aviation.org/main/map/alogos/blank.png"/>'; 



       //End Airline Listing 


    ?> 
+0

有'if-elseif-else'構造可以幫到你 – zerkms 2012-02-23 02:36:08

+0

我只用一次構建鏈接$ e的內容[0] – rodrigoap 2012-02-23 02:40:11

回答

1

在這些情況下做的最好的事情是你的邏輯分離開你數據。

<?php 
    // Begin Airline List 
    // FAAident only eg AAH = Aloha 
    $airlines = Array('AAH', 'AAL', 'SWA', 'UAL', 'HAL', 'DAL', 'ASA', 'TRS', 'KAP', 'CHQ'); 

    $current = 'blank'; 
    $search = 'something aah something'; // $e[0]; 
    foreach ($airlines as $airline) { 
     if (stripos($search, $airline) !== false) { 
      $current = $airline; 
      break; 
     } 
    } 

    $image = '<img src="http://www.virtual-aviation.org/main/map/alogos/' . $current . '.png"/>'; 

    //End Airline Listing 
?> 

只需設置$search你有$e[0]變量,一切都將正常工作。我還使用stripos來區分不區分大小寫,但如果您可以保證大寫,則不需要這麼做。請注意,這是一種好得多的方法,而不是其他情況,甚至是開關情況,因爲您所輸入的只是一個數組,您不需要更改任何代碼結構來添加或刪除航空公司。所有你需要觸及的是將數組放在最上面 - 這正是你想要的 - 保持你的代碼動態和短小,並允許根據需要改變數據。

2

正如zerkms提到你會想使用類似的IF-ELSEIF-ELSE以下形式:

if (strpos($e[0],'AAH') !==false) { 
    $cs='<img src="http://www.virtual-viation.org/main/map/alogos/aah.png"/>'; 
} elseif (strpos($e[0],'AAL') !==false) { 
    $cs='<img src="http://www.virtual-viation.org/main/map/alogos/aal.png"/>'; 
} elseif (strpos($e[0],'SWA') !==false) { 
    $cs='<img src="http://www.virtual-viation.org/main/map/alogos/swa.png"/>'; 
} elseif (strpos($e[0],'UAL') !==false){ 
    $cs='<img src="http://www.virtual-viation.org/main/map/alogos/ual.png"/>'; 
} elseif (strpos($e[0],'HAL') !==false){ 
    $cs='<img src="http://www.virtual-viation.org/main/map/alogos/hal.png"/>'; 
} elseif (strpos($e[0],'DAL') !==false){ 
    $cs='<img src="http://www.virtual-viation.org/main/map/alogos/dal.png"/>'; 
} else if (strpos($e[0],'ASA') !==false){ 
    $cs='<img src="http://www.virtual-viation.org/main/map/alogos/asa.png"/>'; 
} elseif (strpos($e[0],'TRS') !==false) { 
    $cs='<img src="http://www.virtual-viation.org/main/map/alogos/trs.png"/>'; 
} elseif (strpos($e[0],'KAP') !==false) { 
    $cs='<img src="http://www.virtual-viation.org/main/map/alogos/kap.png"/>'; 
} elseif (strpos($e[0],'CHQ') !==false) { 
    $cs='<img src="http://www.virtual-viation.org/main/map/alogos/chq.png"/>'; 
} else { 
    // this is where you can code for if no match occurred above 
    $cs='<img src="http://www.virtual-aviation.org/main/map/alogos/blank.png"/>'; 
} 
+0

這個方法的問題是你重複相同的邏輯10次。它有效,但如果您需要更改航空公司名單,則難以維護。這裏最簡單的改進就是定義該URL一次。 – 2012-02-23 03:26:29

相關問題