• ----:)欢迎访问源码网(:----
    • 首页
    • 博客
    • 学院
    • 下载
    • 论坛
    • 影视
    • 发布源码
    • RSS
    • ITPig
    • 笑话网
    • 百家姓
    • 繁體中文

源码网 - 中国第一源码门户
选择镜像:网通镜像 - 电信主站
  • 首 页
  • 新闻动态
  • 网站运营
  • 网页制作
  • WEB开发
  • 编程开发
  • 图像媒体
  • 操作系统
  • 数据库
  • 服务器
热门搜索 优化 SEO 故事 cms IIS7 MySQL 个人 AdSense 主题推广 | 文章搜索: 高级搜索
会员登录/控制面版您的位置: 学院首页 >> WEB开发 >> PHP 开发 >> PHP代码 >> 详细内容
 

推荐文章

 
 

热点文章

  • 3389远程服务器GHOST的视频教程
  • 天气预报小偷,根据IP自动判断地址
  • 利用纯真QQIP数据库做快速IP归属地查询
  • php在线文本编辑器
  • 实例(Smarty+FCKeditor新闻系统)
  • php里实现汉字转区位码
  • php的字符编码转换工具
  • 对dvbbs.php 全文搜索的完全分析
  • php生成会动的gif图片代码
  • 56.com视频采集接口程序(PHP)
  • PHP获取网卡的MAC地址
  • 用PHP实现文件上传
 
 

相关文章

  • PHP生成静态页面详解
  • 用php得到页面的执行时间
  • PHP网页优化
  • PHP模拟SQL Server的两个日期处理函数
  • 谈PHP生成静态页面
  • 用PHP实现文件下载
  • 在PHP的图形函数中显示汉字
  • PHP操作Access类(PHP+ODBC+Access)
  • 教你巧用PHP+MySQL搭建一个聊天室
  • Java在Web开发语言上败给了PHP
  • PHP中利用GD输出汉字实例
  • 基于PHP的AJAX技术实现文件异步上传
 
 

百度搜索

 
 

PHP常用自定义函数

  • 阅览次数:
  • 文章来源: CP整理
  • 原文作者:
  • 整理日期: 2008-05-07
  • 发表评论
  • 字体大小:
  • 小
  • 中
  • 大

生成时间

function maketime($date)

{

if($date){

list($year,$month,$day) = explode("-",$date);
return mktime(0,0,0,$month,$day,$year);

}

return "";

}


生成目录:

function Directory($dir){ // force directory structure

return is_dir($dir) or (Directory(dirname($dir)) and mkdir($dir, 0777));


}

后退

function history_back($go="")

{

if($go){

echo "<script language=\"javascript\">history.go(".$go."); </script>":

}

else{

echo "<script language=\"javascript\">history.go(-1);</script>":

}

}

消息提示

function message($C_alert,$I_goback='') {
if(!empty($I_goback)) {
echo "<script>alert('$C_alert');window.location.href='$I_goback';</script>";
} else {
echo "<script>alert('$C_alert');</script>";
}
}

/**
* 截取中文部分字符串
*
* 截取指定字符串指定长度的函数,该函数可自动判定中英文,不会出现乱码
*
* @access public
* @param string $str 要处理的字符串
* @param int $strlen 要截取的长度默认为10
* @param string $other 是否要加上省略号,默认会加上
* @return string
*/
function showtitle($str,$strlen=10,$other=true) {
$j = 0;
for($i=0;$i<$strlen;$i++)
if(ord(substr($str,$i,1))>0xa0) $j++;
if($j%2!=0) $strlen++;
$rstr=substr($str,0,$strlen);
if (strlen($str)>$strlen && $other)
return $rstr;
}


////////////

function dhtmlspecialchars($string) {
if(is_array($string)) {
foreach($string as $key => $val) {
$string[$key] = dhtmlspecialchars($val);
}
} else {
$string = str_replace('&', '&amp;', $string);
$string = str_replace('"', '&quot;', $string);
$string = str_replace('<', '&lt;', $string);
$string = str_replace('>', '&gt;', $string);
$string = preg_replace('/&amp;(#\d;)/', '&\1', $string);
}
return $string;
}

/////////

function daddslashes($string, $force = 0) {
if(!$GLOBALS['magic_quotes_gpc'] || $force) {
if(is_array($string)) {
foreach($string as $key => $val) {
$string[$key] = daddslashes($val, $force);
}
} else {
$string = addslashes($string);
}
}
return $string;
}

/////////.

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;
}

//////

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;
}

/////////

百分比

function percent($a,$b,$float="")

{

if($b){

return (round($a/$b,$float+2)*100)."%";

}

return "";

}

/*
获取当前目录下的所有文件的个数
*/
function countDirFiles($dir="")
{
$files = 0;
if(!$dir){
$dir=".";
}
if(is_dir($dir)){
if($handle = opendir($dir)) {
while(false !== ($file = readdir($handle))) {
if(is_file($file)) {
$files++;
}
}
closedir($handle);
}
}
return $files;
}
echo countDirFiles();
/*
获取当前目录下的所有文件
*/
function listFiles($dir="")
{
$files = array();
if(!$dir){
$dir=".";
}
if(is_dir($dir)){
if($handle = opendir($dir)) {
while(false !== ($file = readdir($handle))) {
if(is_file($file)) {
$files[]=$file;
}
}
closedir($handle);
}
}
return $files;
}
print_r(listFiles(get_dir().'www/'));

/*
获取当前目录相对于根目录的相对路径
*/
function get_dir()
{
$biasNum = substr_count($_SERVER['REQUEST_URI'], '/'); //用'/'分割当前路径字符串,并计算分割后的字符串数量
$relativePath = '../'; //初始化变量$relativePath为'./'
for ($i = 0; $i < ($biasNum - 1); $i ++) { //循环添加'../'
$relativePath .= '../';
}
return $relativePath;
}

// 返回GD函数版本号
function gd_version() {
if (function_exists('gd_info')) {
$GDArray = gd_info();
$gd_version_number = $GDArray['GD Version'] ? $GDArray['GD Version'] : 0;
unset($GDArray);
} else {
$gd_version_number = 0;
}
return $gd_version_number;
}

全角半角之间的切换

function f2a($Str) {
$Queue = Array('0' => '0', '1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9',
'A' => 'A', 'B' => 'B', 'C' => 'C', 'D' => 'D', 'E' => 'E', 'F' => 'F', 'G' => 'G', 'H' => 'H', 'I' => 'I', 'J' => 'J',
'K' => 'K', 'L' => 'L', 'M' => 'M', 'N' => 'N', 'O' => 'O', 'P' => 'P', 'Q' => 'Q', 'R' => 'R', 'S' => 'S', 'T' => 'T',
'U' => 'U', 'V' => 'V', 'W' => 'W', 'X' => 'X', 'Y' => 'Y', 'Z' => 'Z', 'a' => 'a', 'b' => 'b', 'c' => 'c', 'd' => 'd',
'e' => 'e', 'f' => 'f', 'g' => 'g', 'h' => 'h', 'i' => 'i', 'j' => 'j', 'k' => 'k', 'l' => 'l', 'm' => 'm', 'n' => 'n',
'o' => 'o', 'p' => 'p', 'q' => 'q', 'r' => 'r', 's' => 's', 't' => 't', 'u' => 'u', 'v' => 'v', 'w' => 'w', 'x' => 'x',
'y' => 'y', 'z' => 'z');
return preg_replace("/([\xA3][\xB0-\xB9\xC1-\xDA\xE1-\xFA])/e", "\$Queue[\\1]", $Str);
}

返回GD函数版本号(三)

//获得IP地址
if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
$onlineip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
$onlineip = getenv('REMOTE_ADDR');
} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
$onlineip = $_SERVER['REMOTE_ADDR'];
}
$onlineip = addslashes($onlineip);
@preg_match("/[\d\.]{7,15}/", $onlineip, $onlineipmatches);
$onlineip = $onlineipmatches[0] ? $onlineipmatches[0] : 'unknown';
unset($onlineipmatches);

返回内存占用(二)

if (function_exists('memory_get_usage')) {
$server['memory_info'] = get_real_size(memory_get_usage());
} [/code]自定义函数 get_real_size 结合上面函数返回当前主机内存占用情况[code]function get_real_size($size) {
$kb = 1024; // Kilobyte
$mb = 1024 * $kb; // Megabyte
$gb = 1024 * $mb; // Gigabyte
$tb = 1024 * $gb; // Terabyte

if($size < $kb) {
return $size.' Byte';
}else if($size < $mb) {
return round($size/$kb,2).' KB';
}else if($size < $gb) {
return round($size/$mb,2).' MB';
}else if($size < $tb) {
return round($size/$gb,2).' GB';
}else {
return round($size/$tb,2).' TB';
}

//带汉字字符串截取
function substrgb($in,$num){
$pos=0;
$out="";
while($c=substr($in,$pos,1)){
if($c=="\n") break;
if(ord($c)>128){
$out.=$c;
$pos++;
$c=substr($in,$pos,1);
$out.=$c;
}else{
$out.=$c;
}
$pos++;
if($pos>=$num) break;
}
if($out!=$in) $out = $out . "..";
return $out;
}

生成缓存文件
对于程序的一些设置,如果生成缓存文件可以降低频繁读数据库的压力,
加快程序的执行。下面就是利用两个函数来生成缓存文件。


function settings_recache()
{
global $DB,$db_prefix;
$query=$DB->query("select * from {$db_prefix}settings");
$content="\$options=array(";
while($setting=$DB->fetch_array($query))
{
$content.="\t'".addslashes($setting['title'])."'=>'".addslashes($setting['value'])."',";
}
$content.=');';

writetocache('settings',$content);
}

function writetocache($cachename,$cachedata)
{ if(in_array($cachename,array('archives','categories','hottags','links','newcomments','settings','statistics','stylevars')))
{
$cachedir="../cache/";
$cachefile=$cachedir.'cache_'.$cachename.'.php';
if(!is_dir($cachedir))
{
@mkdir($cachedir, 0777);
}
if($fp = @fopen($cachefile, 'wb'))
{
@fwrite($fp, "<?php//settings cache file//Created on ".date('Y-m-d H:i:s')."if(!defined('SOPHIA_ROOT')) exit('Access Denied');".$cachedata."?>");
@fclose($fp);
@chmod($cachefile, 0777);
}
else
{
echo 'Can not write to '.$cachename.' cache files, please check directory ./cache/ .';
exit;
}
}
}

上一篇:PHP缓存类(特别针对XML)
下一篇:微软将下一个收购目标定为美国在线
  • 网友评论:
  • 查看所有评论
  • 我要发表评论
您的网名:
留言主题:
你要发表的内容:

 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 发布软件 | 帮助中心 | 源码论坛

Copyright © 2005-2007 CodePub.Com  程序支持:木翼  滇ICP备05005971号