龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

关于PHP的小小总结

时间:2014-07-22 14:50来源: 作者: 点击:
分享到:
div br / /div div span style=color:#003399;font-size:14px;我们都遇到过这样的情况:某WEB应用页面其搜索条件很多,有时一个参数对应很多值,或者说有很强的上下级关系,比如租房网:/span /div d

 我们都遇到过这样的情况:某WEB应用页面其搜索条件很多,有时一个参数对应很多值,或者说有很强的上下级关系,比如租房网:
 户型参数有:一室一厅、一室两厅等等。
 这时候要给某一个塞选条件符上正确的URL参数就比较麻烦,为了不整天做重复的工作,我们写了下面这个方法。
 例子我们用租房网的例子来参考(注意以下仅是演示,所以不讲究规范啥的)。
 
 区域(area): 不限('')、区一(area1)、区二(area2)、区三(area3).......
 租金(rent): 不限('')、500以下(rent1)、500-800(rent2).......
 类型(style): 不限('')、公寓(style1)、普通住宅(style2)....
 
 那么对应的a 标签 href值为:
 
 <a href="<?php echo query_str('area',Null)?>">不限</a>
 <a href="<?php echo query_str('area','area1')?>">区一</a>
 <a href="<?php echo query_str('area','area2')?>">区二</a>
 .....
 <a href="<?php echo query_str('style',Null)?>">不限</a>
 <a href="<?php echo query_str('style','style1')?>">公寓</a>
 <a href="<?php echo query_str('style','style2')?>">普通住宅</a>
 
 这些标签在实际时,肯定是动态输出的。只要做到key(请求参数) 与 value (请求参数)的值一致就 喔 K 了 :) 。 
 




<?php
/**
 * 
 * 查寻URL字符串处理
 * @author: fc_lamp
 * @blog: http://fc-lamp.blog.163.com/
 * @param str $key 主参数
 * @param str $value 参数值
 * @param str $query 查寻的字符串(此值一般不用管)
 * @param str $page_key 页码参数(在分页时,页码会被传入GET,所以要删除)
 * @internal
 * 如果字符中有key,则会删除原字符串中key,并赋上新值 .
 * 如果字符 key的输入值 value 为NULL,则会删除此KEY.
 */
function query_str($key, $value = '', $query = '', $page_key = 'page')
{
	$query = empty ( $query ) ? $_SERVER ['QUERY_STRING'] : $query;
	if (empty ( $query ))
	{
		$query = "?$key=" . urlencode ( "$value" );
	} else
	{
		parse_str ( $query, $q );
		if (isset ( $q [$page_key] ))
		{
			unset ( $q [$page_key] );
		}
		if (isset ( $q [$key] ))
		{
			unset ( $q [$key] );
		}
		if ($value === NULL)
		{
			$query = '?' . http_build_query ( $q );
		} else
		{
			if (! empty ( $q ))
			{
				$query = '?' . http_build_query ( $q ) . "&$key=" . urlencode ( "$value" );
			} else
			{
				$query = "?$key=" . urlencode ( "$value" );
			}
		}
	}
	return $query;
}







精彩图集

赞助商链接