我试图根据数据库中是否有条目来编写脚本以显示图像,例如,如果文本字符串具有ABC,则将显示图像。我正确地得到了那个部分但现在问题是如果没有匹配abc的文本sting我想要输出空白图像,例如如果没有包含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 :(得分: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"/>';
}
答案 1 :(得分: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
来区分大小写,但如果您能保证大写,则不需要这样做。请注意,这是一个比if else情况更好的方法,甚至是切换案例情况,因为您所有的数据都是一个阵列,您根本不需要更改任何代码结构来添加或删除航空公司。您需要触摸的就是顶部的阵列 - 这正是您想要的 - 保持您的代码动态和简短,并允许根据需要更改数据。