Table des matières
Web System Message
Maison développement back-end tutoriel 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. 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-Encoding');
  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. /**
  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, '' . $v . '', $data);
  55. }
  56. return $data;
  57. } else {
  58. return str_replace($keywords, '' . $keywords . '', $data);
  59. }
  60. }
  61. /**
  62. * 创建完全随机的颜色
  63. * @return string
  64. */
  65. function makeColor() {
  66. $key = '#';
  67. for ($i = 0; $i $key.= rand(0, 9);//生成php随机数
  68. return $key;
  69. }
  70. /**
  71. * 自动加载模型和第三方功能类
  72. * @param string $className
  73. */
  74. function autoLoad($className) {
  75. if (strstr($_SERVER['REQUEST_URI'], "/operator/") == false) { //服务器不支持SCRIPT_URL
  76. if (file_exists(siteRoot . '/client/model/' . $className . '.php')) {
  77. require_once siteRoot . '/client/model/' . $className . '.php';
  78. return;
  79. }
  80. } else {
  81. if (file_exists(siteRoot . '/manager/model/' . $className . '.php')) {
  82. require_once siteRoot . '/manager/model/' . $className . '.php';
  83. return;
  84. }
  85. }
  86. if (file_exists(siteRoot . '/public/modules/' . $className . '.php')) {
  87. require_once siteRoot . '/public/modules/' . $className . '.php';
  88. return;
  89. }
  90. if (file_exists(siteRoot . '/client/order/model/' . $className . '.php')) {
  91. require_once siteRoot . '/client/order/model/' . $className . '.php';
  92. return;
  93. }
  94. }
  95. /**
  96. * 用javascript弹出一条信息
  97. * @param $message
  98. */
  99. function message($message='') {
  100. echo('');
  101. }
  102. /**
  103. * 模拟strstr()的第三个参数,返回$h中,$n之前的数据
  104. * //$h = haystack, $n = needle
  105. * @param $h
  106. * @param $n
  107. * @return
  108. */
  109. function strstrb($h, $n) {
  110. return array_shift(explode($n, $h, 2));
  111. }
  112. /**
  113. * 显示错误信息,并跳转至$pageurl,含有样式
  114. *
  115. * @param string $messages
  116. * @param string $pageurl
  117. * @param int $msc 秒数
  118. */
  119. function msg($messages, $pageurl='javascript:history.back();', $msc=5) {
  120. echo 'System Message
  121. 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 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) return $string;
  • }
  • $string = htmlspecialchars($string);
  • $string = str_replace(array('&', '"', '<', '>'), array('&', '"', ''), $string);
  • $strcut = '';
  • $n = $tn = $noc = 0;
  • while ($n $t = ord($string[$n]);
  • if ($t == 9 || $t == 10 || (32 $tn = 1;
  • $n++;
  • $noc++;
  • } elseif (194 $tn = 2;
  • $n += 2;
  • $noc += 2;
  • } elseif (224 $tn = 3;
  • $n += 3;
  • $noc += 2;
  • } elseif (240 $tn = 4;
  • $n += 4;
  • $noc += 2;
  • } elseif (248 $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
  • */
  • function striptags($value) {
  • return $value = is_array($value) ? array_map('striptags', $value) : strip_tags($value);
  • }
  • /**
  • * 检查email的合法性
  • *
  • * @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 string $title
  • * @param $attributes
  • * @return
  • */
  • function safe_mailto($email, $title = '', $attributes = '') {
  • if (is_array($email)) {
  • $tmp = $email;
  • unset($email);
  • extract($tmp);
  • }
  • $title = (string) $title;
  • if ($title == "") {
  • $title = $email;
  • }
  • for ($i = 0; $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($attributes, $i, 1);
  • }
  • }
  • }
  • $x[] = '>';
  • $temp = array();
  • for ($i = 0; $i $ordinal = ord($title[$i]);
  • if ($ordinal $x[] = "|" . $ordinal;
  • } else {
  • if (count($temp) == 0) {
  • $count = ($ordinal }
  • $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'.Input::truncate( 'ftp.\\2.\\3' ).''",
  • "'\\1'.Input::truncate( '\\2@\\3' ).''");
  • return preg_replace($patterns, $replacements, $string);
  • }
  • /**
  • * 获取客户端浏览器
  • * @return string
  • */
  • function browse_info() {
  • $browser = "";
  • $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 = "Unknown";
  • }
  • return $browseinfo;
  • }
  • /**
  • * 返回时间格式
  • * @name: prepareDate
  • * @desc: prepares a date in the proper format for specific database types
  • * given a UNIX timestamp
  • * @param: $timestamp: a UNIX timestamp
  • * @param: $fieldType: the type of field to format the date for
  • * (in MySQL, you have DATE, TIME, YEAR, and 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);
  • break;
  • case 'YEAR' :
  • $date = date('Y', $timestamp);
  • break;
  • default :
  • $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'];
  • }
  • ?>
  • 复制代码 我常用的common function库


    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

    Outils d'IA chauds

    Undresser.AI Undress

    Undresser.AI Undress

    Application basée sur l'IA pour créer des photos de nu réalistes

    AI Clothes Remover

    AI Clothes Remover

    Outil d'IA en ligne pour supprimer les vêtements des photos.

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    Clothoff.io

    Clothoff.io

    Dissolvant de vêtements AI

    AI Hentai Generator

    AI Hentai Generator

    Générez AI Hentai gratuitement.

    Article chaud

    R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
    3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Meilleurs paramètres graphiques
    3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Comment réparer l'audio si vous n'entendez personne
    3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    WWE 2K25: Comment déverrouiller tout dans Myrise
    4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

    Outils chauds

    Bloc-notes++7.3.1

    Bloc-notes++7.3.1

    Éditeur de code facile à utiliser et gratuit

    SublimeText3 version chinoise

    SublimeText3 version chinoise

    Version chinoise, très simple à utiliser

    Envoyer Studio 13.0.1

    Envoyer Studio 13.0.1

    Puissant environnement de développement intégré PHP

    Dreamweaver CS6

    Dreamweaver CS6

    Outils de développement Web visuel

    SublimeText3 version Mac

    SublimeText3 version Mac

    Logiciel d'édition de code au niveau de Dieu (SublimeText3)

    Travailler avec les données de session Flash dans Laravel Travailler avec les données de session Flash dans Laravel Mar 12, 2025 pm 05:08 PM

    Laravel simplifie la gestion des données de session temporaires à l'aide de ses méthodes de flash intuitives. Ceci est parfait pour afficher de brefs messages, alertes ou notifications dans votre application. Les données ne persistent que pour la demande ultérieure par défaut: $ demande-

    Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST Mar 14, 2025 am 11:42 AM

    L'extension PHP Client URL (CURL) est un outil puissant pour les développeurs, permettant une interaction transparente avec des serveurs distants et des API REST. En tirant parti de Libcurl, une bibliothèque de transfert de fichiers multi-protocol très respectée, PHP Curl facilite Efficient Execu

    Misque de réponse HTTP simplifié dans les tests Laravel Misque de réponse HTTP simplifié dans les tests Laravel Mar 12, 2025 pm 05:09 PM

    Laravel fournit une syntaxe de simulation de réponse HTTP concise, simplifiant les tests d'interaction HTTP. Cette approche réduit considérablement la redondance du code tout en rendant votre simulation de test plus intuitive. L'implémentation de base fournit une variété de raccourcis de type de réponse: Utiliser illuminate \ support \ faades \ http; Http :: faux ([[ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

    12 meilleurs scripts de chat PHP sur Codecanyon 12 meilleurs scripts de chat PHP sur Codecanyon Mar 13, 2025 pm 12:08 PM

    Voulez-vous fournir des solutions instantanées en temps réel aux problèmes les plus pressants de vos clients? Le chat en direct vous permet d'avoir des conversations en temps réel avec les clients et de résoudre leurs problèmes instantanément. Il vous permet de fournir un service plus rapide à votre personnalité

    Expliquez le concept de liaison statique tardive en PHP. Expliquez le concept de liaison statique tardive en PHP. Mar 21, 2025 pm 01:33 PM

    L'article traite de la liaison statique tardive (LSB) dans PHP, introduite dans PHP 5.3, permettant une résolution d'exécution de la méthode statique nécessite un héritage plus flexible. Problème main: LSB vs polymorphisme traditionnel; Applications pratiques de LSB et perfo potentiel

    Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

    JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

    Caractéristiques de sécurité du cadre: protection contre les vulnérabilités. Caractéristiques de sécurité du cadre: protection contre les vulnérabilités. Mar 28, 2025 pm 05:11 PM

    L'article traite des fonctionnalités de sécurité essentielles dans les cadres pour se protéger contre les vulnérabilités, notamment la validation des entrées, l'authentification et les mises à jour régulières.

    See all articles