$list_found = @preg_grep("/^|\|".$found."/i", $list);
解决方案 »
- cakephp email 问题
- 对象参否作为函数的参数进行传递?
- 一段添加代码的问题
- 如何让转义符 '\' 失效呢?
- mkdir()能否建立多层目录?
- 高分买数据(各个国家名称和省份/州名)
- 如何判断一个目录已存在,如果不存在则创建这个目录?多谢
- 关于的到访客的ip和从何处来的,载线等待,100分 !!!
- 关于数据库里图象的输入和输出的问题
- 求助:一段转换编码的代码在在线测试的时候正常,写入php文件运行却不正常!【好人一生平安】
- PHP无法加载php_xx.dll 太少见了!!!
- 本网站的统一登陆信息是怎么传递给各个子系统的?如在未登陆状态下阅读某篇文章,提示登陆,它会链接到UserLogin.aspx?from=,登陆完毕在
$x[]="内蒙古|克什克腾旗|025300|0476";
$x[]="江苏|南京|210000|025";
$x[]="江苏|江浦|211800|025";
$x[]="江苏|六合|211500|025";$b="025";$R_preg="/(.*?)\|(.*?)\|(.*?)\|".$b."/s";
foreach($x as $val)
{
if(preg_match($R_preg,$val))
{
echo $val;
echo "<br>";
}
}
if (empty($found)){
echo "您没有输入任何关键字!";
} else {
if (is_numeric($found) && strlen($found) > 4) {//关键字如果是数字并大于4位,则让其在邮编中查询
$partten = "/^[^\|]+\|[^\|]+\|\d*".$found."\d*\|\d{3,4}$/";
} elseif (is_numeric($found) && strlen($found) <= 4) {//关键字如果是数字并小于等于4位,则让其在区位中查询
$partten = "/^[^\|]+\|[^\|]+\|\d{6}\|\d*".$found."\d*$/";
} else {
$partten = "/^.*".$found.".*\|\d{6}\|\d{3,4}$/";
}
$list=@file("./include/Zip.txt");
$list_found = @preg_grep($partten, $list);
if (count($list_found) > 0) {
$ZipInfo = implode("<p>", $list_found);
$ZipInfo=str_replace('|', ' - ', $ZipInfo);
echo "$ZipInfo";
} else {
echo "没有找到与关键字匹配的数据!";
}
}
?>
$x[]="河北|香河|302550|0316";
$x[]="内蒙古|阿鲁科尔沁|025500|0476";
$x[]="内蒙古|巴林左旗|025400|0476";
$x[]="内蒙古|巴林右旗|025100|0476";
$x[]="内蒙古|林西|025200|0476";
$x[]="内蒙古|克什克腾旗|025300|0476";
$x[]="江苏|南京|210000|025";
$x[]="江苏|江浦|211800|025";
$x[]="江苏|六合|211500|025";
$x[]="江苏|江宁|211100|025";
$x[]="江苏|高淳|211300|025";
$x[]="江苏|溧水|211200|025";
$x[]="测试|025025|025|025025";
$Array_t=array(1=>"省",2=>"市",3=>"邮编",4=>"区号");$t="区号";
$v="025";
//$s="精确";$return_AS=array_search($t,$Array_t);if($return_AS!="NULL")
{
$preg_t="(".$v.")"; switch ($return_AS)
{
//最后一列
case count($Array_t):
$preg_all="/(.*?)\|".$preg_t."$/";
break;
//第一列
case 1:
$preg_all="/^".$preg_t."\|(.*?)/";
break;
//其他
default:
$preg_all="/(.*?)\|".$preg_t."\|(.*?)/";
break;
}} $fl_array = @preg_grep ($preg_all, $x);
print_r($fl_array);
foreach($Array_t as $key=>$val)
{
if($key!=$return_AS)
{
$preg_all.="(.*?)\|";
}
else
{
$preg_all.=$preg_t."\|";
}
}
$preg_all="/".substr($preg_all,0,-2)."/";
break;
$x[]="河北|香河|302550|0316";
$x[]="内蒙古|阿鲁科尔沁|025500|0476";
$x[]="内蒙古|巴林左旗|025400|0476";
$x[]="内蒙古|巴林右旗|025100|0476";
$x[]="内蒙古|林西|025200|0476";
$x[]="内蒙古|克什克腾旗|025300|0476";
$x[]="江苏|南京|210000|025";
$x[]="江苏|江浦|211800|025";
$x[]="江苏|六合|211500|025";
$x[]="江苏|江宁|211100|025";
$x[]="江苏|高淳|211300|025";
$x[]="江苏|溧水|211200|025";
$x[]="测试|025025|025|025025";
$Array_t=array(1=>"省",2=>"市",3=>"邮编",4=>"区号");$t="区号";
$v="025";
//$s="精确";$return_AS=array_search($t,$Array_t);if($return_AS!="NULL")
{
$preg_t="(".$v.")";
foreach($Array_t as $key=>$val)
{
if($key!=$return_AS)
{
$preg_all.="(.*?)\|";
}
else
{
$preg_all.=$preg_t."\|";
}
}
$preg_all="/^".substr($preg_all,0,-2)."$/"; $fl_array = @preg_grep ($preg_all, $x);
print_r($fl_array);
}
里面的正则来实现?
if (empty($found)){
echo "您没有输入任何关键字!";
} else {
if (is_numeric($found) && strlen($found) > 4) {//关键字如果是数字并大于4位,则让其在邮编中查询
$partten = "/^[^\|]+\|[^\|]+\|\d*".$found."\d*\|\d{3,4}/";
} elseif (is_numeric($found) && strlen($found) <= 4) {//关键字如果是数字并小于等于4位,则让其在区位中查询
$partten = "/^[^\|]+\|[^\|]+\|\d{6}\|\d*".$found."\d*/";
} else {
$partten = "/^.*".$found.".*\|\d{6}\|\d{3,4}/";
}
$list=@file("zip.txt");
$list_found = @preg_grep($partten, $list);
if (count($list_found) > 0) {
$ZipInfo = implode("<p>", $list_found);
$ZipInfo=str_replace('|', ' - ', $ZipInfo);
echo "$ZipInfo";
} else {
echo "没有找到与关键字匹配的数据!";
}
}
?>输入$found = "025";得出:
江苏 - 南京 - 210000 - 025
江苏 - 江浦 - 211800 - 025 江苏 - 六合 - 211500 - 025 江苏 - 江宁 - 211100 - 025 江苏 - 高淳 - 211300 - 025 江苏 - 溧水 - 211200 - 025输入$found = "六合";得出:
江苏 - 六合 - 211500 - 025