記事のソース: jquery チュートリアル?-?http://www.jq-school.com/Show.aspx?id=328
?
以前に共有済み
1. PHP 共通関数コードスニペット (1~5)
2. PHP 共通関数コード スニペット (6~10)
3. PHP 共通関数コードスニペット (11~15)
今日は 4 番目の記事です。主に文字列をインターセプトし、1 年の週数を計算し、週の開始時刻と終了時刻 (オプションでタイムスタンプまたは日付を返す) を返し、マルチの再帰的作成を実装します。 -レベルのディレクトリ、再帰的なディレクトリの削除、QQ ステータスの検出、およびその他の機能、つまり 16 番目から 20 番目までの 5 つの実用的なコード スニペットが、jquery メンバーに役立つことを願っています。学校グループと大多数の読者PHP 開発効率を向上させるために開発を行うネチズン、以下は 4 番目の記事です。
16. PHP で文字列をインターセプトする一般的な方法
/** * 截取字符串 * params $string 要截取的字符串 * params $length: 保留长度(字符数) * params $dot: 多余部分显示 **/ function _cutstr($string, $length, $dot = ' ...') { if(strlen($string) <= $length) { return $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; }
17. PHP は、1 年の週数の計算を実装し、週の開始時刻と終了時刻を返します (オプションで返されるタイムスタンプまたは日付)
function getWeekStartAndEnd ($year,$week=1) { header("Content-type:text/html;charset=utf-8"); date_default_timezone_set("Asia/Shanghai"); $year = (int)$year; $week = (int)$week; //按给定的年份计算本年周总数 $date = new DateTime; $date->setISODate($year, 53); $weeks = max($date->format("W"),52); //如果给定的周数大于周总数或小于等于0 if($week>$weeks || $week<=0){ return false; } //如果周数小于10 if($week<10){ $week = '0'.$week; } //当周起止时间戳 $timestamp['start'] = strtotime($year.'W'.$week); $timestamp['end'] = strtotime('+1 week -1 day',$timestamp['start']); //当周起止日期 $timeymd['start'] = date("Y-m-d",$timestamp['start']); $timeymd['end'] = date("Y-m-d",$timestamp['end']); //返回起始时间戳 return $timestamp; //返回日期形式 //return $timeymd; }
18. PHP で複数レベルのディレクトリを再帰的に作成する一般的な方法
/** * +-------------------------------------------------------------------- * Description 递归创建目录 +-------------------------------------------------------------------- * @param string $dir 需要创新的目录 +-------------------------------------------------------------------- * @return 若目录存在,或创建成功则返回为TRUE +-------------------------------------------------------------------- * @author gongwen +-------------------------------------------------------------------- */ function mkdirs($dir, $mode = 0777){ if (is_dir($dir) || mkdir($dir, $mode)) return TRUE; if (!mkdirs(dirname($dir), $mode)) return FALSE; return mkdir($dir, $mode); }
19. PHP でディレクトリを再帰的に削除する一般的な方法
/** * +-------------------------------------------------------------------- * Description 递归删除目录 +-------------------------------------------------------------------- * @param string $dir 需要删除的目录 +-------------------------------------------------------------------- * @return 若目录不存在或册除成功则返回为TRUE +-------------------------------------------------------------------- * @author gongwen +-------------------------------------------------------------------- */ function rmdirs($dir){ if (!is_dir($dir) || rmdir($dir)) return TRUE; if($dir_handle=opendir($dir)){ while($filename=readdir($dir_handle)){ if($filename!='.' && $filename!='..'){ $subFile=$dir.'/'.$filename; } is_dir($subFile)?rmdirs($subFile):unlink($subFile); } closedir($dir_handle); return rmdir($dir); } }
20. PHP で QQ ステータスを検出する一般的な方法
function qq_status(){ if (empty($qq))$qq = 429590191; $url = 'http://wpa.qq.com/pa?p=2:'.$qq.':52'; $Headers = get_headers($url, 1); if ($Headers['Location']=='http://pub.idqqimg.com/qconn/wpa/button/button_121.gif'){ $Status = 1; //QQ在线 }elseif ($Headers['Location']=='http://pub.idqqimg.com/qconn/wpa/button/button_120.gif'){ $Status = 2; //QQ离线 }else { $Status = 0; //未知 } Return $Status; } //测试数据 $qqwp = qq_status('429590191'); //测试QQ是否在线,返回1=在线,返回2=离线,返回0=错误 if ($qqwp==1){ echo 'QQ在线'; }elseif ($qqwp==2){ echo 'QQ离线'; }else { echo '出错了'; }
?