今天在项目中用到的两个函数,自己写了下,备用,需要的朋友也可以直接使用了,推荐第一个函数为获取,后面为相关的处理参数。
一是php获取当前页面的网址:
代码如下:
//获得当前的脚本网址
function getcururl()
{
if(!empty($_server[request_uri]))
{
$scriptname = $_server[request_uri];
$nowurl = $scriptname;
}
else
{
$scriptname = $_server[php_self];
if(empty($_server[query_string]))
{
$nowurl = $scriptname;
}
else
{
$nowurl = $scriptname.?.$_server[query_string];
}
}
return $nowurl;
}
另一个是php替换网址中query部分的某变量的值比如 ,我们要设$url中的key=321;
其实有几种情况:
$url='www.sina.com/a.php?key=330′;
或$url='www.sina.com/a.php;
或$url='www.sina.com/a.php?cat=2′;
等等。虽然情况很多,但php处理起来非常简单,如下:
代码如下:
/* 将url中的某参数设为某值*/ //【这一段就挺好啊】
function url_set_value($url,$key,$value)
{
$a=explode('?',$url);
$url_f=$a[0];
$query=$a[1];
parse_str($query,$arr);
$arr[$key]=$value;
return $url_f.'?'.http_build_query($arr);
}
不过我的替换是这样写的。。当然也很烂 。。
代码如下:
10,'page'=>5)) );
//echo( urlreplace( $url , array('pid'=>10,'page'=>5)) );
*/
/**
* url replace
* @param string $url 需要替换的url字符串,一般为aaa.php?abc=def,也可以带上路径,象http://xxx.com/abc/def.php?aa=bb
* @param mixed $options 需要替换的变量,可以是字符串或数组,如果是字符串,格式为aa=bb,cc=dd,有多个,用,隔开
* @return string $url 替换后的url
*/
class url
{
static function replace ( $url , $options)
{
$options = self::optinit( $options );
$query = parse_url( $url , php_url_query );
if($query){
parse_str( $query , $get );
if ( $get ){
//foreach ( $get as $_k => $_v ){
// //if( array_key_exists( $_k , $options)){
// $get[$_k] = $options[$_k];
// /