自分のプロジェクトでよく使用される PHP ツールの完全なリストを共有する、PHP ツールの完全なリストを共有する_PHP チュートリアル
リリース: 2016-07-12 08:54:03
自分のプロジェクトでよく使用される PHP ツールの完全なリストを共有し、PHP ツールの完全なリストを共有します
Php コード
-
-
- クラスヘルパー
- {
-
- パブリック 静的 関数 getOS(){
- if(PATH_SEPARATOR == ':'){
-
}
} -
/**
-
* 現在のマイクロ秒数
- * @戻り番号
-
- */
- public function microtime_float() {
-
リスト (- $usec, explode (
" ", microtime ());
️戻る
- }
-
- public static function truncate_utf8_string($string, $length, $etc = '...') {
- $結果 = '';
- $string = html_entity_decode ( trim ( strip_tags ( $string ) ), ENT_QUOTES, 'UTF-8' );
- $strlen = strlen ( $string );
- for($i = 0; (($i $strlen) && ($length > 0)); $i ++) {
- if ($number = strpos ( str_pad ( decbin ( ord ( substr ( $string, $i, 1 ) ) ), 8, '0', STR_PAD_LEFT ), '0') ) {
- if ($length
- 休憩。
- }
- $result .= substr ( $string, $i, $number );
- $length -= 1.0;
- $i += $number - 1;
- } else {
- $result .= substr ( $string, $i, 1 );
- $length -= 0.5;
- }
- }
- $result = htmlspecialchars ( $result, ENT_QUOTES, 'UTF-8');
- if ($i $strlen) {
- $結果 .= $など;
- }
- return $result;
- }
-
- public static function scanfDir($dir='', $all = false, &$ret = array()){
- if ( false !== ($handle = opendir ( $dir ))) {
- while ( false !== ($file = readdir ( $handle )) ) {
- if (!in_array($file, array('.', '..', '.git', '.gitignore', '.svn', '.htaccess', '.buildpath','.project'))) {
- $cur_path = $dir 。 '/' 。 $ファイル;
- if (is_dir ( $cur_path )) {
- $ret['dirs'][] =$cur_path;
- $all && self::scanfDir( $cur_path, $all, $ret);
- } else {
- $ret ['files'] [] = $cur_path;
- }
- }
- }
- closedir ( $handle );
- }
- 戻る $右;
- }
-
- public static function sendMail($toemail = '', $subject = '', $message = '') {
$ Mailer = yii :: Createcomponent
️ / / 電子メール設定
-
$メーラー>ホスト
️ $Porter-> = Yii::app()->params['emailPort'] //メールポート
-
$mailer->Timeout = Yii::app()->params[- 'emailTimeout'];//メール送信タイムアウト
- $mailer->ContentType = 'text/html';
️ $mailer->SMTPAuth = true;
$ Mailer-& gt; yii :: app ()-& gt; params [-
]
$ Mailer-& GT; パスワード = yii :: app ()-& gt;
️ $mailer->
'emailformname '];
️ $mailer->AddReplyTo
-
- $modelMail->send_status = '待機中';
- $modelMail->save ();
-
- $mailer->AddAddress ( $toemail );
- $mailer->件名 = $件名;
- $メーラー->本文 = $メッセージ;
- if ($mailer->Send () === true) {
- $modelMail->times = $modelMail->times + 1;
- $modelMail->send_status = 'success';
- $modelMail->save ();
- true を返します。
- } else {
- $error = $mailer->ErrorInfo;
- $modelMail->times = $modelMail->times + 1;
- $modelMail->send_status = '失敗';
- $modelMail->error = $error;
- $modelMail->save ();
- false を返します。
- }
- }
-
- public static function utf8_gb2312($str, $default = 'gb2312')
-
️
- if (emptyempty($str)) $defaultを返す
-
"gb2312" => "/^([xA1-xF7][xA0-xFE])+$/", //gb2312 かどうかを判断する正規
️繁体字中国語文字は既に含まれています
- );
️
️
}
- if (!preg_match($preg[$default],
-
} // $option に変換できません。つまり、元のオプションは $default ではありません
-
- }
}
-
- public static functionsafeEncoding($string,$outEncoding = 'UTF-8')
-
- for($i = 0; $i strlen ($string);
$i ++) { -
️
字 个 // 最初のバイト判定合格
️
字 个 // 2バイト目の判定は通る
~
️ _
~
-
️
}
️) & 192) == 192) {
字 个 // 最初のバイト判定合格 -
️
字 个 // 2バイト目の判定は通る
-
~
}
}
-
️誰誰誰誰誰誰誰誰誰の、、歌ってる、歌ってる、」
}
-
- * 2次元配列内のキー名のすべての値を返します
* @param 入力 $array -
* @param string $key -
- * @return 配列
-
-
*/
public static function array_key_values($array =array(), $key=
'')
-
- $ret = array();
$ret[$k] = $v[$key];
}
️ _
- }
-
- public static function is_writeable($file) {
- if (is_dir($file)){
- $dir = $file;
- if ($fp = @fopen("$dir/test.txt", 'w')) {
- @fclose($fp);
- @unlink("$dir/test.txt");
- $writeable = 1;
- } else {
- $writeable = 0;
- }
- } else {
- if ($fp = @fopen($file, 'a+')) {
- @fclose($fp);
- $writeable = 1;
- } else {
- $writeable = 0;
- }
- }
- return $書き込み可能;
- }
-
- 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];
- }
-
- static public function selected( $string, $param = 1, $type = 'select' ) {
- $true = false;
- if ( is_array( $param ) ) {
- $true = in_array( $string, $param );
- }elseif ( $string == $param ) {
- $true = true;
- }
- $return='';
- if ( $true )
- $return = $type == '選択'? 'selected="選択済み"' : 'checked="チェック済み"';
- エコー $return;
- }
-
* @param string $filename 保存するファイル名(拡張子は除く) * @returnmixed ダウンロードが成功すると画像情報を記述した配列が返されます ダウンロードが失敗した場合は false が返されます */ -
static - public function downloadImage($url, $filepath, $filename) {
//サーバーから返されたヘッダー情報-
後の // 画像のサフィックス -
️
$ch =curl_init($url);
- //curl_exec によって返される値に HTTP ヘッダーを含めるように設定します
curl_setopt(- $ch, CURLOPT_HEADER, 1);
//curl_exec によって返される値を、HTTP コンテンツを含めるように設定します
curl_setopt(- $ch, CURLOPT_RETURNTRANSFER, 1);
//クロールジャンプ後のページを設置(http 301, 302)
-
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
//HTTP リダイレクトの最大数を設定します
-
curl_setopt($ch, CURLOPT_MAXREDIRS, 3);
//サーバーから返されるデータ (http ヘッダー情報とコンテンツを含む)
-
$html =curl_exec(
$ch); -
この取 // このキャプチャされた情報の関連情報を取得します
-
curl_close(
$ch);
- if ($html !== false) {
-
//応答のヘッダーと本文を分離します。サーバーは 302 個のジャンプを使用する可能性があるため、ここでは文字列を 2 + ジャンプ数の部分文字列に分割する必要があります
-
️ ;️ // 最後から 2 番目の段落はサーバーの最後の応答の http ヘッダーです
-
最初の数 // カウントダウンの最初の段落はサーバーの最後の応答コンテンツです
-
️
最後に取得 // Responseのヘッダー情報を取得します
preg_match_all('/([a-z0-9-_]+):s*([^rn]+)rn/i', $header, $matches);
️ 1])) {
S re $ レスポンスヘッダー [- $ は [1] [ $ は [2] [
$ i] に一致します -
;
️
}
画像取得 // 画像のサフィックス名を取得します
-
if (0 '{(?:[^/\\]+).(jpg|jpeg|gif|png|bmp)$}i', $url,
$matches)) {
-
~
$ext = $matches[1];
if (
array_key_exists(- 'Content-Type', $responseHeaders)) {
~i'、$responseHeaders['Content-Type']、$extmatches)) {
~
️
-
}
文存 // ファイルを保存
//ディレクトリが存在しない場合は、最初にディレクトリを作成する必要があります
️
-
mkdir(- $filepath, 0777, true);
Le i $ ファイルパス. = - '/'
$ ファイル名.- ". $ Ext";
$local_file =
fopen(- $filepath, 'w');
️
(Fclose (l $ local_file);
~
️ $size。 info[1], '元のファイル名' => $元のファイル名, 'ファイル名' =>
パス情報(- $ファイルパス, );
️
- }
}
}
-
* @param string $ip クエリ対象の IP * @param $arrIP 禁止された IP * @return ブール値 */ -
public - static function ipAccess($ip='0.0.0.0', $arrIP = array()){
$access = true; -
$ip && - $arr_cur_ip = explode('.', $ip);
foreach((- 配列)$arrIP as $key=> $value){
if(- $value == '*.*.*.*'){
$access = false; - // すべて禁止
休憩。 -
}
-
$tmp_arr = - explode('.', $value);
if((- $arr_cur_ip[0] == $tmp_arr[0]) && ($arr_cur_ip[1] == $tmp_arr[1])) {
//前二段同じ -
if((- $arr_cur_ip[2] == $tmp_arr[2]) || ($tmp_arr[2] == '*')){
// 第三段は* または者同じ -
if((- $arr_cur_ip[3] == $tmp_arr[3]) || ($tmp_arr[3] == '*')){
//第四段は* または同じ -
$access = false; - //在禁止ip列,则禁止访问
休憩。 -
}
- }
- }
- }
- 。
}
/**
-
- * @param string $string 元のテキストまたは暗号文
- * @param string $operation 操作 (ENCODE | DECODE)、デフォルトは DECODE です
- * @param string $key
- * @param int $expiry 暗号文の有効期間、暗号化されたときに有効、単位は秒、0 は永続的な有効性を意味します
- * @return string 加工された原文、またはbase64_encodeで加工された暗号文
- *
- * @example
- *
- * $a = 認証コード('abc', 'ENCODE', 'key');
* * $b = authcode($a, 'DECODE', 'key') // $b(abc)
-
*
-
* $a = 認証コード('abc', 'ENCODE', 'key', 3600);
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31