自分のプロジェクトでよく使用される PHP ツールの完全なリストを共有する、PHP ツールの完全なリストを共有する_PHP チュートリアル
自分のプロジェクトでよく使用される PHP ツールの完全なリストを共有し、PHP ツールの完全なリストを共有します
Php コード
- /**
- * アシスタントクラス
- * @著者 www.shouce.ren
- *
- */
- クラスヘルパー
- {
- /**
- * 現在のサーバーシステムを決定します
- * @return 文字列
- */
- パブリック 静的 関数 getOS(){
- if(PATH_SEPARATOR == ':'){
- } }
- /**
- * 現在のマイクロ秒数
- * @戻り番号
- */
- public static function microtime_float() {
- リスト (
- $usec, $sec) = explode ( " ", microtime ()); ️戻る
- }
- /**
- * 文字列をUTF-8形式で切り取ります(漢字1文字または文字が1バイトを占めます)
- *
- * @著者 zhao jinhan
- * @バージョンv1.0.0
- *
- */
- 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;
- }
- /**
- * フォルダーを横断する
- * @param string $dir
- * @param boolean $all true は再帰走査を意味します
- * @return 配列
- */
- 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 );
- }
- 戻る $右;
- }
- /**
- * メールで送信
- * @param string $toemail
- * @param string $subject
- * @param string $message
- * @return ブール値
- */
- 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';//HTML形式を設定します ️ $mailer->SMTPAuth = true; $ Mailer-& gt; yii :: app ()-& gt; params [
- ] $ Mailer-& GT; パスワード = yii :: app ()-& gt; ️ $mailer-> $メーラー - > $ Mailer-& GT; fromName = yii :: app ()-& gt; Params ['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 を返します。
- }
- }
- /**
- * 文字列が utf-8 か gb2312 かを決定します
- * @param 不明 $str
- * @param string $default
- * @return 文字列
- */
- public static function utf8_gb2312($str, $default = 'gb2312')
- ️
- if (emptyempty($str)) $defaultを返す
- "gb2312" => "/^([xA1-xF7][xA0-xFE])+$/", //gb2312 かどうかを判断する正規 ️繁体字中国語文字は既に含まれています
- ); ️ ️ }
- if (!preg_match($preg[$default], $str)) {
- } ️ // $option に変換できません。つまり、元のオプションは $default ではありません
- } }
- /**
- * UTF-8とgb2312の自動変換
- * @param 不明な $string
- * @param string $outEncoding
- * @return 不明|文字列
- */
- public static functionsafeEncoding($string,$outEncoding = 'UTF-8')
- for($i = 0; $i strlen ($string);
$i ++) {- ️ 字 个 // 最初のバイト判定合格 ️ 字 个 // 2バイト目の判定は通る
~ ️ _ ~- ️ } ️) & 192) == 192) {
字 个 // 最初のバイト判定合格- ️ 字 个 // 2バイト目の判定は通る
- ~ } }
- ️誰誰誰誰誰誰誰誰誰の、、歌ってる、歌ってる、」 }
- /**
- * 2次元配列内のキー名のすべての値を返します
* @param 入力 $array- * @return 配列
- */ public static function array_key_values($array =array(), $key=
'')- $ret = array(); $ret[$k] = $v[$key]; }
️ _- }
- /**
- * ファイル/ディレクトリが書き込み可能かどうかを判断します (システム独自の is_writeable 関数を置き換えます)
- * @param string $file ファイル/ディレクトリ
- * @return ブール値
- */
- 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];
- }
- /**
- * ドロップダウンボックス、ラジオボタン自動選択
- *
- * @param $string 入力文字
- * @param $param 条件
- * @param $type タイプ
- * 選択済みチェック済み
- * @return 文字列
- */
- 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 $url 画像の絶対 URL
- * @param string $filepath ファイルのフルパス (/www/images/test など) この関数は、画像の URL と http ヘッダー情報に基づいて画像のサフィックスを自動的に決定します。
* @param string $filename 保存するファイル名(拡張子は除く)- public function downloadImage($url, $filepath, $filename) {
//サーバーから返されたヘッダー情報- ️ ponseヘッダー
後の // 画像のサフィックス- ️ $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] [ $ i] に一致します] = $ は [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)) {
~ ️- } 文存 // ファイルを保存
//ディレクトリが存在しない場合は、最初にディレクトリを作成する必要があります ️- $filepath, 0777, true);
Le i $ ファイルパス. =- '/'
$ ファイル名.- ". $ Ext"; $local_file =
fopen(- $filepath, 'w'); ️ (Fclose (l $ local_file); ~ ️ $size。 info[1], '元のファイル名' => $元のファイル名, 'ファイル名' =>
パス情報(- $ファイルパス, ); ️
- } } }
- /**
- static function ipAccess($ip='0.0.0.0', $arrIP = array()){
$access = true;- $arr_cur_ip = explode('.', $ip);
foreach((- 配列)$arrIP as $key=> $value){
if(- $value == '*.*.*.*'){
$access = false;- // すべて禁止
休憩。- }
- explode('.', $value);
if((- $arr_cur_ip[0] == $tmp_arr[0]) && ($arr_cur_ip[1] == $tmp_arr[1])) {
//前二段同じ- $arr_cur_ip[2] == $tmp_arr[2]) || ($tmp_arr[2] == '*')){
// 第三段は* または者同じ- $arr_cur_ip[3] == $tmp_arr[3]) || ($tmp_arr[3] == '*')){
//第四段は* または同じ- //在禁止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);

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。
