当前位置: 首页 > 图文教程 > 网络编程 > PHP > function.inc.php超越php

PHP
利用discuz实现PHP大文件上传应用实例代码
php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
php在字符串中查找另一个字符串
php下HTTP Response中的Chunked编码实现方法
PHP实现定时生成HTML网站首页实例代码
PHP下一个非常全面获取图象信息的函数
PHP strtr() 函数使用说明
php 删除无限级目录与文件代码共享
php AJAX实例根据邮编自动完成地址信息
php miniBB中文乱码问题解决方法
cmd下运行php脚本
PHP 遍历XP文件夹下所有文件
php 移除数组重复元素的一点说明
discuz论坛 用户登录 后台程序代码
Optimizer与Debugger兼容性问题的解决方法
Zend Studio 无法启动的问题解决方法
php 页面执行时间计算代码
php smarty的预保留变量总结
php获取网页内容方法总结
php读取msn上的用户信息类

PHP 中的 function.inc.php超越php


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 308 ::
收藏到网摘: n/a

<?php
/**
* Global Function
*
* @author Avenger <[email protected]>
* @version 1.14 $Id 2003-05-30 10:10:08 $
*/
/**
* 弹出提示框
*
* @access public
* @param string $txt 弹出一个提示框,$txt为要弹出的内容
* @return void
*/
function popbox($txt) {
echo "<script language='JavaScript'>alert('".$txt."')</script>";
}
/**
* 非法操作警告
*
* @access public
* @param string $C_alert 提示的错误信息
* @param string $I_goback 返回后返回到哪一页,不指定则不返回
* @return void
*/
function alert($C_alert,$I_goback='main.php') {
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 int $len 产生字符串的位数
* @return string
*/
function randstr($len=6) {
$chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-@#~'; // characters to build the password from
mt_srand((double)microtime()*1000000*getmypid()); // seed the random number generater (must be done)
$password='';
while(strlen($password)<$len)
$password.=substr($chars,(mt_rand()%strlen($chars)),1);
return $password;
}
/**
* 判断下拉菜音的选取项
*
* 可以判断字符串一和字符串二是否相等.从而使相等的项目在下拉菜单中被选择
*
* @access public
* @param string $str1 要比较的字符串一
* @param string $str2 要比较的字符串二
* @return string 相等返回字符串"selected",否则返回空字符串
*/
function ckselect($str1,$str2) {
if($str1==$str2) {
return ' selected';
}
return '';
}
/**
* 一个自定义的Ftp函数
*
* @access private
* @return void
*/
function myftp($ftp_server,$ftp_port,$ftp_username,$ftp_password,$ftp_path='/') {
$ftpid=@ftp_connect($ftp_server,$ftp_port) or die('Connect To Ftp Server Error!');
@ftp_login($ftpid,$ftp_username,$ftp_password) or die('Login Ftp Error!');
@ftp_chdir($ftpid,'/'.$ftp_path) or die('Chdir Error!');
return $ftpid;
}
/**
* 截取中文部分字符串
*
* 截取指定字符串指定长度的函数,该函数可自动判定中英文,不会出现乱码
*
* @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) {$rstr.='...';}
return $rstr;
}
/**
* 制作链接
*
* @access public
* @param string url 要链接到的网址
* @param string linktext 显示的链接文字
* @param string target 目标框架
* @param string extras 扩展参数
* @return string
*/
function make_link ($url, $linktext=false, $target=false, $extras=false) {
return sprintf("<a href=\"%s\"%s%s>%s</a>",
$url,
($target ? ' target="'.$target.'"' : ''),
($extras ? ' '.$extras : ''),
($linktext ? $linktext : $url)
);
}
/**
* 格式化用户评论
*
* @access public
* @param string
* @return void
*/
function clean_note($text) {
$text = htmlspecialchars(trim($text));
/* turn urls into links */
$text = preg_replace("/((mailto|http|ftp|nntp|news):.+?)(>|\s|\)|\"|\.\s|$)/","<a href=\"\1\">\1</a>\3",$text);
/* this 'fixing' code will go away eventually. */
$fixes = array('<br>', '<p>', '</p>');
reset($fixes);
while (list(,$f) = each($fixes)) {
$text = str_replace(htmlspecialchars($f), $f, $text);
$text = str_replace(htmlspecialchars(strtoupper($f)), $f, $text);
}
/* <p> tags make things look awfully weird (breaks things out of the <code>
tag). Just convert them to <br>'s
*/
$text = str_replace (array ('<P>', '<p>'), '<br>', $text);
/* Remove </p> tags to prevent it from showing up in the note */
$text = str_replace (array ('</P>', '</p>'), '', $text);
/* preserve linebreaks */
$text = str_replace("\n", "<br>", $text);
/* this will only break long lines */
if (function_exists("wordwrap")) {
$text = wordwrap($text);
}
// Preserve spacing of user notes
$text = str_replace(" ", " ", $text);
return $text;
}
/**
* 获取图象信息的函数
*
* 一个全面获取图象信息的函数
*
* @access public
* @param string $img 图片路径
* @return array
*/
function getimageinfo($img) {
$img_info = getimagesize($img);
switch ($img_info[2]) {
case 1:
$imgtype = "GIF";
break;
case 2:
$imgtype = "JPG";
break;
case 3:
$imgtype = "PNG";
break;
}
$img_size = ceil(filesize($img)/1000)."k";
$new_img_info = array (
"width"=>$img_info[0],
"height"=>$img_info[1],
"type"=>$imgtype,
"size"=>$img_size
);
return $new_img_info;
}
/**
* 计算当前时间
*
* 以微秒为单位返回当前系统的时间
*
* @access public
* @return real
*/
function getmicrotime() {
$tmp = explode(' ', microtime());
return (real)$tmp[1]. substr($tmp[0], 1);
}
/**
* 写文件操作
*
* @access public
* @param bool
* @return void
*/
function wfile($file,$content,$mode='w') {
$oldmask = umask(0);
$fp = fopen($file, $mode);
if (!$fp) return false;
fwrite($fp,$content);
fclose($fp);
umask($oldmask);
return true;
}
/**
* 加载模板文件
*
* @access public
* @return void
*/
function tpl_load($tplfile,$path='./templates/',$empty='remove') {
global $tpl;
$path ? '' : $path='./templates/';
require_once 'HTML/Template/PHPLIB.php';
$tpl = new Template_PHPLIB($path,$empty);
$tpl->setFile('main',$tplfile);
}
/**
* 模板解析输出
*
* @access public
* @return void
*/
function tpl_output() {
global $tpl;
$tpl->parse('output','main');
$tpl->p('output');
}
/**
* 邮件发送函数
*
* @access public private
* @param bool
* @return void
*/
function mailSender($from, $to, $title, $content) {
$from ? $from = '[email protected]' : '';
$title ? $title = 'From Exceed PHP...' : '';
$sig = "
感谢您使用我们的服务.\n\n
Exceed PHP(超越PHP)\n
$maildate\n\n
---------------------------------------------------------------------------------------
\n\n
去发现极限方法的唯一办法就是去超越它\n
超越PHP欢迎您(http://www.phpe.net)\n
";
$content .= $sig;
if (@mail($to, $title, $content, "From:$from\nReply-To:$from")) {
return true;
} else {
return false;
}
}
function br2none($str) {
return str_replace(array('<br>', '<br />'), "", $str);
}
/**
* UBB解析
*
* @param none
* @access public
* @return void
*/
function ubbParse($txt, $coverhtml=0) {
if ($coverhtml == 0) $txt = nl2br(new_htmlspecialchars($txt)); //BR和HTML转换
//只转换BR,不转换HTML
if ($coverhtml == 1) {
if (!preg_match('/<\s*(p|br)\s*>/is', $txt) && !preg_match('/<table.+<\/table>/is', $txt)) {
$txt = strip_tags($txt);
$txt = nl2br($txt);
} else {
$txt = str_replace('<?', '<?', $txt);
}
}
// pre and quote
//error_reporting(E_ALL);
$txt = preg_replace( "#\[quote\](.+?)\[/quote\]#is", "<blockquote>\1</blockquote>", $txt );
$txt = preg_replace( "#\[code\](.+?)\[/code\]#ise", "'<pre class=php>'.br2none('').'</pre>'", $txt );
// Colors 支持篏套
while( preg_match( "#\[color=([^\]]+)\](.+?)\[/color\]#is", $txt ) ) {
$txt = preg_replace( "#\[color=([^\]]+)\](.+?)\[/color\]#is", "<span style='color:\1'>\2</span>", $txt );
}
// Align
$txt = preg_replace( "#\[center\](.+?)\[/center\]#is", "<center>\1</center>", $txt );
$txt = preg_replace( "#\[left\](.+?)\[/left\]#is", "<div align=left>\1</div>", $txt );
$txt = preg_replace( "#\[right\](.+?)\[/right\]#is", "<div align=right>\1</div>", $txt );
// Sub & sup
$txt = preg_replace( "#\[sup\](.+?)\[/sup\]#is", "<sup>\1</sup>", $txt );
$txt = preg_replace( "#\[sub\](.+?)\[/sub\]#is", "<sub>\1</sub>", $txt );
// email tags
// [email][email protected][/email] [[email protected]]Email me[/email]
$txt = preg_replace( "#\[email\](\S+?)\[/email\]#i" , "<a href='mailto:\1'>\1</a>", $txt );
$txt = preg_replace( "#\[email\s*=\s*\"\;([\.\w\-]+\@[\.\w\-]+\.[\.\w\-]+)\s*\"\;\s*\](.*?)\[\/email\]#i" , "<a href='mailto:\1'>\2</a>", $txt );
$txt = preg_replace( "#\[email\s*=\s*([\.\w\-]+\@[\.\w\-]+\.[\w\-]+)\s*\](.*?)\[\/email\]#i" , "<a href='mailto:\1'>\2</a>", $txt );
// url tags
// [url]http://www.phpe.net[/url] [url=http://www.phpe.net]Exceed PHP![/url]
$txt = preg_replace( "#\[url\](\S+?)\[/url\]#i" , "<a href='\1' target='_blank'>\1</a>", $txt );
$txt = preg_replace( "#\[url\s*=\s*\"\;\s*(\S+?)\s*\"\;\s*\](.*?)\[\/url\]#i" , "<a href='\1' target='_blank'>\2</a>", $txt );
$txt = preg_replace( "#\[url\s*=\s*(\S+?)\s*\](.*?)\[\/url\]#i" , "<a href='\1' target='_blank'>\2</a>", $txt );
// Start off with the easy stuff
$txt = preg_replace( "#\[b\](.+?)\[/b\]#is", "<b>\1</b>", $txt );
$txt = preg_replace( "#\[i\](.+?)\[/i\]#is", "<i>\1</i>", $txt );
$txt = preg_replace( "#\[u\](.+?)\[/u\]#is", "<u>\1</u>", $txt );
$txt = preg_replace( "#\[s\](.+?)\[/s\]#is", "<s>\1</s>", $txt );
// Header text
$txt = preg_replace( "#\[h([1-6])\](.+?)\[/h[1-6]\]#is", "<h\1>\2</h\1>", $txt );
// Images
$txt = preg_replace( "#\[img\](.+?)\[/img\]#i", "<a href='\1' target='_blank'><img alt='Click to fullsize' src='\1' border='0' onload='javascript:if(this.width>500) this.width=500' align='center' hspace='10' vspace='10'></a><br />", $txt );
// Attach
$txt = preg_replace( "#\[attach\s*=\s*\"\;\s*(\S+?)\s*\"\;\s*\](.*?)\[\/attach\]#i" , "<a href='\2' target='_blank'><b>相关附件:</b>\1</a>", $txt );
$txt = preg_replace( "#\[attach\s*=\s*(\S+?)\s*\](.*?)\[\/attach\]#i" , "<a href='\2' target='_blank'><b>相关附件:</b>\1</a>", $txt );
// Iframe
$txt = preg_replace( "#\[iframe\](.+?)\[/iframe\]#i", "<div align='center'><iframe src='\1' style='width:96%;height:400px'></iframe><br clear='all'><a href='\1' target='_blank'>在新窗口打开链接</a></div>", $txt );
// (c) (r) and (tm)
$txt = preg_replace( "#\(c\)#i" , "©" , $txt );
$txt = preg_replace( "#\(tm\)#i" , "™" , $txt );
$txt = preg_replace( "#\(r\)#i" , "®" , $txt );
return $txt;
}
//重新格式化日期
function format_date($date) {
if (!preg_match('/^\d+$/', $date)) $date = strtotime(trim($date));
$sec = time() - $date;
//Sec 1 day is 86400
if ($sec < 86400) {
return round($sec/3600). ' hours ago';
} elseif ($sec < (86400 * 7)) {
return round($sec/86400). ' days ago';
} elseif ($sec < (86400 * 7 * 4)) {
return round($sec/(86400*7)). ' weeks ago';
} else {
return date('Y-m-d', $date);
}
}
?>