|
/**
* Global Function
*
* @author Avenger <avenger@php.NET>
* @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 = 'sender@phpe.NET' : '';
$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 支持 主站蜘蛛池模板: 肉动漫无码无删减在线观看 | 国产一区精选播放022 | 中国老女人xxhd69 | 耻辱诊察室1一4集动漫在线观看 | 被同桌摸出水来了好爽的视频 | 少妇两个奶头喷出奶水了怎么办 | 一二三四在线视频社区 | 亚色九九九全国免费视频 | 夜里18款禁用的免费B站动漫 | 热九九99香蕉精品品 | 欧美亚洲精品一区二三区8V | 末成年美女黄网站色大片连接 | 99久久99久久精品免费看子 | 乱精品一区字幕二区 | 日韩AV爽爽爽久久久久久 | 偷偷鲁青春草原视频分类 | 被男按摩师添的好爽在线直播 | 国产午夜一区二区三区免费视频 | 国产欧美精品一区二区色综合 | 亚洲综合网国产精品一区 | 91九色视频在线观看 | 人妻中文字幕无码久久AV爆 | 丝袜美女自摸 | 日本国产黄色片 | 国产 日韩 欧美 高清 亚洲 | 欧美高清一区二区三 | 伊人久99久女女视频精品免 | 极品少妇伦理一区二区 | 亚洲免费国产在线日韩 | 亚洲 无码 在线 专区 | 国产精品久久久久无码AV色戒 | 国产精品无码AV天天爽色欲 | 婚后被调教当众高潮H喷水 回复术士勇者免费观看全集 | 亚洲日韩乱码人人爽人人澡人 | 内射少妇36P九色 | 老色69久久九九精品高潮 | 香蕉久久一区二区三区啪啪 | 亚洲欧美综合乱码精品成人网 | 欧亚一卡二卡日本一卡二卡 | 精品AV亚洲乱码一区二区 | 97超碰射射射 |