2012-02-23 15 views
1

例えば、テキスト文字列にABCがある場合は、データベースに入力フォームがあるかどうかに基づいて画像を表示するスクリプトを作成しようとすると、画像が表示されます。私は正しくその部分を持っていますが、今問題は、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

+0

$ e [0] – rodrigoap

答えて

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 
?> 

はちょうどあなたが持っている$e[0]変数に$searchを設定し、すべてが動作します。大文字小文字を区別しない場合はstriposも使用しますが、大文字小文字を保証できる場合は必要ありません。これはif elseステートメントやswitch caseの場合よりもはるかに優れた方法です。なぜなら、入力するのは配列なので、航空会社を追加または削除するためにコード構造をまったく変更する必要がないからです。あなたが触れる必要があるのは、あなたがコードを動的かつ短く保ち、必要に応じてデータを変更できるように、あなたが望むものである最上位の配列です。

2

zerkmsはあなたがいる場合-elseifを-他の次の形式のようなものを使用したいと思う述べたように:

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を一度上に定義することです。 –

関連する問題