函数
♪(・ω・)ノ
整理了一下最近常用到的函数。
字符串相关
br2nl
JS 版
function br2nl(txt){
var re=/(<br\/>|<br>|<BR>|<BR\/>)/g;
var s=txt.replace(re,"\n\n");
return s;
}
PHP 版
function br2nl($text) {
return preg_replace('/<br\\s*?\/??>/i', '', $text);
}
msubstr
function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true) {
if(function_exists("mb_substr"))
$slice = mb_substr($str, $start, $length, $charset);
elseif(function_exists('iconv_substr')) {
$slice = iconv_substr($str,$start,$length,$charset);
if(false === $slice) {
$slice = '';
}
}else{
$re['utf-8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
$re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
$re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
$re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
preg_match_all($re[$charset], $str, $match);
$slice = join("",array_slice($match[0], $start, $length));
}
if(utf8_strlen($str) < $length) $suffix = false;
return $suffix ? $slice.'...' : $slice;
}
utf8_strlen
function utf8_strlen($string = null) {
preg_match_all("/./us", $string, $match);
return count($match[0]);
}
文件与目录相关
递归删除目录
PHP
function deldir($dir) {
$dh = opendir($dir);
while ($file = readdir($dh)) {
if ($file != "." && $file != "..") {
$fullpath = $dir . "/" . $file;
if (!is_dir($fullpath)) {
@unlink($fullpath);
} else {
@deldir($fullpath);
}
}
}
closedir($dh);
}
getDateTime
function getDateTime($model){
$user = M('User')->where('role_id = %d',session('role_id'))->field('user_id,last_read_time')->find();
if($user['last_read_time']){
$last_read_time = json_decode($user['last_read_time'],true);
}
$last_read_time[$model] = time();
$last_read_time = json_encode($last_read_time);
M('User')->where('user_id = %d',$user['user_id'])->setField('last_read_time',$last_read_time);
return true;
}
正则、验证相关
isMobile
function isMobile(){
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$mobile_agents = Array("240x320","acer","acoon","acs-","abacho","ahong","airness","alcatel","amoi","android","anywhereyougo.com","applewebkit/525","applewebkit/532","asus","audio","au-mic","avantogo","becker","benq","bilbo","bird","blackberry","blazer","bleu","cdm-","compal","coolpad","danger","dbtel","dopod","elaine","eric","etouch","fly ","fly_","fly-","go.web","goodaccess","gradiente","grundig","haier","hedy","hitachi","htc","huawei","hutchison","inno","ipad","ipaq","ipod","jbrowser","kddi","kgt","kwc","lenovo","lg ","lg2","lg3","lg4","lg5","lg7","lg8","lg9","lg-","lge-","lge9","longcos","maemo","mercator","meridian","micromax","midp","mini","mitsu","mmm","mmp","mobi","mot-","moto","nec-","netfront","newgen","nexian","nf-browser","nintendo","nitro","nokia","nook","novarra","obigo","palm","panasonic","pantech","philips","phone","pg-","playstation","pocket","pt-","qc-","qtek","rover","sagem","sama","samu","sanyo","samsung","sch-","scooter","sec-","sendo","sgh-","sharp","siemens","sie-","softbank","sony","spice","sprint","spv","symbian","tablet","talkabout","tcl-","teleca","telit","tianyu","tim-","toshiba","tsm","up.browser","utec","utstar","verykool","virgin","vk-","voda","voxtel","vx","wap","wellco","wig browser","wii","windows ce","wireless","xda","xde","zte");
$is_mobile = false;
foreach ($mobile_agents as $device) {
if (stristr($user_agent, $device)) {
$is_mobile = true;
break;
}
}
return $is_mobile;
}
is_utf8
function is_utf8($liehuo_net){
if (preg_match("/^([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}/",$liehuo_net) == true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}$/",$liehuo_net) == true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){2,}/",$liehuo_net) == true)
{
return true;
}
else
{
return false;
}
}
判断目录是否可写
//判断目录是否可写
function check_dir_iswritable($dir_path){
$dir_path=str_replace('\\','/',$dir_path);
$is_writale=1;
if(!is_dir($dir_path)){
$is_writale=0;
return $is_writale;
}else{
$file_hd=@fopen($dir_path.'/test.txt','w');
if(!$file_hd){
@fclose($file_hd);
@unlink($dir_path.'/test.txt');
$is_writale=0;
return $is_writale;
}
@fclose($file_hd);
@unlink($dir_path.'/test.txt');
$dir_hd=opendir($dir_path);
while(false!==($file=readdir($dir_hd))){
if ($file != "." && $file != "..") {
if(is_file($dir_path.'/'.$file)){
//文件不可写,直接返回
if(!is_writable($dir_path.'/'.$file)){
return 0;
}
}else{
$file_hd2=@fopen($dir_path.'/'.$file.'/test.txt','w');
if(!$file_hd2){
@fclose($file_hd2);
@unlink($dir_path.'/'.$file.'/test.txt');
$is_writale=0;
return $is_writale;
}
@unlink($dir_path.'/test.txt');
//递归
$is_writale=check_dir_iswritable($dir_path.'/'.$file);
}
}
}
}
return $is_writale;
}
isAjaxRequest
function isAjaxRequest() {
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) ) {
if('xmlhttprequest' == strtolower($_SERVER['HTTP_X_REQUESTED_WITH'])){
return true;
}
}
if(!empty($_POST['ajax']) || !empty($_GET['ajax'])){
// 判断Ajax方式提交
return true;
}
return false;
}
本文由 root 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Feb 17, 2018 at 04:30 pm
来学习一下
可以互换友链吗?
如果可以的话, 请加QQ: 897569984, 我的网站: http://www.codedata.cn
https://blog.rooot.me/links.html 已添加。
好的, 我也添加, http://www.codedata.cn/ 见首页 右侧