php函数

php

2008-12-14 18:05

<?
/*
分页函数
说明
$table 表名
$where 条件
$$url 地址
$record_num_perpage 每一页显示的数量
例:
$page=$_GET['page'];
if(empty($page)) $page=1;
$min=($page-1)*20;
$showpage=get_page('log'," where l_username='$username' ","username=".urlencode($username),20);

*/
function get_page($table,$where,$url,$record_num_perpage)
{
global $page,$min;
$result=mysql_query("select * from $table $where");
$total=mysql_num_rows($result);
if($total)
{
   $totalpage=ceil($total/$record_num_perpage);
    $nextpage=$page+1;
    $uppage=$page-1;
if($page>1)$showpage.="【<a href='?$url&page=$uppage'>上一页</a>】";

$showpage.="有<b><font color='#FF0000'>$total</font></b>条记录,共<b><font color='#FF0000'>$totalpage</font></b>页,当前为第<b><font color='#FF0000'>$page</font></b>页";
if($page<$totalpage) $showpage.="【<a href='?$url&page=$nextpage'>下一页</a>】";           
$showpage.=" <select size=\"1\" name=\"page\" onChange=\"javascript:window.open('?$url&page='+this.options[this.selectedIndex].value,'_self')\">";
for($i=1;$i<=$totalpage;$i++)
{
   $showpage.="<option value=\"$i\">第".$i."页</option>";
}
$showpage.="</select>";
$showpage=str_replace("<option value=\"$page\">","<option value=\"$page\" selected>",$showpage);
}
else $showpage="<font color=red>当前分类暂无文章!</font>";
return $showpage;
}
/*
文件后缀名函数
*/

function fileExtName ($fStr)
{
   $retval = "";
   $pt = strrpos($fStr, ".");
   if ($pt) $retval = substr($fStr, $pt+1, strlen($fStr) - $pt);
   return ($retval);
}


/*
文件上传函数 注意返回值
*/

function Upload()
{
   $uploaddir = './upload/';
   $ext = fileExtName($_FILES['photo']['name']);
   $ext = strtolower($ext);
if($ext)
{
      if($ext!="jpg" && $ext!="gif")
     {
       $ms= "<script>alert('文件类型出错,请返回重试。');top.location.href='register.php';</script>";         }
   else
     {
       $m=myphoto;
       $middir=md5($m);
       $uploadfile = $uploaddir . $middir.".".$ext;
        move_uploaded_file($_FILES['photo']['tmp_name'], $uploadfile);
     $ms=$uploadfile;
      }
}
else
    {
   $ms="<script>alert('文件类型出错,请返回重试。');top.location.href='register.php';</script>";
}
return $ms;
}
//获得当前的脚本网址
function get_php_url(){
        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;
}
//把全角数字转为半角数字
function GetAlabNum($fnum){
        $nums = array("0","1","2","3","4","5","6","7","8","9");
        $fnums = "0123456789";
        for($i=0;$i<=9;$i++) $fnum = str_replace($nums[$i],$fnums[$i],$fnum);
        $fnum = ereg_replace("[^0-9\.]|^0{1,}","",$fnum);
        if($fnum=="") $fnum=0;
        return $fnum;
}
//去除HTML标记
function Text2Html($txt){
        $txt = str_replace(" "," ",$txt);
        $txt = str_replace("<","&lt;",$txt);
        $txt = str_replace(">","&gt;",$txt);
        $txt = preg_replace("/[\r\n]{1,}/isU","<br/>\r\n",$txt);
        return $txt;
}

//清除HTML标记
function ClearHtml($str){
        $str = str_replace('<','&lt;',$str);
        $str = str_replac?e('>','&gt;',$str);
        return $str;
}
//相对路径转化成绝对路径
function relative_to_absolute($content, $feed_url) {
    preg_match('/(http|https|ftp):\/\//', $feed_url, $protocol);
    $server_url = preg_replace("/(http|https|ftp|news):\/\//", "", $feed_url);
    $server_url = preg_replace("/\/.*/", "", $server_url);

    if ($server_url == '') {
        return $content;
    }

    if (isset($protocol[0])) {
        $new_content = preg_replace('/href="\//', 'href="'.$protocol[0].$server_url.'/', $content);
        $new_content = preg_replace('/src="\//', 'src="'.$protocol[0].$server_url.'/', $new_content);
    } else {
        $new_content = $content;
    }
    return $new_content;
}
//取得所有链接
function get_all_url($code){
        preg_match_all('/<a\s+href=["|\']?([^>"\' ]+)["|\']?\s*[^>]*>([^>]+)<\/a>/i',$code,$arr);
        return array('name'=>$arr[2],'url'=>$arr[1]);
}

//获取指定标记中的内容
function get_tag_data($str, $start, $end){
        if ( $start == '' || $end == '' ){
               return;
        }
        $str = explode($start, $str);
        $str = explode($end, $str[1]);
        return $str[0];
}
//HTML表格的每行转为CSV格式数组
function get_tr_array($table) {
        $table = preg_replace("'<td[^>]*?>'si",'"',$table);
        $table = str_replace("</td>",'",',$table);
        $table = str_replace("</tr>","{tr}",$table);
        //去掉 HTML 标记
        $table = preg_replace("'<[\/\!]*?[^<>]*?>'si","",$table);
        //去掉空白字符
        $table = preg_replace("'([\r\n])[\s]+'","",$table);
        $table = str_replace(" ","",$table);
        $table = str_replace(" ","",$table);

        $table = explode(",{tr}",$table);
        array_pop($table);
        return $table;
}

//将HTML表格的每行每列转为数组,采集表格数据
function get_td_array($table) {
        $table = preg_replace("'<table[^>]*?>'si","",$table);
        $table = preg_replace("'<tr[^>]*?>'si","",$table);
        $table = preg_replace("'<td[^>]*?>'si","",$table);
        $table = str_replace("</tr>","{tr}",$table);
        $table = str_replace("</td>","{td}",$table);
        //去掉 HTML 标记
        $table = preg_replace("'<[\/\!]*?[^<>]*?>'si","",$table);
        //去掉空白字符
        $table = preg_replace("'([\r\n])[\s]+'","",$table);
        $table = str_replace(" ","",$table);
        $table = str_replace(" ","",$table);
       
        $table = explode('{tr}', $table);
        array_pop($table);
        foreach ($table as $key=>$tr) {
                $td = explode('{td}', $tr);
                array_pop($td);
            $td_array[] = $td;
        }
        return $td_array;
}

//返回字符串中的所有单词 $distinct=true 去除重复
function split_en_str($str,$distinct=true) {
        preg_match_all('/([a-zA-Z]+)/',$str,$match);
        if ($distinct == true) {
                $match[1] = array_unique($match[1]);
        }
        sort($match[1]);
        return $match[1];
}

/*PHP的unescape转换函数,用来转换Javascript用escape函数加密过的字符
    --此函数需要iconv函数库支持*/

   
    function unescape($str) {
        $str = rawurldecode($str);
        preg_match_all("/%u.{4}|&#x.{4};|&#\d+;|&#\d+?|.+/U",$str,$r);
        $ar = $r[0];
        foreach($ar as $k=>$v) {
            if(substr($v,0,2) == "%u")
                $ar[$k] = iconv("UCS-2","UTF-8",pack("H4",substr($v,-4)));
            elseif(substr($v,0,3) == "&#x")
                $ar[$k] = iconv("UCS-2","UTF-8",pack("H4",substr($v,3,-1)));
            elseif(substr($v,0,2) == "&#") {
                $ar[$k] = iconv("UCS-2","UTF-8",pack("n",preg_replace("/[^\d]/","",$v)));
            }
        }
        return join("",$ar);
    }   

?>