您好,登錄后才能下訂單哦!
1、PHP字符串截取,支持gb2312和UTF-8編碼。
看了網上很多這樣的函數但用起來效果很不理想,所以自己寫了一個,初步測試gb2312和UTF8都支持的。
<?php /** +---------------------------------------------------------- * 功能:字符串截取指定長度 * leo.li hengqin2008@qq.com +---------------------------------------------------------- * @param string $string 待截取的字符串 * @param int $len 截取的長度 * @param int $start 從第幾個字符開始截取 * @param boolean $suffix 是否在截取后的字符串后跟上省略號 +---------------------------------------------------------- * @return string 返回截取后的字符串 +---------------------------------------------------------- */ function cutStr($string, $len=100, $start=0, $suffix=1) { $strlen = mb_strlen($string); while ($strlen) { $array[] = mb_substr($string, 0, 1, "utf8"); $string = mb_substr($string, 1, $strlen, "utf8"); $strlen = mb_strlen($string); } $end = $len + $start; $str = ''; for ($i = $start; $i < $end; $i++) { $str.=$array[$i]; } return $suffix == 1 ? $str . "..." : $str; } ?>
2、PHP檢測一個目錄是否存在,不存在創建它,存在返回true。
函數一:代碼簡潔明了
<?php /** +---------------------------------------------------------- * 功能:檢測一個目錄是否存在,不存在則創建它 * leo.li hengqin2008@qq.com +---------------------------------------------------------- * @param string $path 待檢測的目錄 +---------------------------------------------------------- * @return boolean +---------------------------------------------------------- */ function makeDir($path) { return is_dir($path) or (makeDir(dirname($path)) and @mkdir($path, 0777)); } // $myDir = makeDir("./html/phpahz/tk/");//這里帶點和不帶點不一樣 ?>
函數二:代碼相對較多。
<?php /** * 檢查目標文件夾是否存在,如果不存在則自動創建該目錄 * * @access public * @param string folder 目錄路徑。不能使用相對于網站根目錄的URL * * @return bool */ function make_dir($folder) { $reval = false; if (!file_exists($folder)) { /* 如果目錄不存在則嘗試創建該目錄 */ @umask(0); /* 將目錄路徑拆分成數組 */ preg_match_all('/([^\/]*)\/?/i', $folder, $atmp); /* 如果第一個字符為/則當作物理路徑處理 */ $base = ($atmp[0][0] == '/') ? '/' : ''; /* 遍歷包含路徑信息的數組 */ foreach ($atmp[1] AS $val) { if ('' != $val) { $base .= $val; if ('..' == $val || '.' == $val) { /* 如果目錄為.或者..則直接補/繼續下一個循環 */ $base .= '/'; continue; } } else { continue; } $base .= '/'; if (!file_exists($base)) { /* 嘗試創建目錄,如果創建失敗則繼續循環 */ if (@mkdir(rtrim($base, '/'), 0777)) { @chmod($base, 0777); $reval = true; } } } } else { /* 路徑已經存在。返回該路徑是不是一個目錄 */ $reval = is_dir($folder); } clearstatcache(); return $reval; } // $myDir = make_dir("./html/phpahz/tk/"); //這里帶點和不帶點不一樣 ?>
3、將中英文字符串轉換成數組
<?php /** +---------------------------------------------------------- * 功能:將中英文字符串轉換成數組 * leo.li hengqin2008@qq.com +---------------------------------------------------------- * @param string $path 需要轉換成數組的字符串 +---------------------------------------------------------- * @return array +---------------------------------------------------------- */ function get_mb_substr($string) { $strlen = mb_strlen($string); while ($strlen) { $array[] = mb_substr($string, 0, 1, "utf8"); $string = mb_substr($string, 1, $strlen, "utf8"); $strlen = mb_strlen($string); } return $array; } ?>
4、計算兩個日期相差 年 月 日
<?php /** +---------------------------------------------------------- * 功能:計算兩個日期相差 年 月 日 * leo.li hengqin2008@qq.com +---------------------------------------------------------- * @param date $date1 起始日期 * @param date $date2 截止日期日期 +---------------------------------------------------------- * @return array +---------------------------------------------------------- */ function DiffDate($date1, $date2) { if (strtotime($date1) > strtotime($date2)) { $ymd = $date2; $date2 = $date1; $date1 = $ymd; } list($y1, $m1, $d1) = explode('-', $date1); list($y2, $m2, $d2) = explode('-', $date2); $y = $m = $d = $_m = 0; $math = ($y2 - $y1) * 12 + $m2 - $m1; $y = round($math / 12); $m = intval($math % 12); $d = (mktime(0, 0, 0, $m2, $d2, $y2) - mktime(0, 0, 0, $m2, $d1, $y2)) / 86400; if ($d < 0) { $m -= 1; $d += date('j', mktime(0, 0, 0, $m2, 0, $y2)); } $m < 0 && $y -= 1; return array($y, $m, $d); } ?>
5、檢測字符串是否是utf8,不是則轉碼為utf8
<?php /** +---------------------------------------------------------- * 功能:檢測字符串是否是utf8,不是則轉碼為utf8 * leo.li hengqin2008@qq.com +---------------------------------------------------------- * @param string $string 起始日期 +---------------------------------------------------------- * @return string 返回UTF8的字符串 +---------------------------------------------------------- */ function checkUtf8($string) { if ($string == '') return; $check = preg_match('%^(?: [\x09\x0A\x0D\x20-\x7E] # ASCII | [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte | \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte | \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates | \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3 | [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15 | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16 )*$%xs', $string); return $check == 1 ? $string : iconv('gb2312', 'utf-8', $string); } ?>
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。