2010年4月27日 星期二

常用的PHP function

在php開發中,我們經常會遇到一些函數,下面是整理好的,可以直接使用,方便開發效率,不過建議大家一定要先看懂,然後在這個基礎上增加功能就提高了自身能力了

1.產生隨機字符串函數

function random($length) {

$hash = @#@#;

$chars = @#abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz@#;

$max = strlen($chars) - 1;

mt_srand((double)microtime() * 1000000);

for($i = 0; $i < $length; $i ) { $hash .= $chars[mt_rand(0, $max)]; } return $hash; } 2.截取一定長度的字符串 注:該函數對gb2312使用有效 function wordscut($string, $length ,$sss=0) { if(strlen($string) > $length) {

if($sss){

$length=$length - 3;

$addstr=@# ...@#;

}

for($i = 0; $i < $length; $i ) { if(ord($string[$i]) > 127) {

$wordscut .= $string[$i].$string[$i 1];

$i ;

} else {

$wordscut .= $string[$i];

}

}

return $wordscut.$addstr;

}

return $string;

}

3.取得客戶端ip 地址

function getip(){

if (getenv("http_client_ip") && strcasecmp(getenv("http_client_ip"), "unknown"))

$ip = getenv("http_client_ip");

else if (getenv("http_x_forwarded_for") && strcasecmp(getenv("http_x_forwarded_for"), "unknown"))

$ip = getenv("http_x_forwarded_for");

else if (getenv("remote_addr") && strcasecmp(getenv("remote_addr"), "unknown"))

$ip = getenv("remote_addr");

else if (isset($_server[@#remote_addr@#]) && $_server[@#remote_addr@#] && strcasecmp($_server[@#remote_addr@#], "unknown"))
$ip = $_server[@#remote_addr@#];

else

$ip = "unknown";

return($ip);

}
4. 創建相應的文件夾

function createdir($dir=@#@#)

{

if (!is_dir($dir))

{

$temp = explode(@#/@#,$dir);

$cur_dir = @#@#;

for($i=0;$i
if(!empty($url))

$html .="";

$html .="";

$html .="



";

$html .="";

$html .="";

$html .="";

$html .="";

$html .="".$title."";

$html .="";

$html .="
".$message."

";

if (!empty($url))

$html .="系統將在3秒後返回
如果您的瀏覽器不能自動返回,請點擊[這裡]進入";
else

$html .="[返回]";

$html .="";

$html .="";

echo $html;

exit;

}

7. 分頁(兩個函數配合使用)

function getpage($sql,$page_size=20)

{
global $page,$totalpage,$sums; //out param

$page = $_get["page"];

//$eachpage = $page_size;

$pagesql = strstr($sql," from ");

$pagesql = "select count(*) as ids ".$pagesql;

$result = mysql_query($pagesql);

if($rs = mysql_fetch_array($result)) $sums = $rs[0];

$totalpage = ceil($sums/$page_size);

if((!$page)||($page<1)) $page=1; $startpos = ($page-1)*$page_size; $sql .=" limit $startpos,$page_size "; return $sql; } function showbar($string="") { global $page,$totalpage; $out="共& lt;font ".$totalpage."color=@#red@#>".$totalpage."< /font>頁";

$linknum =4;
$start = ($page-round($linknum/2))>0 ? ($page-round($linknum/2)) : "1";

$end = ($page round($linknum/2))<$totalpage ? ($page round($linknum/2)) : $totalpage; $prestart=$start-1; $nextend=$end 1; if($page<>1)

$out .= "第一頁 ";

if($start>1)

$out.="..<< ";

for($t=$start;$t<=$end;$t ) { $out .= ($page==$t) ? "[".$t."] " : "$t ";
}

if($end<$totalpage) $out.=">>..";

if($page<>$totalpage)

$out .= " 最後頁";

return $out;

}

8.獲取新插入數據的 id

沒有留言: