首頁 後端開發 php教程 我常用的common function庫

我常用的common function庫

Jul 25, 2016 am 09:09 AM

有零填充、截取中文、halt、html跳轉、js跳轉、過濾html、檢查郵箱合法、轉換文字中的超連結為可點擊連接、返回時間格式等等常用php函數庫。

  1. //因為前面後台要用,所以放在supermario資料夾下方便重複使用
  2. /**
  3. * 喔~可愛滴小數點~喔~可愛滴千位數~
  4. * 如果位數超過4位,則將第3位前增加,
  5. * @param int $gold
  6. * @return string
  7. */
  8. function showGold($gold) {
  9. return number_format($gold);
  10. }
  11. /**
  12. * 頁面壓縮輸出
  13. */
  14. function ob_callback($buffer) {
  15. function ob_callback($buffer)> header('Etag: '.md5($buffer));
  16. if(extension_loaded('zlib') AND strstr($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip") ) {
  17. $buffer = gzen( $buffer,9);
  18. header('Content-Encoding: gzip');
  19. header('Vary: Accept-Encoding');
  20. //header('途經:www.guangxitravel .cn' );
  21. header('Content-Length: '.strlen($buffer));
  22. }
  23. return $buffer;
  24. }
  25. /**
  26. * 沒有提示的情況下跳轉頁
  27. * @param string $url
  28. * @param string $target
  29. */
  30. function go($url='', $target='parent') {
  31. if ($url != "") {
  32. echo('');
  33. } else {
  34. echo(' ');
  35. }
  36. }
  37. /**
  38. * 清除磁碟,ECHO,然後DIE(可惡的javascript+php…純文字)輸出,俱樂部有一些空白字元… …)
  39. * @param string $msg
  40. */
  41. function justSay($msg) {
  42. ob_clean();
  43. die($msg);
  44. }
  45. /**
  46. * 将符合第二个参数的第一个参数里的内容替换为红色
  47. * @param string $data
  48. * @param array $keyword
  49. * @return string
  50. */
  51. function change_keyword($data, $keywords) {
  52. if (is_array($keywords)) {
  53. foreach ($keywords as $k => $v) {
  54. $data = str_replace($v, '<span class="red b">' . $v . '</span>', $data);
  55. }
  56. return $data;
  57. } else {
  58. return str_replace($keywords, '<span class="red b">' . $keywords . '</span>', $data);
  59. }
  60. }
  61. /**
  62. * 创建完全随机的颜色
  63. * @return string
  64. */
  65. function makeColor() {
  66. $key = '#';
  67. for ($i = 0; $i < 6; $i++)
  68. $key.= rand(0, 9);//生成php随机数
  69. return $key;
  70. }
  71. /**
  72. * 自动加载模型和第三方功能类
  73. * @param string $className
  74. */
  75. function autoLoad($className) {
  76. if (strstr($_SERVER['REQUEST_URI'], "/operator/") == false) { //服务器不支持SCRIPT_URL
  77. if (file_exists(siteRoot . '/client/model/' . $className . '.php')) {
  78. require_once siteRoot . '/client/model/' . $className . '.php';
  79. return;
  80. }
  81. } else {
  82. if (file_exists(siteRoot . '/manager/model/' . $className . '.php')) {
  83. require_once siteRoot . '/manager/model/' . $className . '.php';
  84. return;
  85. }
  86. }
  87. if (file_exists(siteRoot . '/public/modules/' . $className . '.php')) {
  88. require_once siteRoot . '/public/modules/' . $className . '.php';
  89. return;
  90. }
  91. if (file_exists(siteRoot . '/client/order/model/' . $className . '.php')) {
  92. require_once siteRoot . '/client/order/model/' . $className . '.php';
  93. return;
  94. }
  95. }
  96. /**
  97. * 用javascript弹出一条信息
  98. * @param <string> $message
  99. */
  100. function message($message='') {
  101. echo('<script language="javascript">alert("' . $message . '");</script>');
  102. }
  103. /**
  104. * 模拟strstr()的第三个参数,返回$h中,$n之前的数据
  105. * //$h = haystack, $n = needle
  106. * @param <string> $h
  107. * @param <string> $n
  108. * @return <string>
  109. */
  110. function strstrb($h, $n) {
  111. return array_shift(explode($n, $h, 2));
  112. }
  113. /**
  114. * 显示错误信息,并跳转至$pageurl,含有样式
  115. *
  116. * @param string $messages
  117. * @param string $pageurl
  118. * @param int $msc 秒数
  119. */
  120. function msg($messages, $pageurl='javascript:history.back();', $msc=5) {
  121. echo '<title>System Message</title>
  122. <style type="text/css">
  123. *{margin:0;padding:0px}
  124. body{background:#fff;color:#333;font:12px Verdana, Tahoma, sans-serif;text-align:center;margin:0 auto;}
  125. a{text-decoration:none;color:#29458C}
  126. a:hover{text-decoration:underline;color:#f90}
  127. #msg{border:1px solid #c5d7ef;text-align:left;margin:10% auto; width:50%}
  128. #msgtitle{padding:5px 10px;background:#f0f6fb;border-bottom:1px #c5d7ef solid}
  129. #msgtitle h1{font-size:14px;font-weight:bold;padding-left:10px;border-left:3px solid #acb4be;color:#1f3a87}
  130. #msgcontent {padding:20px 50px;}
  131. #msgcontent li{display:block;padding:5px;list-style:none;}
  132. #msgcontent p{text-align:center;margin-top:10px;padding:0}
  133. </style>
  134. </head>
  135. <body>
  136. <div id="msg">
  137. <div id="msgtitle">
  138. <h1>Web System Message</h1>
  139. </div>
  140. <div id="msgcontent">
  141. ', $messages, '
  142. <p><a href="', $pageurl, '">>>>请点此处返回</a></p>
  143. </div>
  144. </div>
  145. <meta http-equiv="refresh" content="' . $msc . ';URL=', $pageurl, '">';
  146. exit();
  147. }
  148. /**
  149. * 检查后面的日期是否大于前面的日期
  150. * @param type $datecome 前面的日期
  151. * @param type $datego 后面的日期
  152. * @return type
  153. */
  154. function sub_date($datecome, $datego) {
  155. $d1 = strtotime($datecome);
  156. $d2 = strtotime($datego);
  157. $days = round(($d2 - $d1) / 3600 / 24);
  158. $days = $days < 1 ? 0 : $days;
  159. return $days;
  160. }
  161. /**
  162. * 将$string的$length后边的内容用$dot替换
  163. * @param string $string
  164. * @param int $length
  165. * @param string $dot
  166. * @return string
  167. */
  168. function cutstr($string, $length, $dot = '...') {
  169. @extract($string);
  170. if (strlen($string) <= $length) {
  171. return $string;
  172. }
  173. $string = htmlspecialchars($string);
  174. $string = str_replace(array('&amp;', '&quot;', '&lt;', '&gt;'), array('&', '"', '<', '>'), $string);
  175. $strcut = '';
  176. $n = $tn = $noc = 0;
  177. while ($n < strlen($string)) {
  178. $t = ord($string[$n]);
  179. if ($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {
  180. $tn = 1;
  181. $n++;
  182. $noc++;
  183. } elseif (194 <= $t && $t <= 223) {
  184. $tn = 2;
  185. $n += 2;
  186. $noc += 2;
  187. } elseif (224 <= $t && $t < 239) {
  188. $tn = 3;
  189. $n += 3;
  190. $noc += 2;
  191. } elseif (240 <= $t && $t <= 247) {
  192. $tn = 4;
  193. $n += 4;
  194. $noc += 2;
  195. } elseif (248 <= $t && $t <= 251) {
  196. $tn = 5;
  197. $n += 5;
  198. $noc += 2;
  199. } elseif ($t == 252 || $t == 253) {
  200. $tn = 6;
  201. $n += 6;
  202. $noc += 2;
  203. } else {
  204. $n++;
  205. }
  206. if ($noc >= $length) {
  207. break;
  208. }
  209. }
  210. if ($noc > $length) {
  211. $n -= $tn;
  212. }
  213. $strcut = substr($string, 0, $n);
  214. $strcut = str_replace(array('&', '"', '<', '>'), array('&amp;', '&quot;', '&lt;', '&gt;'), $strcut);
  215. return $strcut . $dot;
  216. }
  217. /**
  218. +----------------------------------------------------------
  219. * 如果 magic_quotes_gpc 为开启状态,则使用此方法使用为特殊符号前增加转移符号
  220. +----------------------------------------------------------
  221. * @access public
  222. +----------------------------------------------------------
  223. * @param string $value 可以为数组
  224. +----------------------------------------------------------
  225. * @return string
  226. +----------------------------------------------------------
  227. */
  228. function kaddslashes($value) {
  229. return $value = is_array($value) ? array_map('kaddslashes', $value) : addslashes($value);
  230. }
  231. /**
  232. +----------------------------------------------------------
  233. * 为特殊符号前去除转移符号
  234. +----------------------------------------------------------
  235. * @access public
  236. +----------------------------------------------------------
  237. * @param string $value 可以为数组
  238. +----------------------------------------------------------
  239. * @return string
  240. +----------------------------------------------------------
  241. */
  242. function kstripcslashes($value) {
  243. return $value = is_array($value) ? array_map('kstripcslashes', $value) : stripcslashes($value);
  244. }
  245. /**
  246. * 将字符串内容html实体化,避免一些非法信息直接执行。如果参数是数组,则递归。
  247. * @param string $value
  248. * @return array
  249. */
  250. function khtmlspecialchars($value) {
  251. return is_array($value) ? array_map('khtmlspecialchars', $value) :
  252. preg_replace('/&amp;((#(\d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5});)/', '&\\1', str_replace(array('&', '"', '<', '>'), array('&amp;', '&quot;', '&lt;', '&gt;'), $value));
  253. }
  254. /**
  255. * 将字符串中的html去除,如果参数是数组,则递归。
  256. * @param string $value
  257. * @return array
  258. */
  259. function striptags($value) {
  260. return $value = is_array($value) ? array_map('striptags', $value) : strip_tags($value);
  261. }
  262. /**
  263. * 檢查email的合法性
  264. *
  265. * @param string $email
  266. * @return bool
  267. */
  268. function check_email($email) {
  269. if (preg_m ("/([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9] +)+[.][a-z]{2,3}([.][a-z]{2})?/i", $email)) {
  270. 回傳true;
  271. } else {
  272. return false;
  273. }
  274. }
  275. /**
  276. * 安全電子郵件地址
  277. *
  278. * @param string $email
  279. * @param string $title
  280. * @param $attributes
  281. * @return * @param $attributes
  282. * @return
  283. */
  284. function safe_mailto($email, $title = '', $attributes = '') {
  285. if (is_array($email)) {
  286. $tmp = $email;
  287. unset($email);
  288. extract($tmp);
  289. }
  290. $title = (string) $標題;
  291. if ($title == "") {
  292. $title = $email;
  293. }
  294. for ($i = 0; $i $x[] = substr('
  295. if ($attributes != '') {
  296. if (is_array ($attributes)) {
  297. foreach ($attributes as $key => $val ) {
  298. $x[] = ' ' 。 '=';
  299. for ($i = 0; $i $x[] = "|" .ord(substr($val, $i) , 1));
  300. }
  301. $x[] = '"';
  302. }
  303. } else {
  304. for ($i = 0; $i $x[] = substr($attributes, $i, 1);
  305. }
  306. }
  307. }
  308. $x [] = '> ';
  309. $temp = array();
  310. for ($i = 0; $i $ordinal = ord ($title[ $i]);
  311. if ($ordinal $x[] = "|" 。 ($temp) == 0) {
  312. $count = ($ordinal }
  313. $temp[] = $ordinal;
  314. if (countcount ($temp) == $count) {
  315. $number = ($count == 3 )? 64) * 64) + ($temp['2'] % 64) : (($temp['0'] % 32) * 64) + ($temp['1'] % 64) ;
  316. $ x[] = "|" 。 ] = ' $x[] = '/';
  317. $x[] = 'a';
  318. $x[] = '>';
  319. $x = array_reverse($x) ;
  320. ob_start();
  321. ?> $buffer = ob_get_contents( );
  322. ob_end_clean();
  323. if ($tmp == '' || $tmp == NULL) {
  324. return $buffer;
  325. } else {
  326. echo $buffer
  327. }
  328. }
  329. /**
  330. +---------------------------------------------- ------------
  331. * 轉換文字中的超連結為可點擊連線
  332. +-------------------- --------------------------------------
  333. * @access public
  334. +- -------------------------------------------------- -------
  335. * @param string $text 要處理的字串
  336. +------------------------- ---------------------------------
  337. * @return string
  338. +------ -------------------------------------------------- --
  339. */
  340. function makeLink($string) {
  341. $validChars = "a-z0-9/-_+=.~ !%@?#&;:$|" ;
  342. $patterns = array(
  343. "/(^|[^]_a-z0-9-="'/])([a-z]+?)://([{$validChars}]+ )/ei",
  344. "/(^|[^]_a-z0-9-="'/])www.([a-z0-9-]+).([{$validChars}]+ )/ei",
  345. "/(^|[^]_a-z0-9-="'/])ftp.([a-z0-9-]+).([{$validChars}]+ )/ei",
  346. "/(^|[^]_a-z0-9-="'/:.])([a-z0-9-_.]+?)@([{$validChars }]+)/ei");
  347. $replacements = array(
  348. "'\1\2://'.Input::truncate( '\3' ).''",
  349. "'\1'.Input::truncate( 'www.\2.\3' ).''",
  350. " '\1'.Input::truncate( ' ftp.\2. \3' ).''",
  351. "'\1 '.Input::truncate( '\2@\3' ).''");
  352. return preg_replace($patterns, $replacements, $string);
  353. }
  354. /**
  355. * 取得客戶瀏覽器
  356. * @return string
  357. */
  358. function browser_info() {
  359. $browser = "";
  360. $browserver = "";
  361. $Browsers = array("Lynx", "MOSAIC", "AOL", "Opera ", "JAVA", "MacWeb", "WebExplorer", "OmniWeb");
  362. $Agent = $_SERVER["HTTP_USER_AGENT"]; //瀏覽器的全域變數
  363. for ($i = 0; $i if (strpos($Agent, $Browsers[$i])) {
  364. $browser = $Browsers[$i] ;
  365. $browserver = "" ;
  366. }
  367. }
  368. if (ereg("Mozilla", $Agent) && ereg("MSIE", $Agent)) {
  369. $temp = Explode("(", $Agent) ;
  370. $Part = $temp[1];
  371. $temp =explode(";", $Part);
  372. $Part = $temp[1];
  373. $temp =explode(" ", $Part);
  374. $browserver = $temp[2];
  375. //$browserver =preg_replace("/([d.]+)/"," 1",$browserver);
  376. $browserver = "IE" . $browserver;
  377. $browser = "IE";
  378. }
  379. if (ereg("Mozilla", $Agent) && !ereg("MSIE", $Agent)) {
  380. $temp = explode("(", $Agent);
  381. $Part = $temp[0];
  382. $temp =explode("/", $Part);
  383. $browserver = $temp[1];
  384. $temp =explode(" ", $browserver);
  385. $browserver = $temp[0];
  386. $browserver = preg_replace("/([d.]+)/", "1" , $browserver);
  387. $browser = " $browserver";
  388. $browser = "Netscape Navigator";
  389. }
  390. if (ereg("Mozilla", $Agent) && ereg ("Opera", $Agent)) {
  391. $temp =explode("(", $Agent);
  392. $Part = $temp[1];
  393. $temp =explode(")", $Part);
  394. $browserver = $temp[1];
  395. $temp =explode(" ", $browserver);
  396. $browserver = $temp[2];
  397. $browserver = preg_replace ("/([d.]+)/", "1", $browserver);
  398. $browser = " $browserver";
  399. $browser = "Opera";
  400. }
  401. / /狐狐瀏覽器
  402. if (ereg("Mozilla", $Agent) && ereg("Firefox", $Agent)) {
  403. $temp =explode("(", $Agent);
  404. $部分= $temp[1];
  405. $temp = 爆炸(")", $Part);
  406. $browserver = $temp[1];
  407. $temp = 爆炸(" ", $browserver ) ;
  408. $browserver = $temp[2];
  409. $browser = "火狐";
  410. }
  411. //Google瀏覽器
  412. if (ereg("Mozilla", $Agent) && ereg("Chrome", $Agent)) {
  413. $temp = 爆炸("(", $Agent);
  414. $temp = 爆炸(" ", $temp[2]);
  415. $ browserver = $temp['3']; //如果以後google升級不變位置的話就是它了
  416. $browser = "Google";
  417. }
  418. //360安全瀏覽器
  419. if (ereg("Mozilla", $Agent) && ereg("360SE", $Agent)) {
  420. //因為360瀏覽器,沒有版本…
  421. $browser = $browser = "360安全衛士";
  422. }
  423. if ($browser != "") {
  424. //$browseinfo = $browser.$browser;
  425. $ $ browserinfo = $browserver;
  426. } else {
  427. $browseinfo = "未知";
  428. }
  429. return $browseinfo;
  430. }
  431. /**
  432. * 傳回時間格式
  433. * @name:prepareDate
  434. * @desc:為特定資料庫類型準備正確格式的日期
  435. * 給定UNIX時間戳
  436. * @param:$timestamp : UNIX 時間戳
  437. * @param: $fieldType: 用於格式化日期的欄位類型
  438. * (在MySQL 中,有DATE、TIME、YEAR 和DATETIME)
  439. *
  440. 函數prepareDate($timestamp, $fieldType = 'DATETIME') {
  441. $date = '';
  442. if (!$timestamp === false && $timestamp > 0) {
  443. switch ( $fieldType) {
  444. case '日期' :
  445. $date = date('Y-m-d', $timestamp);
  446. 規則;
  447. case '時間' :
  448. $date = 日期('H:i:s', $timestamp);
  449. 中斷;
  450. case 'YEAR' :
  451. $date = date('Y', $timestamp);
  452. 中斷;
  453. 默認:
  454. $date = date('Y-m-d H:i:s', $timestamp);
  455. break;
  456. }
  457. }
  458. return $date;
  459. }
  460. /**
  461. * 適應多維數組的遞歸,並將其中重複的值去掉後回傳
  462. * @param array $array
  463. * @return array
  464. */
  465. function super_unique($array) {
  466. $result = array_map("unserialize", array_unique(array_map("serialize", $array)) ;
  467. foreach ($result as $key => $value) {
  468. if (is_array($value)) {
  469. $result[$key] = super_unique($value);
  470. }
  471. }
  472. 回傳$結果;
  473. }
  474. /**
  475. * 若數值不符合2位,自動補零
  476. * @param int $num
  477. * @return int
  478. */
  479. function fullzero($num){
  480. if(strlen($num)!=2){
  481. return '0' .$num;
  482. }else{
  483. return $num;
  484. }
  485. }
  486. //回上一個url
  487. function get_visit_url(){
  488. return $> return $ _SERVER['HTTP_REFERER'];
  489. }
  490. ?>
複製程式碼
我常用的common function庫


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

11個最佳PHP URL縮短腳本(免費和高級) 11個最佳PHP URL縮短腳本(免費和高級) Mar 03, 2025 am 10:49 AM

11個最佳PHP URL縮短腳本(免費和高級)

在Laravel中使用Flash會話數據 在Laravel中使用Flash會話數據 Mar 12, 2025 pm 05:08 PM

在Laravel中使用Flash會話數據

簡化的HTTP響應在Laravel測試中模擬了 簡化的HTTP響應在Laravel測試中模擬了 Mar 12, 2025 pm 05:09 PM

簡化的HTTP響應在Laravel測試中模擬了

Instagram API簡介 Instagram API簡介 Mar 02, 2025 am 09:32 AM

Instagram API簡介

構建具有Laravel後端的React應用程序:第2部分,React 構建具有Laravel後端的React應用程序:第2部分,React Mar 04, 2025 am 09:33 AM

構建具有Laravel後端的React應用程序:第2部分,React

php中的捲曲:如何在REST API中使用PHP捲曲擴展 php中的捲曲:如何在REST API中使用PHP捲曲擴展 Mar 14, 2025 am 11:42 AM

php中的捲曲:如何在REST API中使用PHP捲曲擴展

在Codecanyon上的12個最佳PHP聊天腳本 在Codecanyon上的12個最佳PHP聊天腳本 Mar 13, 2025 pm 12:08 PM

在Codecanyon上的12個最佳PHP聊天腳本

宣布 2025 年 PHP 形勢調查 宣布 2025 年 PHP 形勢調查 Mar 03, 2025 pm 04:20 PM

宣布 2025 年 PHP 形勢調查

See all articles