ホームページ > バックエンド開発 > PHPチュートリアル > 私がよく使う共通関数ライブラリ

私がよく使う共通関数ライブラリ

WBOY
リリース: 2016-07-25 09:09:14
オリジナル
677 人が閲覧しました
ゼロ パディング、中国語インターセプト、停止、HTML ジャンプ、JS ジャンプ、HTML のフィルタリング、電子メールの正当性のチェック、テキスト内のハイパーリンクをクリック可能な接続への変換、時刻形式を返すなど、一般的に使用される PHP 関数ライブラリがあります。

  1. //フロントエンドとバックエンドの両方で使用されるため、簡単に再利用できるようにスーパーマリオフォルダーに配置されています
  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. header('Etag: '.md5($buffer));
  16. if( extension_loaded('zlib' ) AND strstr ($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip") ) {
  17. $buffer = gzencode($buffer,9);
  18. header('Content-Encoding: gzip');
  19. header('Vary: Accept-エンコーディング') ;
  20. //header('Via: 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. * 模拟strstr()的第三个参数,返回$h中,$n之前的数据
  38. * //$h = haystack, $n = needle
  39. * @param $h
  40. * @param $n
  41. * @return
  42. */
  43. function strstrb($h, $n) {
  44. return array_shift(explode($n, $h, 2));
  45. }
  46. /**
  47. * 显示错误信息,并跳转至$pageurl,含有样式
  48. *
  49. * @param string $messages
  50. * @param string $pageurl
  51. * @param int $msc 秒数
  52. */
  53. function msg($messages, $pageurl='javascript:history.back();', $msc=5) {
  54. echo 'System Message
  55. Web System Message

  • ', $messages, '
  • >>>请点此处返回

  • ';
  • exit();
  • }
  • /**
  • * 检查后面的日期是否大于前面的日期
  • * @param type $datecome 前面的日期
  • * @param type $datego 后面的日期
  • * @return type
  • */
  • function sub_date($datecome, $datego) {
  • $d1 = strtotime($datecome);
  • $d2 = strtotime($datego);
  • $days = round(($d2 - $d1) / 3600 / 24);
  • $days = $days < 1 ? 0 : $days;
  • return $days;
  • }
  • /**
  • * 将$string的$length后边的内容用$dot替换
  • * @param string $string
  • * @param int $length
  • * @param string $dot
  • * @return string
  • */
  • function cutstr($string, $length, $dot = '...') {
  • @extract($string);
  • if (strlen($string) <= $length) {
  • return $string;
  • }
  • $string = htmlspecialchars($string);
  • $string = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string);
  • $strcut = '';
  • $n = $tn = $noc = 0;
  • while ($n < strlen($string)) {
  • $t = ord($string[$n]);
  • if ($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {
  • $tn = 1;
  • $n++;
  • $noc++;
  • } elseif (194 <= $t && $t <= 223) {
  • $tn = 2;
  • $n += 2;
  • $noc += 2;
  • } elseif (224 <= $t && $t < 239) {
  • $tn = 3;
  • $n += 3;
  • $noc += 2;
  • } elseif (240 <= $t && $t <= 247) {
  • $tn = 4;
  • $n += 4;
  • $noc += 2;
  • } elseif (248 <= $t && $t <= 251) {
  • $tn = 5;
  • $n += 5;
  • $noc += 2;
  • } elseif ($t == 252 || $t == 253) {
  • $tn = 6;
  • $n += 6;
  • $noc += 2;
  • } else {
  • $n++;
  • }
  • if ($noc >= $length) {
  • break;
  • }
  • }
  • if ($noc > $length) {
  • $n -= $tn;
  • }
  • $strcut = substr($string, 0, $n);
  • $strcut = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $strcut);
  • return $strcut . $dot;
  • }
  • /**
  • +----------------------------------------------------------
  • * 如果 magic_quotes_gpc 为开启状态,则使用此方法使用为特殊符号前增加转移符号
  • +----------------------------------------------------------
  • * @access public
  • +----------------------------------------------------------
  • * @param string $value 可以为数组
  • +----------------------------------------------------------
  • * @return string
  • +----------------------------------------------------------
  • */
  • function kaddslashes($value) {
  • return $value = is_array($value) ? array_map('kaddslashes', $value) : addslashes($value);
  • }
  • /**
  • +----------------------------------------------------------
  • * 为特殊符号前去除转移符号
  • +----------------------------------------------------------
  • * @access public
  • +----------------------------------------------------------
  • * @param string $value 可以为数组
  • +----------------------------------------------------------
  • * @return string
  • +----------------------------------------------------------
  • */
  • function kstripcslashes($value) {
  • return $value = is_array($value) ? array_map('kstripcslashes', $value) : stripcslashes($value);
  • }
  • /**
  • * 将字符串内容html实体化,避免一些非法信息直接执行。如果参数是数组,则递归。
  • * @param string $value
  • * @return array
  • */
  • function khtmlspecialchars($value) {
  • return is_array($value) ? array_map('khtmlspecialchars', $value) :
  • preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5});)/', '&\\1', str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $value));
  • }
  • /**
  • * 将字符串中的html去除,如果参数是数组,则递归。
  • * @param string $value
  • * @return array
  • */
  • functionstriptags($value) {
  • return $value = is_array($value) ? array_map('striptags', $value) :strip_tags($value);
  • }
  • /**
  • * メールの有効性を確認します
  • *
  • * @param string $email
  • * @return bool
  • */
  • function check_email($email) {
  • if (preg_match("/([a-z0-9 ]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[.][a-z]{ 2,3}([.][a-z]{2})?/i", $email)) {
  • return true;
  • } else {
  • return false;
  • }
  • }
  • /**
  • * 安全なメールアドレス
  • *
  • * @param string $email
  • * @param $attributes
  • * @return
  • * /
  • functionsafe_mailto($email, $title = '', $attributes = '') {
  • if (is_array($email)) {
  • $tmp = $email;
  • unset($email);
  • extract($tmp );
  • }
  • $title = (文字列) $title;
  • if ($title == "") {
  • $title = $email;
  • }
  • for ($i = 0; $i <16; $i++) {
  • $x[] = substr(' }
  • $x[] = '"';
  • if ($attributes != ' ') {
  • if (is_array($attributes)) {
  • foreach ($attributes as $key => $val) {
  • $x[] = ' ' . $key 。 '=';
  • for ($i = 0; $i $x[] = "|" . ord(substr($val, $i, 1)) ;
  • }
  • $x[] = '"';
  • }
  • } else {
  • for ($i = 0; $i $x[] = substr($属性, $i, 1);
  • }
  • }
  • }
  • $x[] = '>';
  • $temp = array();
  • for ($i = 0; $i < strlen($ title); $i++) {
  • $ordinal = ord($title[$i]);
  • if ($ordinal < 128) {
  • $x[] = "|" 。 $ordinal;
  • } else {
  • if (count($temp) == 0) {
  • $count = ($ordinal < 224) ? 2 : 3;
  • }
  • $temp[] = $ordinal;
  • if (count($temp) == $count) {
  • $number = ($count == 3) ? (($temp['0'] % 16) * 4096) + (($temp['1'] % 64) * 64) + ($temp['2'] % 64) : (($temp[' 0'] % 32) * 64) + ($temp['1'] % 64);
  • $x[] = "|" 。 $number;
  • $count = 1;
  • $temp = array();
  • }
  • }
  • }
  • $x[] = '<';
  • $x[] = '/';
  • $x[] = 'a';
  • $x[] = '>';
  • $x = array_reverse($x);
  • ob_start();
  • ?> $buffer = ob_get_contents();
  • ob_end_clean();
  • if ($tmp == '' || $tmp == NULL) {
  • return $buffer;
  • } else {
  • echo $buffer;
  • }
  • }
  • /**
  • +------------------------------------------------ ----------
  • * テキスト内のハイパーリンクをクリック可能なリンクに変換します
  • +-------------------------- --- ------------------------
  • * @access public
  • +---------- ---- ----------------------------------------
  • *@param string $text 処理対象の文字列
  • +----------------------------------------------------- ----- ------------------
  • * @return string
  • +---------------------- ------------------------------------
  • */
  • function makeLink($string) {
  • $validChars = "a-z0-9/-_+ =.~!%@?#&;:$|";
  • $patterns = array(
  • "/(^|[^]_a-z0-9-="'/])([a-z]+?): //([{$validChars}]+)/ei",
  • "/(^|[^]_a-z0-9-="'/])www.([a-z0-9-]+)。 ([{$validChars}]+)/ei",
  • "/(^|[^]_a-z0-9-="'/])ftp.([a-z0-9-]+).([ {$validChars}]+)/ei",
  • "/(^|[^]_a-z0-9-="'/:.])([a-z0-9-_.]+?)@( [{$validChars}]+)/ei");
  • $replacements = array(
  • "'\1 \2://'.Input::truncate( '\3' ).''",
  • "'\1'.Input::truncate( 'www.\2.\3' ).''",
  • "'\1< a href="ftp://ftp.\2.\3" title="ftp.\2.\3" rel="external">'.Input::truncate( 'ftp.\2.\3' ).''",
  • "'\1'.Input::truncate( '\2 @\3' ).''");
  • return preg_replace($patterns, $replacements, $string);
  • }
  • /**
  • * クライアントブラウザを取得します
  • * @return string
  • */
  • function verify_info() {
  • $ブラウザ = "";
  • $browserver = "";
  • $Browsers = array("Lynx"、"MOSAIC"、"AOL"、"Opera"、"JAVA"、"MacWeb"、"WebExplorer"、"OmniWeb") ;
  • $Agent = $_SERVER["HTTP_USER_AGENT"]; //浏览器の全局变量
  • for ($i = 0; $i if (strpos($Agent, $Browsers[ $i])) {
  • $browser = $Browsers[$i];
  • $browserver = "";
  • }
  • }
  • if (ereg("Mozilla", $Agent) && ereg("MSIE", $Agent) ) {
  • $temp =explode("(", $Agent);
  • $Part = $temp[1];
  • $temp =explode(";", $Part);
  • $Part = $temp[1];
  • $temp =explode(" ", $Part);
  • $browserver = $temp[2];
  • //$browserver =preg_replace("/([d.]+)/","1",$browserver) ;
  • $browserver = "IE" 。 $browserver;
  • $browser = "IE";
  • }
  • if (ereg("Mozilla", $Agent) && !ereg("MSIE", $Agent)) {
  • $temp =explode("(", $Agent );
  • $Part = $temp[0];
  • $temp =explode("/", $Part);
  • $browserver = $temp[1];
  • $temp =explode(" ", $browserver);
  • $browserver = $temp[0];
  • $browserver = preg_replace("/([d.]+)/", "1", $browserver);
  • $browserver = " $browserver";
  • $browser = "Netscape Navigator";
  • }
  • if (ereg("Mozilla", $Agent) && ereg("Opera", $Agent)) {
  • $temp =explode("(", $Agent);
  • $Part = $temp [1];
  • $temp =explode(")", $Part);
  • $browserver = $temp[1];
  • $temp =explode(" ", $browserver);
  • $browserver = $temp[2] ;
  • $browserver = preg_replace("/([d.]+)/", "1", $browserver);
  • $browserver = " $browserver";
  • $browser = "Opera";
  • }
  • //火狐浏览器
  • if (ereg("Mozilla", $Agent) && ereg("Firefox", $Agent)) {
  • $temp =explode("(", $Agent);
  • $Part = $temp[1];
  • $temp =explode(")", $Part);
  • $browserver = $temp[1];
  • $temp =explode(" ", $browserver);
  • $browserver = $temp[2];
  • $browser = "火狐";
  • }
  • //谷歌浏览器
  • if (ereg("Mozilla", $Agent) && ereg("Chrome", $Agent)) {
  • $temp =explode("(", $Agent) ;
  • $temp =explode(" ", $temp[2]);
  • $browserver = $temp['3']; //如果以後google升级不変位置的话就是它了
  • $browser = "谷歌";
  • }
  • //360safe浏览器
  • if (ereg("Mozilla", $Agent) && ereg("360SE", $Agent )) {
  • //因みに360浏览器,没版本……
  • $browserver = $browser = "360安全卫士";
  • }
  • if ($browser != "") {
  • //$browseinfo = $browser.$browserver;
  • $browseinfo = $browserver;
  • } else {
  • $browseinfo = "不明";
  • }
  • return $browseinfo;
  • }
  • /**
  • * 戻り時間间格式
  • * @name: prepareDate
  • * @desc: 特定のデータベース タイプに適切な形式で日付を準備します
  • * 指定された UNIX タイムスタンプ
  • * @param: $timestamp: UNIX タイムスタンプ
  • * @param: $ fieldType: 日付をフォーマットするフィールドのタイプ
  • * (MySQL では、DATE、TIME、YEAR、および DATETIME があります)
  • */
  • function prepareDate($timestamp, $fieldType = 'DATETIME') {
  • $date = '';
  • if (!$timestamp === false && $timestamp > 0) {
  • switch ($fieldType) {
  • case 'DATE' :
  • $date = date('Y-m-d', $timestamp);
  • Break;
  • case 'TIME' :
  • $date = date('H:i:s', $timestamp);
  • ブレーク;
  • ケース 'YEAR' :
  • $date = date('Y', $timestamp);
  • ブレーク;
  • デフォルト:
  • $date = date('Y-m-d H:i:s', $timestamp);
  • Break;
  • }
  • }
  • return $date;
  • }
  • /**
  • * 多次元配列の再帰に適応し、重複した値を削除してから戻ります
  • * @param array $array
  • * @return array
  • */
  • function super_unique($ array) {
  • $result = array_map("unserialize", array_unique(array_map("serialize", $array)));
  • foreach ($result as $key => $value) {
  • if (is_array($value)) {
  • $result[$key] = super_unique($value);
  • }
  • }
  • return $result;
  • }
  • /**
  • * 値が2桁に満たない場合は、自動的にゼロが追加されます
  • * @param int $num
  • * @return int
  • */
  • function fullzero($num){
  • if(strlen($num)!=2){
  • return '0'.$num;
  • }else{
  • return $num;
  • }
  • }
  • // 上一个を返すurl
  • function get_visit_url(){
  • return $_SERVER['HTTP_REFERER'];
  • }
  • ?>
  • 复制代 私がよく使う共通関数ライブラリ


    関連ラベル:
    ソース:php.cn
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    最新の問題
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート