存档在 ‘php’ 分类

code: 页面跳转 – php 语句收集

2007年6月26日


<?php
function page_redirect($redirect_to){
    if (
headers_sent()){ // Use JavaScript to redirect if content has been previously sent (not recommended, but safe)
        
echo '<script language="JavaScript" type="text/javascript">window.location='';
        echo 
$redirect_to;
        echo 
'';</script>';
    }else{    
// Default Header Redirect
        
header('Location: ' $redirect_to);
    }
}
?>


笔记:构建分页导航

2007年6月7日

构建分页导航
-by fallseir


join_url 和 split_url 参看这里

 echo multi_page($current_page_num,$is_page_end);
 echo multi_page($current_page_num,false,$item_count);
 echo multi_page($current_page_num,false,$item_count,$page_size);
 echo multi_page($current_page_num,false,$item_count,$page_size,$req_uri);

    function multi_page($page ,$is_page_end,$item_count=false,$page_size=10,$req_uri=false){
        if(!$req_uri)
            $req_uri=$_SERVER["REQUEST_URI"];
        list($path,$args)=split_url($req_uri);
        $html = "";
        if($item_count&&$item_count>$page_size){
            $p_count=ceil(($item_count-1)/$page_size);
            $s=$page-3;
            if($s<=1){
                $s=1;
            }else{
                $i=1;
                unset($args["p"]);
                $url=join_url($path,$args);
                $html .= "<a href="{$url}">$i</a> ";
                if($s>2)
                    $html.=".. ";
            }
            $e=$page+3;
            $end_str="";
            if($e>=$p_count){
                $e=$p_count;
            }else{
                $i=$p_count;
                $args["p"]=$i;
                $url=join_url($path,$args);
                $end_str= " <a href="{$url}">$i</a>";
                if(($e+1)<$p_count)
                    $end_str="..".$end_str;
            }
            for($i=$s;$i<=$e;$i++){
                if($i==$page){
                    $html .= "<b>$i</b> ";
                }else{
                    $args["p"]=$i;
                    if($i==1)
                        unset($args["p"]);
                    $url=join_url($path,$args);
                    $html .= "<a href="{$url}">$i</a> ";
                }
            }
            $html.=$end_str;
        }else{
            if($page>1){
                $args["p"]=$page-1;
                if($page-1==1)
                    unset($args["p"]);
                $url=join_url($path,$args);
                $html .= "<a href="{$url}">上一页</a> ";
            }
            if(!$is_page_end){
                $args["p"]=$page+1;
                $url=join_url($path,$args);
                $html .= " <a href="{$url}" >下一页</a>";
            }
        }
        return $html;
    }

笔记:从url中分离query数据

2007年6月7日

从url中分离query数据
-by fallseir

$req_url=$_SERVER["REQUEST_URI"]; // 获取当前url
list($req_path,$req_queries)=split_url($req_url); // 分离出地址和参数
$value=$req_queries["arg"]; //获取指定参数的值
$req_queries["page"]=2;//设置参数的值
unset($req_queries["arg"]);//清除指定参数

$new_url=join_url($req_path,$req_queries); // 重新组合成完整的地址

function split_url($url){
    $req_path=$url;
    $req_queries=array();

    if(strpos($url,"?")!==false){
        list($req_path,$req_query)=split("\?",$url,2);
        foreach(split("&",$req_query) as $query){
            list($q,$v)=split("=",$query,2);
            if(array_key_exists($q,$req_queries)){
                if(is_array($req_queries[$q])){
                    $req_queries[$q][]=$v;
                }else{
                    $req_queries[$q]=array($req_queries[$q],$v);
                }
            }else{
                $req_queries[$q]=$v;
            }
        }
    }
    return array($req_path,$req_queries);
}
function join_url($path,$queries=false){
    $url=$path;
    if($queries&&is_array($queries)&&(count($queries)>0)){
        $qs=array();
        foreach($queries as $k=>$v){
            if(is_array($v)){
                array_unique($v);
                foreach($v as $t){
                    $qs[]=sprintf("%s=%s",$k,$t);
                }
            }else{
                $qs[]=sprintf("%s=%s",$k,$v);
            }
        }
        if(count($qs)>0){
            $url.="?".join("&",$qs);
        }
    }
    return $url;
}