⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 so.php

📁 公交网源代码,无上下行 下载后数据库在DATE目录下, 可修改CONFIG文件
💻 PHP
字号:
<?php
require("data.php");
$A;$B;$C;$D;//ABCD四个站牌,A为起点,B为终点。均大写
$lineA=array();$lineB=array();$lineC=array();$lineD=array();//四个线路集
$A=$_GET["A"];$B=$_GET["B"];$so=$_GET["so"];
$auto=0;//当$so值不为空时,为手动查询
$stop=0;//出错时,$stop为1,停止执行代码
if(!is_numeric($so)){$so=1;$auto=1;}//当$so值为空时,自动赋值
$i=0;
$max=30;//查询结果最大值
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>公交换乘查询:<?php echo $A;?>-<?php echo $B;?></title>
<link href="images/s.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="areas">
<!--公交查询 -->
<div id="m1">
	<div id="m1a"><a href="/zhengzhou/"><img src="images/logo.gif" border="0" alt="郑州公交网" /></a></div>
	<div id="m1b"></div>
</div>
<div id="m2"></div>
<?php
echo "<h2>公交换乘方案--[$A]<span class=\"cc\">-</span>[$B]</h2>\n";
echo "<div class=\"result\">\n";
if($A==$B){//当起点和终点相同时出错!!!
	echo"<h5>起点和终点不能相同</h5>";
	$stop=1;
}
if($so==1 && $stop==0){
	foreach($lineMark as $value){
		$key1=array_search($A,$$value);
		$key2=array_search($B,$$value);
		if($key1!==FALSE && $key2!==FALSE){
			$key3=(int)$key2-(int)$key1;//强制类型转换
			if(preg_match("/s$|x$/",$value) && $key3<0){//判断是否为单行线
				continue;
			}
			$lineA[$value]=abs($key3);
		}
	}
	if(!empty($lineA)){
		natcasesort($lineA);//根据乘坐站点最少排序
		$cc=count($lineA);//计算$lineA数组的长度,也就是线路的条数
		echo "<h4>有<span class=\"cc\">$cc</span>条直达线路供你选择</h4>";
		foreach($lineA as $key=>$value){$i++;
			echo '<dl>';
				echo '<dt>'.$i.'<span class="sc">('.$value.'站)</span></dt>';
				echo '<dd>从<span class="stops">('.$A.')</span>乘<a href="lines/'.$key.'.html?stops='.$A.'|'.$B.'" target="_blank" class="lines">'.$mName[$key].'</a>直达<span class="stops">('.$B.')</span></dd>';
			echo "</dl>";			
		}
		if($auto==0){
			echo"<h5><a href=\"so.php?so=2&A=$A&B=$B\">选择一次换成方案</a></h5>";
			$stop=1;
		}
	}
	else{
		if($auto==0){
			echo"<h5><a href=\"so.php?so=2&A=$A&B=$B\">没有直达车,请查看一次换成方案</a></h5>";
			$stop=1;
		}
		else{
			$so=2;
		}
	}
}
//一次换乘开始
if($so==2 && $stop==0){//一次换乘
	foreach($lineMark as $value){
		$yesA=in_array($A,$$value);
		$yesB=in_array($B,$$value);
		if($yesA&&!$yesB){//在A不在B
			$lineA[]=$value;
		}
		if(!$yesA&&$yesB){//在B不在A
			$lineB[]=$value;
		}
	}
	foreach($lineA as $value){		
		foreach($lineB as $value2){
			$temp=array_intersect($$value,$$value2);//$temp为站点集
			if(!empty($temp)){
				$key1=array_search($A,$$value);
				$key2=array_search($B,$$value2);
				foreach($temp as $value3){
					$key3=array_search($value3,$$value);
					$key4=(int)$key3-(int)$key1;//强制类型转换
					if(preg_match("/s$|x$/",$value) && $key4<0 ){//判断是否为单行线
						continue;
					}
					$key7=array_search($value3,$$value2);
					$key5=(int)$key2-(int)$key7;//强制类型转换
					if(preg_match("/s$|x$/",$value2) && $key5<0 ){//判断是否为单行线
						continue;
					}
					$key6=abs($key4)+abs($key5);
					$lineC[$value."|".$value2]=$key6;
					$lineD[$value."|".$value2]=$temp;//线路相交站点集
				} 
			}
		}		
	}
	if(!empty($lineC)){
		natcasesort($lineC);//根据乘坐站点最少排序
		$cc=count($lineC);
		echo "<h4>没有直达线路,有<span class=\"cc\">$cc</span>条一次换乘线路供你选择</h4>";
		foreach($lineC as $key=>$value){$i++;
			$STOPS=implode("|",$lineD[$key]);//$STOPS为相交站点集
			$key=explode("|",$key);
			echo '<dl>';
				echo '<dt>'.$i.'<span class="sc">('.$value.'站)</span></dt>';
				echo '<dd>从<span class="stops">('.$A.')</span>乘<a href="lines/'.$key[0].'.html?stops='.$A.'|'.$STOPS.'" target="_blank" class="lines">'.$mName[$key[0]].'</a>到<span class="stops">('.$STOPS.')</span>换乘<a href="lines/'.$key[1].'.html?stops='.$STOPS.'|'.$B.'" target="_blank" class="lines">'.$mName[$key[1]].'</a>到达<span class="stops">('.$B.')</span></dd>';
			echo "</dl>";
			if($i>=$max){echo "<h4 style=\"text-align:left; color:#FF0000;\">查询结束:系统已经省略多余线路…</h4>"; break;}//当多于$max条线路时,跳出循环			
		}
	}
	else{
		if($auto==0){
			echo"<h5><a href=\"so.php?so=3&A=$A&B=$B\">没有一次换成方案,请查看二次换成方案</a></h5>";
			$stop=1;
		}
		else{
			$so=3;
		}
	}
}
//二次换乘开始
if($so==3 && $stop==0){//二次换乘
	echo "<h5>二次换乘正在开发中…</h5>";
}
echo "\n</div>\n";
?>
<div id="m4">
	郑州公交路线查询系统 郑州公交路线 &copy;2006-2008 巴士换乘<span class="f12">(郑州站)</span><br />
	Powered by <a href="http://www.hcbus.com" target="_blank">HcBus1.0</a>
</div>
<!--结束 -->
</div>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -