經常使用的PHP代碼實例

  對於WEB開發人員來講PHP基本是標配,其餘的程序員也可能會編上幾句PHP代碼。今天給你們總結了33個實用的PHP代碼片斷,在用到時能夠直接進行復制粘貼,很是方便。也能夠用來豐富本身的代碼庫。javascript

  <?php
  
  /**
   * 時間:2020-06-11
   * 做者:阿猿啊
   * // refer to http://https://zzzjtd.com
   */
  class Helper {
  
   /**
   * 友好顯示var_dump
   */
   static public function dump($var, $echo = true, $label = null, $strict = true) {
   $label = ( $label === null ) ? '' : rtrim($label) . ' ';
   if (!$strict) {
   if (ini_get('html_errors')) {
   $output = print_r($var, true);
   $output = "<pre>" . $label . htmlspecialchars($output, ENT_QUOTES) . "</pre>";
   } else {
   $output = $label . print_r($var, true);
   }
   } else {
   ob_start();
   var_dump($var);
   $output = ob_get_clean();
   if (!extension_loaded('xdebug')) {
   $output = preg_replace("/\]\=\>\n(\s+)/m", "] => ", $output);
   $output = '<pre>' . $label . htmlspecialchars($output, ENT_QUOTES) . '</pre>';
   }
   }
   if ($echo) {
   echo $output;
   return null;
   } else
   return $output;
   }
  
   /**
   /**
   * 循環建立目錄
   */
   static public function mkdir($dir, $mode = 0777) {
   if (is_dir($dir) || @mkdir($dir, $mode))
   return true;
   if (!mk_dir(dirname($dir), $mode))
   return false;
   return @mkdir($dir, $mode);
   }
  
   /**
   * 格式化單位
   */
   static public function byteFormat($size, $dec = 2) {
   $a = array("B", "KB", "MB", "GB", "TB", "PB");
   $pos = 0;
   while ($size >= 1024) {
   $size /= 1024;
   $pos++;
   }
   return round($size, $dec) . " " . $a[$pos];
   }
  
   /**
   * 下拉框,單選按鈕 自動選擇
   *
   * @param $string 輸入字符
   * @param $param 條件
   * @param $type 類型
   * selected checked
   * @return string
   */
   static public function selected($string, $param = 1, $type = 'select') {
  
   if (is_array($param)) {
   $true = in_array($string, $param);
   } elseif ($string == $param) {
   $true = true;
   }
   if ($true)
   $return = $type == 'select' ? 'selected="selected"' : 'checked="checked"';
  
   echo $return;
   }
  
   /**
   * 得到來源類型 post get
   *
   * @return unknown
   */
   static public function method() {
   return strtoupper(isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : 'GET' );
   }
  
   /**
   * 提示信息
   */
   static public function message($action = 'success', $content = '', $redirect = 'javascript:history.back(-1);', $timeout = 4) {
  
   switch ($action) {
   case 'success':
   $titler = '操做完成';
   $class = 'message_success';
   $images = 'message_success.png';
   break;
   case 'error':
   $titler = '操做未完成';
   $class = 'message_error';
   $images = 'message_error.png';
   break;
   case 'errorBack':
   $titler = '操做未完成';
   $class = 'message_error';
   $images = 'message_error.png';
   break;
   case 'redirect':
   header("Location:$redirect");
   break;
   case 'script':
   if (empty($redirect)) {
   exit('<script language="javascript">alert("' . $content . '");window.history.back(-1)</script>');
   } else {
   exit('<script language="javascript">alert("' . $content . '");window.location=" ' . $redirect . ' "</script>');
   }
   break;
   }
  
   // 信息頭部
   $header = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <title>操做提示</title>
  <style type="text/css">
  body{font:12px/1.7 "5b8b4f53",Tahoma;}
  html,body,div,p,a,h3{margin:0;padding:0;}
  .tips_wrap{ background:#F7FBFE;border:1px solid #DEEDF6;width:780px;padding:50px;margin:50px auto 0;}
  .tips_inner{zoom:1;}
  .tips_inner:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0;}
  .tips_inner .tips_img{width:80px;float:left;}
  .tips_info{float:left;line-height:35px;width:650px}
  .tips_info h3{font-weight:bold;color:#1A90C1;font-size:16px;}
  .tips_info p{font-size:14px;color:#999;}
  .tips_info p.message_error{font-weight:bold;color:#F00;font-size:16px; line-height:22px}
  .tips_info p.message_success{font-weight:bold;color:#1a90c1;font-size:16px; line-height:22px}
  .tips_info p.return{font-size:12px}
  .tips_info .time{color:#f00; font-size:14px; font-weight:bold}
  .tips_info p a{color:#1A90C1;text-decoration:none;}
  </style>
  </head>
  
  <body>';
   // 信息底部
   $footer = '</body></html>';
  
   $body = '<script type="text/javascript">
   function delayURL(url) {
   var delay = document.getElementById("time").innerHTML;
   //alert(delay);
   if(delay > 0){
   delay--;
   document.getElementById("time").innerHTML = delay;
   } else {
   window.location.href = url;
   }
   setTimeout("delayURL('" + url + "')", 1000);
   }
   </script><div class="tips_wrap">
   <div class="tips_inner">
   <div class="tips_img">
   <img src="' . Yii::app()->baseUrl . '/static/images/' . $images . '"/>
   </div>
   <div class="tips_info">
  
   <p class=" . $class . ">' . $content . '</p>
   <p class="return">系統自動跳轉在 <span class="time" id="time">' . $timeout . ' </span> 秒後,若是不想等待,<a href="' . $redirect . '">點擊這裏跳轉</p>
   </div>
   </div>
  </div><script type="text/javascript">
   delayURL("' . $redirect . '");
   </script>';
  
   exit($header . $body . $footer);
   }
  
   /**
   * 查詢字符生成
   */
   static public function buildCondition(array $getArray, array $keys = array()) {
   if ($getArray) {
   foreach ($getArray as $key => $value) {
   if (in_array($key, $keys) && $value) {
   $arr[$key] = CHtml::encode(strip_tags($value));
   }
   }
   return $arr;
   }
   }
  
   /**
   * base64_encode
   */
   static function b64encode($string) {
   $data = base64_encode($string);
   $data = str_replace(array('+', '/', '='), array('-', '_', ''), $data);
   return $data;
   }
  
   /**
   * base64_decode
   */
   static function b64decode($string) {
   $data = str_replace(array('-', '_'), array('+', '/'), $string);
   $mod4 = strlen($data) % 4;
   if ($mod4) {
   $data .= substr('====', $mod4);
   }
   return base64_decode($data);
   }
  
   /**
   * 驗證郵箱
   */
   public static function email($str) {
   if (empty($str))
   return true;
   $chars = "/^([a-z0-9+_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,6}\$/i";
   if (strpos($str, '@') !== false && strpos($str, '.') !== false) {
   if (preg_match($chars, $str)) {
   return true;
   } else {
   return false;
   }
   } else {
   return false;
   }
   }
  
   /**
   * 驗證手機號碼
   */
   public static function mobile($str) {
   if (empty($str)) {
   return true;
   }
  
   return preg_match('#^13[d]{9}$|14^[0-9]\d{8}|^15[0-9]\d{8}$|^18[0-9]d{8}$#', $str);
   }
  
   /**
   * 驗證固定電話
   */
   public static function tel($str) {
   if (empty($str)) {
   return true;
   }
   return preg_match('/^(((d{2,3}))|(d{3}-))?((0d{2,3})|0d{2,3}-)?[1-9]d{6,7}(-d{1,4})?$/', trim($str));
   }
  
   /**
   * 驗證qq號碼
   */
   public static function qq($str) {
   if (empty($str)) {
   return true;
   }
  
   return preg_match('/^[1-9]d{4,12}$/', trim($str));
   }
  
   /**
   * 驗證郵政編碼
   */
   public static function zipCode($str) {
   if (empty($str)) {
   return true;
   }
  
   return preg_match('/^[1-9]d{5}$/', trim($str));
   }
  
   /**
   * 驗證ip
   */
   public static function ip($str) {
   if (empty($str))
   return true;
  
   if (!preg_match('#^d{1,3}.d{1,3}.d{1,3}.d{1,3}$#', $str)) {
   return false;
   }
  
   $ip_array = explode('.', $str);
  
   //真實的ip地址每一個數字不能大於255(0-255)
   return ( $ip_array[0] <= 255 && $ip_array[1] <= 255 && $ip_array[2] <= 255 && $ip_array[3] <= 255 ) ? true : false;
   }
  
   /**
   * 驗證身份證(中國)
   */
   public static function idCard($str) {
   $str = trim($str);
   if (empty($str))
   return true;
  
   if (preg_match("/^([0-9]{15}|[0-9]{17}[0-9a-z])$/i", $str))
   return true;
   else
   return false;
   }
  
   /**
   * 驗證網址
   */
   public static function url($str) {
   if (empty($str))
   return true;
  
   return preg_match('#(http|https|ftp|ftps)://([w-]+.)+[w-]+(/[w-./?%&=]*)?#i', $str) ? true : false;
   }
  
   /**
   * 根據ip獲取地理位置
   * @param $ip
   * return :ip,beginip,endip,country,area
   */
   public static function getlocation($ip = '') {
   $ip = new XIp();
   $ipArr = $ip->getlocation($ip);
   return $ipArr;
   }
  
   /**
   * 中文轉換爲拼音
   */
   public static function pinyin($str) {
   $ip = new XPinyin();
   return $ip->output($str);
   }
  
   /**
   * 拆分sql
   *
   * @param $sql
   */
   public static function splitsql($sql) {
   $sql = preg_replace("/TYPE=(InnoDB|MyISAM|MEMORY)( DEFAULT CHARSET=[^; ]+)?/", "ENGINE=\\1 DEFAULT CHARSET=" . Yii::app()->db->charset, $sql);
   $sql = str_replace("\r", "\n", $sql);
   $ret = array();
   $num = 0;
   $queriesarray = explode(";\n", trim($sql));
   unset($sql);
   foreach ($queriesarray as $query) {
   $ret[$num] = '';
   $queries = explode("\n", trim($query));
   $queries = array_filter($queries);
   foreach ($queries as $query) {
   $str1 = substr($query, 0, 1);
   if ($str1 != '#' && $str1 != '-')
   $ret[$num] .= $query;
   }
   $num++;
   }
   return ($ret);
   }
  
   /**
   * 字符截取
   *
   * @param $string
   * @param $length
   * @param $dot
   */
   public static function cutstr($string, $length, $dot = '...', $charset = 'utf-8') {
   if (strlen($string) <= $length)
   return $string;
  
   $pre = chr(1);
   $end = chr(1);
   $string = str_replace(array('&', '"', '<', '>'), array($pre . '&' . $end, $pre . '"' . $end, $pre . '<' . $end, $pre . '>' . $end), $string);
  
   $strcut = '';
   if (strtolower($charset) == 'utf-8') {
  
   $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);
   } else {
   for ($i = 0; $i < $length; $i++) {
   $strcut .= ord($string[$i]) > 127 ? $string[$i] . $string[++$i] : $string[$i];
   }
   }
  
   $strcut = str_replace(array($pre . '&' . $end, $pre . '"' . $end, $pre . '<' . $end, $pre . '>' . $end), array('&', '"', '<', '>'), $strcut);
  
   $pos = strrpos($strcut, chr(1));
   if ($pos !== false) {
   $strcut = substr($strcut, 0, $pos);
   }
   return $strcut . $dot;
   }
  
   /**
   * 描述格式化
   * @param $subject
   */
   public static function clearCutstr($subject, $length = 0, $dot = '...', $charset = 'utf-8') {
   if ($length) {
   return XUtils::cutstr(strip_tags(str_replace(array("rn"), '', $subject)), $length, $dot, $charset);
   } else {
   return strip_tags(str_replace(array("rn"), '', $subject));
   }
   }
  
   /**
   * 檢測是否爲英文或英文數字的組合
   *
   * @return unknown
   */
   public static function isEnglist($param) {
   if (!eregi("^[A-Z0-9]{1,26}$", $param)) {
   return false;
   } else {
   return true;
   }
   }
  
   /**
   * 將自動判斷網址是否加http://
   *
   * @param $http
   * @return string
   */
   public static function convertHttp($url) {
   if ($url == 'http://' || $url == '')
   return '';
  
   if (substr($url, 0, 7) != 'http://' && substr($url, 0, 8) != 'https://')
   $str = 'http://' . $url;
   else
   $str = $url;
   return $str;
   }
  
   /*
   標題樣式格式化
   */
  
   public static function titleStyle($style) {
   $text = '';
   if ($style['bold'] == 'Y') {
   $text .='font-weight:bold;';
   $serialize['bold'] = 'Y';
   }
  
   if ($style['underline'] == 'Y') {
   $text .='text-decoration:underline;';
   $serialize['underline'] = 'Y';
   }
  
   if (!empty($style['color'])) {
   $text .='color:#' . $style['color'] . ';';
   $serialize['color'] = $style['color'];
   }
  
   return array('text' => $text, 'serialize' => empty($serialize) ? '' : serialize($serialize));
   }
  
   // 自動轉換字符集 支持數組轉換
   static public function autoCharset($string, $from = 'gbk', $to = 'utf-8') {
   $from = strtoupper($from) == 'UTF8' ? 'utf-8' : $from;
   $to = strtoupper($to) == 'UTF8' ? 'utf-8' : $to;
   if (strtoupper($from) === strtoupper($to) || empty($string) || (is_scalar($string) && !is_string($string))) {
   //若是編碼相同或者非字符串標量則不轉換
   return $string;
   }
   if (is_string($string)) {
   if (function_exists('mb_convert_encoding')) {
   return mb_convert_encoding($string, $to, $from);
   } elseif (function_exists('iconv')) {
   return iconv($from, $to, $string);
   } else {
   return $string;
   }
   } elseif (is_array($string)) {
   foreach ($string as $key => $val) {
   $_key = self::autoCharset($key, $from, $to);
   $string[$_key] = self::autoCharset($val, $from, $to);
   if ($key != $_key)
   unset($string[$key]);
   }
   return $string;
   } else {
   return $string;
   }
   }
  
   /*
   標題樣式恢復
   */
  
   public static function titleStyleRestore($serialize, $scope = 'bold') {
   $unserialize = unserialize($serialize);
   if ($unserialize['bold'] == 'Y' && $scope == 'bold')
   return 'Y';
   if ($unserialize['underline'] == 'Y' && $scope == 'underline')
   return 'Y';
   if ($unserialize['color'] && $scope == 'color')
   return $unserialize['color'];
   }
  
   /**
   * 列出文件夾列表
   *
   * @param $dirname
   * @return unknown
   */
   public static function getDir($dirname) {
   $files = array();
   if (is_dir($dirname))
{
   $fileHander = opendir($dirname);
   while (( $file = readdir($fileHander) ) !== false)
=
{
   $filepath = $dirname . '/' . $file;
   if (strcmp($file, '.') == 0 || strcmp($file, '..') == 0 || is_file($filepath)) {
   continue;
   }
   $files[] = self::autoCharset($file, 'GBK', 'UTF8');
   }
   closedir($fileHander);
   } else {
   $files = false;
   }
   return $files;
   }
  
   /**
   * 列出文件列表
   *
   * @param $dirname
   * @return unknown
   */
   public static function getFile($dirname) {
   $files = array();
   if (is_dir($dirname))
{
   $fileHander = opendir($dirname);
   while (( $file = readdir($fileHander) ) !== false)
{
   $filepath = $dirname . '/' . $file;
  
   if (strcmp($file, '.')
== 0 || strcmp($file, '..') == 0 || is_dir($filepath)) {
   continue;
   }
   $files[] = self::autoCharset($file, 'GBK', 'UTF8');
   ;
   }
   closedir($fileHander);
   } else {
   $files = false;
   }
   return $files;
   }
  
   /**
   * [格式化圖片列表數據]
   *
   * @return [type] [description]
   */
   public static function imageListSerialize($data) {
  
   foreach ((array) $data['file'] as $key => $row) {
   if ($row) {
   $var[$key]['fileId'] = $data['fileId'][$key];
   $var[$key]['file'] = $row;
   }
   }
   return array('data' => $var, 'dataSerialize' => empty($var) ? '' : serialize($var));
   }
  
   /**
   * 反引用一個引用字符串
   * @param $string
   * @return string
   */
   static function stripslashes($string) {
   if (is_array($string)) {
   foreach ($string as $key => $val) {
   $string[$key] = self::stripslashes($val);
   }
   } else {
   $string = stripslashes($string);
   }
   return $string;
   }
  
   /**
   * 引用字符串
   * @param $string
   * @param $force
   * @return string
   */
   static function addslashes($string, $force = 1) {
   if (is_array($string)) {
   foreach ($string as $key => $val) {
   $string[$key] = self::addslashes($val, $force);
   }
   } else {
   $string = addslashes($string);
   }
   return $string;
   }
  
   /**
   * 格式化內容
   */
   static function formatHtml($content, $options = '') {
   $purifier = new CHtmlPurifier();
   if ($options != false)
   $purifier->options = $options;
   return $purifier->purify($content);
   }
  
  }
  
  ?>php

相關文章
相關標籤/搜索