PHP の一般的な関数と関数コードをいくつか記録します。お見逃しなく。
PHP の一部の一般的な関数 usleep() 関数は、コードの実行を数マイクロ秒遅延させます。 unpack() 関数はバイナリ文字列からデータを解凍します。 uniqid() 関数は、マイクロ秒単位の現在時刻に基づいて一意の ID を生成します。 time_sleep_until() 関数は、指定された時間までコードの実行を遅らせます。 time_nanosleep() 関数は、コードの実行を数秒およびナノ秒遅延させます。 sleep() 関数はコードの実行を数秒遅らせます。 show_source() 関数は、ファイルの構文強調表示を実行します。 strip_whitespace() 関数は、PHP コメントと空白文字が削除されたソース コード ファイルを返します。 pack() 関数は、データをバイナリ文字列にロードします。 ignore_user_abort() 関数は、クライアントからの切断によってスクリプトの実行を終了するかどうかを設定します。 highlight_string() 関数は、文字列の構文の強調表示を実行します。 highlight_file() 関数は、ファイルの構文の強調表示を実行します。 get_browser() 関数は、ユーザーのブラウザのパフォーマンスを返します。 exit() 関数はメッセージを出力し、現在のスクリプトを終了します。 eval() 関数は、PHP コードに従って文字列を評価します。 die() 関数はメッセージを出力し、現在のスクリプトを終了します。 define() 関数は定数が存在するかどうかをチェックします。 define() 関数は定数を定義します。 constant() 関数は定数の値を返します。 connection_status() 関数は現在の接続ステータスを返します。 connection_aborted() 関数は、クライアントが切断されているかどうかを確認します。 zip_read() 関数は、開かれた zip アーカイブ内の次のファイルを読み取ります。 zip_open() 関数は、読み取り用に ZIP ファイルを開きます。 zip_entry_read() 関数は、開かれた zip アーカイブ エントリからコンテンツを取得します。 zip_entry_open() 関数は、読み取り用に ZIP アーカイブ エントリを開きます。 zip_entry_name() 関数は、zip アーカイブ エントリの名前を返します。 zip_entry_filesize() 関数は、zip アーカイブ エントリの元のサイズ (圧縮前) を返します。 zip_entry_compressionmethod() 関数は、zip アーカイブ エントリの圧縮方法を返します。 zip_entry_compressedsize() 関数は、zip アーカイブ エントリの圧縮ファイル サイズを返します。 zip_entry_close() 関数は、zip_entry_open() 関数によって開かれた zip アーカイブ ファイルを閉じます。 zip_close() 関数は、zip_open() 関数によって開かれた zip アーカイブ ファイルを閉じます。 xml_set_unparsed_entity_decl_handler() 関数は、未解決のエンティティ名 (NDATA) 宣言が見つかったときに呼び出される関数を指定します。 xml_set_processing_instruction_handler() 関数は、パーサーが XML ドキュメント内で処理命令を見つけたときに呼び出される関数を指定します。 xml_set_object() 関数を使用すると、オブジェクト内で XML パーサーを使用できます。 xml_set_notation_decl_handler() 関数は、パーサーが XML ドキュメント内でシンボル宣言を見つけたときに呼び出される関数を指定します。 xml_set_external_entity_ref_handler() 関数は、パーサーが XML ドキュメント内で外部エンティティを見つけたときに呼び出される関数を指定します。 xml_set_element_handler() 関数は、開始要素ハンドラーと終了要素ハンドラーを確立します。 xml_set_default_handler() 関数は、XML パーサーのデフォルトのデータ ハンドラーを確立します。 xml_set_character_data_handler() 関数は文字データ ハンドラーを作成します。 xml_parser_set_option() 関数は、XML パーサーのオプションを設定します。 xml_parser_get_option() 関数は、XML パーサーからオプション設定情報を取得します。 xml_parser_free() 関数は XML パーサーを解放します。 xml_parser_create() 関数は XML パーサーを作成します。 xml_parser_create_ns() 関数は、名前空間をサポートする XML パーサーを作成します。 xml_parse_into_struct() 関数は XML データを配列に解析します。 xml_parse() 関数は XML ドキュメントを解析します。 xml_get_error_code() 関数は XML パーサーのエラー コードを取得します。 xml_get_current_line_number() 関数は、XML パーサーの現在の行番号を取得します。 xml_get_current_column_number() 関数は、XML パーサーの現在の列番号を取得します。 xml_get_current_byte_index() 関数は、XML パーサーの現在のバイト インデックスを取得します。 xml_error_string() 関数は、XML パーサーのエラーの説明を取得します。 utf8_encode() 関数は ISO-8859-1 文字列を UTF-8 にエンコードします。 utf8_decode() 関数は、UTF-8 文字列を ISO-8859-1 にデコードします。 wordwrap() 関数は、指定された長さに応じて文字列をラップします。 vsprintf() 関数は、フォーマットされた文字列を変数に書き込みます。 vprintf() 関数はフォーマットされた文字列を出力します。 vfprintf() 関数は、フォーマットされた文字列を指定された出力ストリームに書き込みます。 ucwords() 関数は、文字列内の各単語の最初の文字を大文字に変換します。 ucfirst() 関数は、文字列の最初の文字を大文字に変換します。 trim() 関数は、文字列の両端から空白文字とその他の事前定義された文字を削除します。 substr_replace() 関数は、文字列の一部を別の文字列に置き換えます。 substr_count() 関数は、文字列内に部分文字列が出現する回数をカウントします。 substr_compare() 関数は、指定された開始長から 2 つの文字列を比較します。 substr() 関数は文字列の一部を返します。 strtr() 関数は、文字列内の特定の文字を変換します。 strtoupper() 関数は文字列を大文字に変換します。 strto lower() 関数は文字列を小文字に変換します。 strtok() 関数は、文字列をより小さな文字列に分割します。 strstr() 関数は、ある文字列が別の文字列内で最初に出現する箇所を検索します。 strspn() 関数は、文字列に含まれる特定の文字の数を返します。 strrpos() 関数は、別の文字列内で最後に出現した文字列を検索します。 strripos() 関数は、別の文字列内で最後に出現した文字列を検索します。 strrev() 関数は文字列を反転します。 strrchr() 関数は、別の文字列内で最後に出現した文字列を検索し、その位置から文字列の末尾までのすべての文字を返します。 strpos() 関数は、別の文字列内で最初に出現した文字列の位置を返します。 strpbrk() 関数は、文字列内の指定された文字のいずれかを検索します。 strncmp() 関数は 2 つの文字列を比較します。 strncasecmp() 関数は 2 つの文字列を比較します。 strnatcmp() 関数は、「自然な」アルゴリズムを使用して 2 つの文字列を比較します。 strnatcasecmp() 関数は、「自然な」アルゴリズムを使用して 2 つの文字列を比較します。 strlen() 関数は文字列の長さを返します。 stristr() 関数は、別の文字列内で最初に出現した文字列を検索します。 stripos() 関数は、別の文字列内で最初に出現する文字列の位置を返します。 stripslashes() 関数は、addslashes() 関数によって追加されたバックスラッシュを削除します。 stripcslashes() 関数は、addcslashes() 関数によって追加されたバックスラッシュを削除します。 strip_tags() 関数は、HTML、XML、および PHP タグを削除します。 strcspn() 関数は、指定された文字が見つかるまでに文字列内で検索された文字数を返します。 strcoll() 関数は 2 つの文字列を比較します。 strcmp() 関数は 2 つの文字列を比較します。 strchr() 関数は、別の文字列内で最初に出現する文字列を検索します。 strcasecmp() 関数は 2 つの文字列を比較します。 str_word_count() 関数は、文字列内の単語の数をカウントします。 str_split() 関数は文字列を配列に分割します。 str_shuffle() 関数は、文字列内のすべての文字をランダムにシャッフルします。 str_rot13() 関数は、文字列に対して ROT13 エンコードを実行します。 str_replace() 関数は、文字列を使用して文字列内の他の文字を置き換えます。 str_repeat() 関数は、指定された回数だけ文字列を繰り返します。 str_pad() 関数は、指定された長さまで文字列をパディングします。 str_ireplace() 関数は、文字列を使用して文字列内の他の文字を置き換えます。 sscanf() 関数は、指定された形式に従って文字列からの入力を解析します。 sprintf() 関数は、フォーマットされた文字列を変数に書き込みます。 soundex() 関数は文字列の soundex キーを計算します。 similar_text() 関数は、2 つの文字列内で一致する文字の数をカウントします。 sha1_file() 関数は、ファイルの SHA-1 ハッシュを計算します。 sha1() 関数は、文字列の SHA-1 ハッシュを計算します。 setlocale()関数は地域情報(地域情報)を設定します。 rtrim() P rtrim() 関数
PHP 文字列関数 quotemeta() 関数は、文字列内の特定の定義済み文字の前にバックスラッシュを追加します。 quoted_printable_decode() 関数は、quoted-printable エンコードされた文字列をデコードし、8 ビット文字列を返します。 printf() 関数はフォーマットされた文字列を出力します。 print() 関数は 1 つ以上の文字列を出力します。 parse_str() 関数はクエリ文字列を変数に解析します。 ord() 関数は、文字列の最初の文字の ASCII 値を返します。 number_format() 関数は、数値を千のグループごとにフォーマットします。 nl2br() 関数は、文字列内の各改行 (n) の前に HTML 改行文字 ( ) を挿入します。 nl_langinfo() 関数は、指定されたローカル情報を返します。 money_format() 関数は、文字列を通貨文字列にフォーマットします。 metaphone() 関数は、文字列のメタフォン キーを計算します。 md5_file() 関数は、ファイルの MD5 ハッシュを計算します。 md5() 関数は文字列の MD5 ハッシュを計算します。 ltrim() 関数は、文字列の左側からスペースまたはその他の事前定義された文字を削除します。 localeconv() 関数は、ローカル番号と通貨情報の形式を含む配列を返します。 levenshtein() 関数は、2 つの文字列間のレーベンシュタイン距離を返します。 join() 関数は、配列要素を文字列に結合します。 implode() 関数は、配列要素を文字列に結合します。 htmlspecialchars() 関数は、いくつかの事前定義された文字を HTML エンティティに変換します。 html_entity_decode() chars_decode() 関数 htmlentities() 関数は、文字を HTML エンティティに変換します。 html_entity_decode() 関数は、HTML エンティティを文字に変換します。 hebrevc() 関数は、ヘブライ語テキストを右から左へのフローから左から右へのフローに変換します。また、改行 (n) も に変換されます。 hebrev() 関数は、ヘブライ語テキストを右から左へのフローから左から右へのフローに変換します。 get_html_translation_table() 関数は、htmlentities() 関数と htmlspecialchars() 関数で使用される変換テーブルを返します。 fprintf() 関数は、フォーマットされた文字列を指定された出力ストリーム (例: ファイルまたはデータベース) に書き込みます。 explode() 関数は文字列を配列に分割します。 echo() 関数は 1 つ以上の文字列を出力します。 crypt() 関数は、DES、Blowfish、または MD5 を使用して暗号化された文字列を返します。 crc32() 関数は、文字列の crc32 多項式を計算します。 count_chars() 関数は、文字列で使用されている文字に関する情報を返します。 convert_uuencode() 関数は、uuencode アルゴリズムを使用して文字列をエンコードします。 convert_uudecode() 関数は、uuencode でエンコードされた文字列をデコードします。 convert_cyr_string() 関数は、文字をあるキリル文字から別の文字に変換します。 chunk_split() 関数は、文字列を一連の小さな部分に分割します。 chr() 関数は、指定された ASCII 値から文字を返します。 chop() 関数は、文字列の末尾から始まる空白文字またはその他の事前定義された文字を削除します。 bin2hex() 関数は、ASCII 文字の文字列を 16 進数値に変換します。 addslashes() 関数は、指定された定義済み文字の前にバックスラッシュを追加します。 addcslashes() 関数は、指定された文字の前にバックスラッシュを追加します。 xpath() 関数は、XML ドキュメントに対して XPath クエリを実行します。 simplexml_load_string() 関数は、XML 文字列をオブジェクトにロードします。 simplexml_load_file() 関数は、XML ドキュメントをオブジェクトにロードします。 simplexml_import_dom() 関数は、DOM ノードを SimpleXMLElement オブジェクトに変換します。 registerXPathNamespace() 関数は、次の XPath クエリの名前空間コンテキストを作成します。 getNamespace() 関数は、XML ドキュメントで使用される名前空間を取得します。 getName() 関数は、SimpleXMLElement オブジェクトから XML 要素の名前を取得します。 getDocNamespaces() 関数は、SimpleXMLElement オブジェクトから XML ドキュメントで宣言された名前空間を返します。 children() 関数は、指定されたノードの子ノードを取得します。 attributes() 関数は、SimpleXML 要素の属性を取得します。 asXML() 関数は、SimpleXMLElement オブジェクトから XML ドキュメントを文字列として返します。 addChild() 関数は、指定された XML ノードに子ノードを追加します。 addAttribute() 関数は、SimpleXML 要素に属性を追加します。 __construct() 関数は、新しい SimpleXMLElement オブジェクトを作成します。 mysql_unbuffered_query() 関数は、(結果の取得/キャッシュなしで) SQL クエリを MySQL に送信します。 mysql_thread_id() 関数は現在のスレッドの ID を返します。 mysql_stat() 関数は、MySQL サーバーの現在のシステムステータスを返します。 mysql_select_db() 関数は、アクティブな MySQL データベースを設定します。 mysql_result() 関数は、結果セット内のフィールドの値を返します。 mysql_real_escape_string() 関数は、SQL ステートメントで使用される文字列内の特殊文字をエスケープします。 mysql_query() 関数は MySQL クエリを実行します。 mysql_ping() 関数 サーバー接続に ping を実行し、接続がない場合は再接続します。 mysql_pconnect() 関数は、MySQL サーバーへの永続的な接続を開きます。 mysql_num_rows() 関数は、結果セット内の行数を返します。 mysql_num_fields() 関数は、結果セット内のフィールドの数を返します。 mysql_list_processes() 関数は MySQL プロセスをリストします。 mysql_list_dbs() 関数は、MySQL サーバー内のすべてのデータベースをリストします。 mysql_insert_id() 関数は、前の INSERT 操作によって生成された ID を返します。 mysql_info() 関数は最新のクエリの情報を返します。 mysql_get_server_info() 関数は MySQL サーバー情報を返します。 mysql_get_proto_info() 関数は MySQL プロトコル情報を返します。 mysql_get_host_info() 関数は、MySQL ホスト情報を返します。 mysql_get_client_info() 関数は MySQL クライアント情報を返します。 mysql_free_result() 関数は結果メモリを解放します。 mysql_field_type() 関数は、結果セット内の指定されたフィールドのタイプを返します。 mysql_field_table() 関数は、指定されたフィールドが配置されているテーブル名を返します。 mysql_field_seek() 関数は、結果セット内のポインターを指定されたフィールド オフセットに設定します。 mysql_field_name() 関数は、結果内の指定されたフィールドのフィールド名を取得します。 mysql_field_len() 関数は、指定されたフィールドの長さを返します。 mysql_field_flags() 関数は、指定されたフィールドに関連付けられたフラグを結果から取得します。 mysql_fetch_row() 関数は、結果セットから行を数値配列としてフェッチします。 mysql_fetch_object() 関数は、結果セット (レコードセット) から行をオブジェクトとして取得します。 mysql_fetch_lengths() 関数は、行内の各フィールドの内容の長さを取得します。 mysql_fetch_field() 関数は、結果セットからカラム情報を取得し、それをオブジェクトとして返します。 mysql_fetch_assoc() 関数は、結果セットから行を連想配列としてフェッチします。 mysql_fetch_array() 関数は、結果セットから行を連想配列、数値配列、またはその両方としてフェッチします。 mysql_error() 関数は、前の MySQL 操作によって生成されたテキスト エラー メッセージを返します。 mysql_errno() 関数は、前の MySQL 操作のエラー メッセージの数値コードを返します。 mysql_db_name() 関数は、mysql_list_dbs() 呼び出しによって返されたデータベース名を取得します。 mysql_data_seek() 関数は内部結果のポインタを移動します。 mysql_connect() 関数は、非永続的な MySQL 接続を開きます。 mysql_close() 関数は、非永続的な MySQL 接続を閉じます。 mysql_client_encoding() 関数は、現在の接続の文字セットの名前を返します。 mysql_affected_rows() 関数は、前の MySQL 操作によって影響を受けたレコード行の数を返します。 tanh() 関数は双曲線正接を返します。 tan() 関数はタンジェントを返します。 srand() 関数は乱数ジェネレーターにシードを与えます。 sqrt() 関数は数値の平方根を返します。 sinh() 関数は、数値の双曲線正弦を返します。 sin() 関数は数値の正弦を返します。 round() 関数は浮動小数点数を丸めます。 rand() 関数はランダムな整数を返します。 rad2deg() 関数はラジアンを度に変換します。 pow() 関数は、x の y 乗を返します。 pi() 関数は pi の値を返します。 octdec() 関数は、8 進数を 10 進数に変換します。 mt_srand() はメルセンヌ ツイスター乱数ジェネレーターをシードします。 mt_rand() は、メルセンヌ ツイスター アルゴリズムを使用してランダムな整数を返します。 mt_getrandmax() は乱数の最大値を表示します。 min() は最小値を返します。 max() は最大値を返します。 log1p() は log(1 + x) を返します。これは、x の値がゼロに近い場合でも正確に計算できます。 log10() 10 を底とする対数。 log() は自然対数を返します。 lcg_value() は線形合同生成器を結合します。 is_nan() は、それが正当な値であるかどうかを判断します。 is_infinite() は、それが無限であるかどうかを判断します。 is_finite() 関数は、それが有限値であるかどうかを判断します。 hypot() 関数は、直角三角形の斜辺の長さを計算します。 hexdec() 関数は 16 進数を 10 進数に変換します。 fmod() 関数は、乱数の可能な最大値を表示します。 fmod() 関数は、除算の浮動小数点剰余を返します。 floor() 関数は最も近い整数に切り捨てます。 expm1() 関数は exp(x) - 1 を返します。これは、number の値が 0 に近い場合でも正確に計算できます。 exp() 関数は e の指数を計算します。 deg2rad() 関数は角度をラジアンに変換します。 decoct() 関数は 10 進数を 8 進数に変換します。 dechex() 関数は 10 進数を 16 進数に変換します。 decbin() 関数は 10 進数を 2 進数に変換します。 cosh() 関数は、数値の双曲線余弦を返します。 cos() 関数は数値のコサインを返します。 ceil() 関数は最も近い整数に切り上げます。 bindec() 関数は 2 進数を 10 進数に変換します。 base_convert() 関数は、数値を任意の基数間で変換します。 atanh() 関数は、角度の逆双曲線正接を返します。 atan()、atan2()、およびatan2()関数
PHP 数学関数 atan() および atan2() および atan2() 関数 asinh() 関数は、数値の逆双曲線正弦を返します。 asin() 関数は、さまざまな値の逆正弦を返します。返される結果は、-PI/2 から PI/2 までのラジアン単位の値です。 acosh() 関数は、数値の逆双曲線余弦を返します。 acos() 関数は数値の逆余弦を返します。 abs() 関数は数値の絶対値を返します。 mail() 関数を使用すると、スクリプトから直接電子メールを送信できます。 libxml_use_internal_errors() 関数は、標準の libxml エラーを無効にし、ユーザーのエラー処理を有効にします。 libxml_get_last_error() 関数は、libxml エラー バッファから最後のエラーを取得します。 libxml_get_errors() 関数は、libxml エラーバッファからエラーを取得します。 libxml_clear_errors() 関数は、libxml エラー バッファをクリアします。 setrawcookie() 関数は、Cookie 値を URL エンコードせず、HTTP Cookie を送信します。 setcookie() 関数は、HTTP Cookie をクライアントに送信します。 headers_sent() 関数は、HTTP ヘッダーが送信されるかどうか、送信される場所を確認します。 headers_list() 関数は、送信された (または送信される) 応答ヘッダーのリストを返します。 header() 関数は、生の HTTP ヘッダーをクライアントに送信します。 ftp_systype() 関数は、リモート FTP サーバーのシステム タイプ識別子を返します。 ftp_ssl_connect() 関数は安全な SSL-FTP 接続を開きます。 ftp_size() 関数は、指定されたファイルのサイズを返します。 ftp_site() 関数は SITE コマンドをサーバーに送信します。 ftp_set_option() 関数は、さまざまな FTP 実行時オプションを設定します。 ftp_rmdir() 関数はディレクトリを削除します。 ftp_rename() 関数は、FTP サーバー上のファイル名またはディレクトリ名を変更します。 ftp_rawlist() 関数は、指定されたディレクトリ内のファイルの詳細なリストを返します。 ftp_raw() 関数は、生のコマンドを FTP サーバーに送信します。 ftp_quit() 関数は FTP 接続を閉じます。 ftp_pwd() 関数は現在のディレクトリ名を返します。 ftp_put() 関数はファイルをサーバーにアップロードします。 ftp_pasv() 関数はパッシブモードのオンまたはオフを設定します。 ftp_nlist() 関数は、指定されたディレクトリ内のファイルリストを返します。 ftp_nb_put() 関数はファイルをサーバーにアップロードします (ノンブロッキング)。 ftp_nb_get() 関数は、FTP サーバーからファイルを取得し、ローカル ファイルに書き込みます (ノンブロッキング)。 ftp_nb_fput() 関数は、開いているファイルをアップロードし、FTP サーバーにファイルとして保存します (ノンブロッキング)。 ftp_nb_fget() 関数は、FTP サーバーからファイルをダウンロードし、ローカルで開かれているファイルに保存します (ノンブロッキング)。 ftp_nb_ continue() 関数はファイルを継続的に取得/送信します。 ftp_mkdir() 関数は、FTP サーバー上に新しいディレクトリを作成します。 ftp_mdtm() 関数は、指定されたファイルの最終変更時刻を返します。 ftp_login()関数はFTPサーバーにログインします。 ftp_get() 関数は、FTP サーバーからファイルをダウンロードします。 ftp_get_option() 関数は、現在の FTP 接続のさまざまなオプション設定を返します。 ftp_fput() 関数は、開いているファイルを FTP サーバーにアップロードします。 ftp_fget() 関数は、FTP サーバーからファイルをダウンロードし、ローカルで開いているファイルに保存します。 ftp_exec() 関数は、FTP サーバー上でプログラムまたはコマンドの実行を要求します。 ftp_delete() 関数は、FTP サーバー上のファイルを削除します。 ftp_connect() 関数は新しい FTP 接続を確立します。 ftp_close() 関数は FTP 接続を閉じます。 ftp_chmod() 関数は、FTP サーバー上の指定されたファイルのアクセス許可を設定します。 ftp_chdir() 関数は、FTP サーバー上の現在のディレクトリを変更します。 ftp_cdup() 関数は、現在のディレクトリを FTP サーバー上の親ディレクトリに変更します。 ftp_alloc() 関数は、FTP サーバーにアップロードされるファイル用のスペースを割り当てます。 filter_var() 関数は、指定されたフィルターで変数をフィルターします。 filter_var_array() 関数は複数の変数を取得してフィルターします。 filter_list() 関数は、サポートされているすべてのフィルターを含む配列を返します。 filter_input_array() 関数は、スクリプトの外部から複数の入力を取得し、それらをフィルターします。 filter_input() 関数はスクリプトの外部から入力を取得し、それをフィルターします。 filter_id() 関数は、指定されたフィルターの ID 番号を返します。 filter_has_var() 関数は、指定された入力タイプの変数が存在するかどうかを確認します。 unlink() 関数はファイルを削除します。 umask() 関数は現在の umask を変更します。 touch() 関数は、指定されたファイルのアクセス時間と変更時間を設定します。 tmpfile() 関数は、読み取り/書き込み (w+) モードで一意のファイル名を持つ一時ファイルを作成します。 tempnam() 関数は、一意のファイル名を持つ一時ファイルを作成します。 symlink() 関数はシンボリックリンクを作成します。 stat() 関数はファイルに関する情報を返します。 set_file_buffer() 関数は、開いているファイルのバッファ サイズを設定します。 rmdir() 関数は空のディレクトリを削除します。 rewind() 関数は、ファイル ポインターの位置をファイルの先頭に巻き戻します。 rename() 関数はファイルまたはディレクトリの名前を変更します。 realpath() 関数は絶対パスを返します。 readlink() 関数は、シンボリック リンクが指すターゲットを返します。 readfile()関数はファイルを出力します。 popen() 関数はプロセス ファイル ポインターを開きます。 pclose() 関数は、popen() によって開かれたパイプを閉じます。 pathinfo() 関数は、ファイル パス情報を配列の形式で返します。 parse_ini_file() 関数は構成ファイルを解析し、配列で設定を返します。 move_uploaded_file() 関数は、アップロードされたファイルを新しい場所に移動します。 mkdir() 関数はディレクトリを作成します。 lstat() 関数は、ファイルまたはシンボリック リンクに関する情報を返します。 linkinfo() 関数は接続情報を返します。 link() 関数はハードリンクを確立します。 is_writeable() 関数は、指定されたファイルが書き込み可能かどうかを判断します。 is_writable() 関数は、指定されたファイルが書き込み可能かどうかを判断します。 is_uploaded_file() 関数は、指定されたファイルが HTTP POST 経由でアップロードされたかどうかを判断します。 is_readable() 関数は、指定されたファイル名が読み取り可能かどうかを判断します。 is_link() 関数は、指定されたファイル名がシンボリック リンクであるかどうかを判断します。 is_file() 関数は、指定されたファイル名が通常のファイルかどうかを確認します。 is_executable() 関数は、指定されたファイルが実行可能かどうかを確認します。 is_dir() 関数は、指定されたファイルがディレクトリであるかどうかを確認します。 glob() 関数は、指定されたパターンに一致するファイル名またはディレクトリを返します。 fwrite() 関数はファイルに書き込みます (バイナリ ファイルには安全です)。 ftruncate() 関数は、ファイルを指定された長さに切り詰めます。 ftell() 開いているファイル内の関数の現在位置。 fstat() 関数は、開いているファイルに関する情報を返します。 fseek() 関数は、開いているファイル内に配置されます。 fscanf() 関数は、指定された形式に従って、開いているファイルからの入力を解析します。 fread() 関数はファイルを読み取ります (バイナリ ファイルに対して安全です)。 fputs() 関数はファイルに書き込みます (バイナリ ファイルには安全です)。 fputcsv() 関数は行を CSV にフォーマットし、開いているファイルに書き込みます。 fpassthru() 関数は、ファイル ポインターに残っているすべてのデータを出力します。 fopen() 関数はファイルまたは URL を開きます。 fnmatch() 関数は、指定されたパターンに基づいてファイル名または文字列を照合します。 flock() 関数はファイルをロックまたは解放します。 filetype() 関数は、指定されたファイルまたはディレクトリのタイプを返します。 filesize() 関数は、指定されたファイルのサイズを返します。 fileperms() 関数は、ファイルまたはディレクトリのアクセス許可を返します。 fileowner() 関数はファイルの所有者を返します。 filemtime() 関数は、ファイルコンテンツの最終変更時刻を返します。 fileinode() 関数はファイルの i ノード番号を返します。 filegroup() 関数は、指定されたファイルのグループ ID を返します。 filectime() 関数は、指定されたファイルの最後の i ノード変更時刻を返します。 fileatime() 関数は、指定されたファイルの最終アクセス時刻を返します。 file_put_contents() 関数は文字列をファイルに書き込みます。 file_get_contents() 関数は、ファイル全体を文字列に読み取ります。 file_exists() 関数は、ファイルまたはディレクトリが存在するかどうかを確認します。 file() 関数は、ファイル全体を配列に読み取ります。 fgetss() 関数は、開いているファイルから 1 行を読み取り、HTML タグと PHP タグをフィルターで除外します。 fgets() 関数は、ファイル ポインターから行を読み取ります。 fgetcsv() 関数は、ファイル ポインターから行を読み取り、CSV フィールドを解析します。 fgetc() 関数はファイルポインタから文字を読み取ります。 fflush() 関数は、バッファリングされた内容をファイルに出力します。 feof() 関数は、ファイルの終わり (eof) に到達したかどうかを検出します。 fclose() 関数は、開いているファイルを閉じます。 diskfreespace() 関数はディレクトリ内の空きスペースを返します。この関数は、disk_free_space() 関数のエイリアスです。 disk_total_space() 関数は、指定されたディレクトリの合計ディスク サイズを返します。 disk_free_space() 関数はディレクトリ内の空き領域を返します。 dirname() 関数はパスのディレクトリ部分を返します。 clearstatcache() 関数はファイルをコピーします。 clearstatcache() 関数はファイルステータスキャッシュをクリアします。 chown() 関数は、指定されたファイルの所有者を変更します。 chmod() 関数はファイルモードを変更します。 chgrp() 関数は、ファイルが属するグループを変更します。 basename() 関数はパスのファイル名の部分を返します。 set_Exception_handler() ハンドラー() 関数
PHP エラーおよびロギング関数 set_Exception_handler() 関数は、ユーザー定義の例外処理関数を設定します。 set_error_handler() 関数は、ユーザー定義のエラー処理関数を設定します。 restore_Exception_handler() 関数は、set_Exception_handler() 関数によって変更された以前の例外ハンドラーを復元します。 restore_error_handler() 関数は、set_error_handler() 関数によって変更された以前のエラー ハンドラーを復元します。 error_reporting() は、PHP のエラー報告レベルを設定し、現在のレベルを返します。 error_log() 関数は、サーバーのエラー ログ、ファイル、またはリモート ターゲットにエラーを送信します。 error_get_last() 関数は、発生した最後のエラーを取得します。 debug_print_backtrace() 関数はバックトレースを出力します。 debug_backtrace() cktrace() 関数 scandir() 関数は、指定されたパス内のファイルとディレクトリを含む配列を返します。 rewinddir() 関数は、opendir() によって開かれたディレクトリ ハンドルをリセットします。 readdir() 関数は、opendir() によって開かれたディレクトリ ハンドル内のエントリを返します。 opendir() 関数はディレクトリ ハンドルを開き、closedir()、readdir()、rewinddir() で使用できます。 getcwd() 関数は現在のディレクトリを返します。 closedir() 関数は、opendir() 関数によって開かれたディレクトリ ハンドルを閉じます。 dir() 関数はディレクトリハンドルを開き、オブジェクトを返します。このオブジェクトには、read()、rewind()、close() の 3 つのメソッドが含まれています。 chroot() 関数は、現在のプロセスのルート ディレクトリを指定されたディレクトリに変更します。 chdir() 関数は、現在のディレクトリを指定されたディレクトリに変更します。 time() 関数は、現在の時刻の Unix タイムスタンプを返します。 strtotime() 関数は、英語のテキストの日時記述を Unix タイムスタンプに解析します。 strptime() 関数は、strftime() によって生成された日付/時刻を解析します。 strftime() 関数は、ロケール設定に従って現地時間/日付をフォーマットします。 mktime() 関数は、日付の Unix タイムスタンプを返します。 microtime() 関数は、現在の Unix タイムスタンプとマイクロ秒を返します。 localtime() 関数は現地時間 (配列) を返します。 idate() 関数は、現地の時刻/日付を整数にフォーマットします。 gmstrftime() 関数は、ローカル ロケールに従って GMT/UTC 時刻/日付をフォーマットします。 gmmktime() 関数は、GMT 日付の UNIX タイムスタンプを取得します。 gmdate() 関数は GMT/UTC 日付/時刻をフォーマットします。 gettimeofday() 関数は、現在の時刻情報を含む配列を返します。 getdate()関数は日時情報を取得します。 date() 関数は、ローカル時刻/日付をフォーマットします。 date_sunset() 関数は、指定された日付と場所の日没時刻を返します。 date_sunrise() 関数は、指定された日付と場所の日の出時刻を返します。 date_default_timezone_set() 関数は、スクリプト内のすべての日付/時刻関数に使用されるデフォルトのタイムゾーンを設定します。 date_default_timezone_get() 関数は、スクリプト内のすべての日付と時刻関数で使用されるデフォルトのタイムゾーンを返します。 checkdate() 関数はグレゴリオ暦の日付を検証します。 UnixToJD() 関数は、Unix タイムスタンプをユリウス日カウントに変換します。 JulianToJD() 関数は、ユリウス暦をユリウス日カウントに変換します。 JewishToJD() 関数は、ユダヤ暦をユリウス日カウントに変換します。 JDToUnix() 関数は、ユリウス日カウントを Unix タイムスタンプに変換します。 JDToGregorian() lian() 関数 PHP 配列関数 JDToGregorian() wish() 関数 JDToGregorian() 関数は、ユリウス日のカウントをグレゴリオ暦に変換します。 JDToFrench() 関数は、ユリウス日カウントをフランス共和国カレンダーに変換します。 JDMonthName() 関数は、指定されたカレンダーの月の文字列を返します。 JDDayOfWeek() 関数は、日付が属する曜日を返します。 GregorianToJD() 関数は、グレゴリオ暦をユリウス日カウントに変換します。 FrenchToJD() 関数は、フランス共和制暦をユリウス日カウントに変換します。 easter_days() 関数は、指定された年のイースターから 3 月 21 日までの日数を返します。 easter_date() 関数は、指定された年のイースター真夜中の Unix タイムスタンプを返します。 cal_to_jd() 関数は、指定された日付をユリウス日カウントに変換します。 cal_info() 関数は、指定されたカレンダーに関する情報を含む配列を返します。 cal_from_jd() 関数は、ユリウス日カウントを指定されたカレンダーの日付に変換します。 cal_days_in_month() 関数は、指定された年とカレンダーの月の日数を返します。 usort() 関数は、ユーザー定義関数を使用して配列を並べ替えます。 uksort() 関数は、ユーザー定義の比較関数を使用して配列をキー名で並べ替え、インデックス関係を維持します。 uasort() 関数は、ユーザー定義の比較関数を使用して配列を並べ替え、インデックスの関連付けを維持します (新しいキーは要素に割り当てられません)。 sort() 関数は、指定された配列の値を昇順に並べ替えます。 sizeof() 関数は、配列内のセルの数、またはオブジェクト内の属性の数をカウントします。 shuffle() 関数は、配列内の要素をランダムな順序で並べ替えます。 rsort() 関数は、配列の要素をキー値の逆順に並べ替えます。基本的にはarsort()と同じ関数です。 reset() 関数は、配列の内部ポインタを最初の要素に設定し、この要素の値を返します。 range() 関数は、指定された範囲内の要素を含む配列を作成して返します。 prev() HP prev() 関数
PHP配列関数 pos()関数はcurrent()関数のエイリアスです。配列内の現在の要素の値を返します。 next() 関数は、現在の要素を指すポインターを次の要素の位置に移動し、現在の要素の値を返します。 natsort() 関数は、自然順序付けアルゴリズムを使用して、指定された配列内の要素を並べ替えます。 natcasesort() 関数は、大文字と小文字を区別しない自然な順序付けアルゴリズムを使用して、指定された配列内の要素を並べ替えます。 list() 関数は、配列内の要素を使用して変数のセットに値を割り当てます。 ksort() 関数は、配列値の元のキーを保持しながら、キー名で配列を並べ替えます。 krsort() 関数は、配列値の元のキーを保持しながら、キーによって配列を逆順にソートします。 key() 関数は、配列の内部ポインタが現在指している要素のキー名を返します。 in_array() 関数は、配列内で指定された値を検索します。 extract() extract() 関数 end() 関数は、配列の内部ポインターを最後の要素に設定し、その要素の値を返します (成功した場合)。 each() 関数は、配列の現在の内部ポインターが指す要素のキー名とキー値で構成される配列を生成し、内部ポインターを前方に移動します。 current() 関数は、配列内の現在の要素 (セル) を返します。 count() 関数は、配列内のセルの数またはオブジェクト内の属性の数をカウントします。 compact() 関数は、パラメーターによって取得される変数で構成される配列を作成します。パラメータに配列がある場合は、配列内の変数の値も取得されます。 asort() 関数は配列をソートし、インデックス関係を維持します。主に、セルの順序が重要な連想配列の並べ替えに使用されます。 arsort() 関数は、配列を逆順にソートし、インデックス関係を維持します。主に、セルの順序が重要な連想配列の並べ替えに使用されます。 array_walk_recursive() cursive() 関数 array_walk() 関数は、配列内の各要素にコールバック関数を適用します。成功した場合は TRUE を返し、そうでない場合は FALSE を返します。 array_values() 関数は、指定された配列内のすべてのキー値を含む配列を返しますが、キー名は保持しません。 array_unshift() 関数は、配列の先頭に 1 つ以上の要素を挿入します。 array_unique() 関数は、配列から重複する値を削除し、結果の配列を返します。 array_uintersect_assoc() 関数は、インデックスチェックで配列の交差を計算し、コールバック関数を使用してデータを比較します。 array_uintersect() 関数は配列の交差部分を計算し、コールバック関数を使用してデータを比較します。 array_udiff_uassoc() 関数は、array1 配列には存在するが、他の配列には存在しない部分を返します。返された配列内のキー名は変更されません。 array_udiff_assoc() 関数は、array1 には存在するが他の配列には存在しない部分を返します。 array_udiff() 関数は、比較される配列内のすべての値を含む配列を返しますが、他のパラメーター配列には含まれません。キー名は変更されません。 array_sum() 関数は、配列内のすべての値の合計を返します。 array_splice() 関数は array_slice() 関数に似ており、配列内の要素の範囲を選択しますが、要素を返す代わりに要素を削除し、他の値に置き換えます。 array_slice() 関数は、条件に基づいて配列から値のセグメントを取り出し、それを返します。 array_shift() 関数は、配列の最初の要素を削除し、削除された要素の値を返します。 array_search() 関数は in_array() と同じで、配列内のキー値を検索します。値が見つかった場合は、一致する要素のキーが返されます。見つからない場合は false を返します。 array_reverse() 関数は、元の配列の要素の順序を逆にし、新しい配列を作成して返します。 2 番目のパラメーターが true として指定されている場合、要素のキー名は変更されません。それ以外の場合、キー名は失われます。 array_reduce() 関数は、コールバック関数を使用して、配列を単一の値に繰り返し削減します。 3 番目の引数が指定された場合、それは配列内の最初の値として扱われるか、配列が空の場合は最終的な戻り値として扱われます。 array_rand() 関数は、配列から 1 つ以上の要素をランダムに選択して返します。 array_push() 関数は、最初のパラメーターの配列の末尾に 1 つ以上の要素 (プッシュ) を追加し、新しい配列の長さを返します。 array_product() 関数は、配列内のすべての値の積を計算して返します。 array_pop() 関数は配列の最後の要素を削除します。 array_pad() 関数は、指定された値を持つ指定された数の要素を配列に挿入します。 array_multisort() 関数は、複数の配列または多次元配列をソートします。 array_merge_recursive() 関数は、array_merge() 関数と同様に、1 つ以上の配列の要素をマージし、1 つの配列の値を前の配列に追加します。そして結果の配列を返します。 array_merge() 関数は、2 つ以上の配列を 1 つの配列にマージします。 array_map() 関数は、ユーザー定義関数が適用された後の配列を返します。コールバック関数は、array_map() 関数に渡される配列の数と同じ数の引数を受け入れる必要があります。 array_keys() 関数は、配列内のすべてのキーを含む新しい配列を返します。 array_key_exists() 関数は、指定されたキーが配列内に存在するかどうかを判断し、キーが存在する場合は true を返し、存在しない場合は false を返します。 array_intersect_ukey() 関数は、コールバック関数を使用してキー名を比較し、配列の共通部分を計算します。 array_intersect_uassoc() 関数は、ユーザー定義のコールバック関数を使用して配列の共通部分を計算し、そのコールバック関数を使用してインデックスを比較します。 array_intersect_key() 関数は、キー名の比較を使用して配列の共通部分を計算します。 array_intersect_assoc() 関数は、2 つ以上の配列の交差配列を返します。 array_intersect() 関数は、2 つ以上の配列の交差配列を返します。 array_flip() 関数は反転配列を返します。同じ値が複数回出現する場合、最後のキー名がその値として使用され、他のキー名はすべて失われます。 array_filter() 関数は、コールバック関数を使用して配列内の要素をフィルター処理します。カスタム フィルター関数が true を返した場合、演算された配列の現在の値が返された結果配列に含まれ、結果は に形成されます。新しいアレイ。元の配列が連想配列の場合、キー名は変更されません。 array_fill() 関数は、指定された値で配列を埋めます。返される配列には数値要素があり、その値は value です。返される配列には、開始位置から増加する数値インデックスが付けられます。数値が0または0未満の場合はエラーとなります。 array_diff_ukey() は、array1 に表示されるが他のパラメータ配列には表示されないすべてのキーの値を含む配列を返します。関係は変わらないことに注意してください。 array_diff() とは異なり、比較は値ではなくキー名に基づいて行われます。 array_diff_uassoc() 関数は、ユーザー定義のコールバック関数を使用してインデックス チェックを行い、2 つ以上の配列間の差分を計算します。 array1 の値を含むが、他のパラメータ配列には含まれない配列を返します。 array_diff_key() 関数は、比較された配列内にあるが他の引数配列には含まれていないすべてのキーを含む配列を返します。 array_diff_assoc() 関数は 2 つの配列の差分配列を返します。この配列には、比較対象の配列内にあるが、他の引数配列には含まれていないすべてのキーと値が含まれます。 array_diff() 関数は 2 つの配列の差分配列を返します。この配列には、比較対象の配列内にあるが、他の引数配列には含まれていないすべてのキーが含まれます。 array_count_values() 関数は、配列内のすべての値の出現数をカウントするために使用されます。 array_combine() 関数は 2 つの配列を結合して新しい配列を作成します。一方の配列はキー名で、もう一方の配列の値はキー値です。 array_chunk() 関数は、配列を新しい配列チャンクに分割します。 array_change_key_case() 関数は、配列のすべての KEY を大文字または小文字に変換します。 array() は、キーと値を含む配列を作成します。配列の指定時にキーを省略した場合は、0 から始まり 1 ずつ増加する整数キーが生成されます。 |
一般的に使用される関数の例をいくつか示します。将来的には誰でも使えること間違いなしです! (この記事は継続的に更新されます。また、熱心なネチズンが知識の断片を提供して、誰もが進歩し、一緒に学ぶことができることを願っています)
1. UTF-8 でエンコードされた文字列をインターセプトする関数
1 /** 2 * 截取UTF-8编码下字符串的函数 3 * 4 * @param string $str 被截取的字符串 5 * @param int $length 截取的长度 6 * @param bool $append 是否附加省略号 7 * 8 * @return string 9 */10 function sub_str($str, $length = 0, $append = true)11 {12 $str = trim($str);//去掉前后的空格13 $strlength = strlen($str);14 15 if ($length == 0 || $length >= $strlength)16 {17 return $str;18 }19 elseif ($length < 0)20 {21 $length = $strlength + $length;22 if ($length < 0)23 {24 $length = $strlength;25 }26 }27 28 if (function_exists('mb_substr'))29 {30 $newstr = mb_substr($str, 0, $length, EC_CHARSET);31 }32 elseif (function_exists('iconv_substr'))33 {34 $newstr = iconv_substr($str, 0, $length, EC_CHARSET);35 }36 else37 {38 //$newstr = trim_right(substr($str, 0, $length));39 $newstr = substr($str, 0, $length);40 }41 42 if ($append && $str != $newstr)43 {44 $newstr .= '...';45 }46 47 return $newstr;48 }
ログイン後にコピー
コードを表示
2. ユーザーの実際の IP アドレスを取得します
1 /** 2 * 获得用户的真实IP地址 3 * 4 * @access public 5 * @return string 6 */ 7 function real_ip() 8 { 9 static $realip = NULL;10 11 if ($realip !== NULL)12 {13 return $realip;14 }15 16 if (isset($_SERVER))17 {18 if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))19 {20 $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);21 22 /* 取X-Forwarded-For中第一个非unknown的有效IP字符串 */23 foreach ($arr AS $ip)24 {25 $ip = trim($ip);26 27 if ($ip != 'unknown')28 {29 $realip = $ip;30 31 break;32 }33 }34 }35 elseif (isset($_SERVER['HTTP_CLIENT_IP']))36 {37 $realip = $_SERVER['HTTP_CLIENT_IP'];38 }39 else40 {41 if (isset($_SERVER['REMOTE_ADDR']))42 {43 $realip = $_SERVER['REMOTE_ADDR'];44 }45 else46 {47 $realip = '0.0.0.0';48 }49 }50 }51 else52 {53 if (getenv('HTTP_X_FORWARDED_FOR'))54 {55 $realip = getenv('HTTP_X_FORWARDED_FOR');56 }57 elseif (getenv('HTTP_CLIENT_IP'))58 {59 $realip = getenv('HTTP_CLIENT_IP');60 }61 else62 {63 $realip = getenv('REMOTE_ADDR');64 }65 }66 67 preg_match("/[\d\.]{7,15}/", $realip, $onlineip);68 $realip = !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0';69 70 return $realip;71 }
ログイン後にコピー
コードを表示
3. 文字列の長さを計算します (漢字は 2 文字として計算されます)
1 /** 2 * 计算字符串的长度(汉字按照两个字符计算) 3 * 4 * @param string $str 字符串 5 * 6 * @return int 7 */ 8 function str_len($str) 9 {10 $length = strlen(preg_replace('/[\x00-\x7F]/', '', $str));11 12 if ($length)13 {14 return strlen($str) - $length + intval($length / 3) * 2;15 }16 else17 {18 return strlen($str);19 }20 }
ログイン後にコピー
コードを表示
4ユーザー操作の取得 システム改行
1 /** 2 * 获得用户操作系统的换行符 3 * 4 * @access public 5 * @return string 6 */ 7 function get_crlf() 8 { 9 /* LF (Line Feed, 0x0A, \N) 和 CR(Carriage Return, 0x0D, \R) */10 if (stristr($_SERVER['HTTP_USER_AGENT'], 'Win'))11 {12 $the_crlf = '\r\n';13 }14 elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'Mac'))15 {16 $the_crlf = '\r'; // for old MAC OS17 }18 else19 {20 $the_crlf = '\n';21 }22 23 return $the_crlf;24 }
ログイン後にコピー
コードの表示
5. メールの送信
1 /** 2 * 邮件发送 3 * 4 * @param: $name[string] 接收人姓名 5 * @param: $email[string] 接收人邮件地址 6 * @param: $subject[string] 邮件标题 7 * @param: $content[string] 邮件内容 8 * @param: $type[int] 0 普通邮件, 1 HTML邮件 9 * @param: $notification[bool] true 要求回执, false 不用回执 10 * 11 * @return boolean 12 */ 13 function send_mail($name, $email, $subject, $content, $type = 0, $notification=false) 14 { 15 /* 如果邮件编码不是EC_CHARSET,创建字符集转换对象,转换编码 */ 16 if ($GLOBALS['_CFG']['mail_charset'] != EC_CHARSET) 17 { 18 $name = ecs_iconv(EC_CHARSET, $GLOBALS['_CFG']['mail_charset'], $name); 19 $subject = ecs_iconv(EC_CHARSET, $GLOBALS['_CFG']['mail_charset'], $subject); 20 $content = ecs_iconv(EC_CHARSET, $GLOBALS['_CFG']['mail_charset'], $content); 21 $shop_name = ecs_iconv(EC_CHARSET, $GLOBALS['_CFG']['mail_charset'], $GLOBALS['_CFG']['shop_name']); 22 } 23 $charset = $GLOBALS['_CFG']['mail_charset']; 24 /** 25 * 使用mail函数发送邮件 26 */ 27 if ($GLOBALS['_CFG']['mail_service'] == 0 && function_exists('mail')) 28 { 29 /* 邮件的头部信息 */ 30 $content_type = ($type == 0) ? 'Content-Type: text/plain; charset=' . $charset : 'Content-Type: text/html; charset=' . $charset; 31 $headers = array(); 32 $headers[] = 'From: "' . '=?' . $charset . '?B?' . base64_encode($shop_name) . '?='.'" <' . $GLOBALS['_CFG']['smtp_mail'] . '>'; 33 $headers[] = $content_type . '; format=flowed'; 34 if ($notification) 35 { 36 $headers[] = 'Disposition-Notification-To: ' . '=?' . $charset . '?B?' . base64_encode($shop_name) . '?='.'" <' . $GLOBALS['_CFG']['smtp_mail'] . '>'; 37 } 38 39 $res = @mail($email, '=?' . $charset . '?B?' . base64_encode($subject) . '?=', $content, implode("\r\n", $headers)); 40 41 if (!$res) 42 { 43 $GLOBALS['err'] ->add($GLOBALS['_LANG']['sendemail_false']); 44 45 return false; 46 } 47 else 48 { 49 return true; 50 } 51 } 52 /** 53 * 使用smtp服务发送邮件 54 */ 55 else 56 { 57 /* 邮件的头部信息 */ 58 $content_type = ($type == 0) ? 59 'Content-Type: text/plain; charset=' . $charset : 'Content-Type: text/html; charset=' . $charset; 60 $content = base64_encode($content); 61 62 $headers = array(); 63 $headers[] = 'Date: ' . gmdate('D, j M Y H:i:s') . ' +0000'; 64 $headers[] = 'To: "' . '=?' . $charset . '?B?' . base64_encode($name) . '?=' . '" <' . $email. '>'; 65 $headers[] = 'From: "' . '=?' . $charset . '?B?' . base64_encode($shop_name) . '?='.'" <' . $GLOBALS['_CFG']['smtp_mail'] . '>'; 66 $headers[] = 'Subject: ' . '=?' . $charset . '?B?' . base64_encode($subject) . '?='; 67 $headers[] = $content_type . '; format=flowed'; 68 $headers[] = 'Content-Transfer-Encoding: base64'; 69 $headers[] = 'Content-Disposition: inline'; 70 if ($notification) 71 { 72 $headers[] = 'Disposition-Notification-To: ' . '=?' . $charset . '?B?' . base64_encode($shop_name) . '?='.'" <' . $GLOBALS['_CFG']['smtp_mail'] . '>'; 73 } 74 75 /* 获得邮件服务器的参数设置 */ 76 $params['host'] = $GLOBALS['_CFG']['smtp_host']; 77 $params['port'] = $GLOBALS['_CFG']['smtp_port']; 78 $params['user'] = $GLOBALS['_CFG']['smtp_user']; 79 $params['pass'] = $GLOBALS['_CFG']['smtp_pass']; 80 81 if (empty($params['host']) || empty($params['port'])) 82 { 83 // 如果没有设置主机和端口直接返回 false 84 $GLOBALS['err'] ->add($GLOBALS['_LANG']['smtp_setting_error']); 85 86 return false; 87 } 88 else 89 { 90 // 发送邮件 91 if (!function_exists('fsockopen')) 92 { 93 //如果fsockopen被禁用,直接返回 94 $GLOBALS['err']->add($GLOBALS['_LANG']['disabled_fsockopen']); 95 96 return false; 97 } 98 99 include_once(ROOT_PATH . 'includes/cls_smtp.php');100 static $smtp;101 102 $send_params['recipients'] = $email;103 $send_params['headers'] = $headers;104 $send_params['from'] = $GLOBALS['_CFG']['smtp_mail'];105 $send_params['body'] = $content;106 107 if (!isset($smtp))108 {109 $smtp = new smtp($params);110 }111 112 if ($smtp->connect() && $smtp->send($send_params))113 {114 return true;115 }116 else117 {118 $err_msg = $smtp->error_msg();119 if (empty($err_msg))120 {121 $GLOBALS['err']->add('Unknown Error');122 }123 else124 {125 if (strpos($err_msg, 'Failed to connect to server') !== false)126 {127 $GLOBALS['err']->add(sprintf($GLOBALS['_LANG']['smtp_connect_failure'], $params['host'] . ':' . $params['port']));128 }129 else if (strpos($err_msg, 'AUTH command failed') !== false)130 {131 $GLOBALS['err']->add($GLOBALS['_LANG']['smtp_login_failure']);132 }133 elseif (strpos($err_msg, 'bad sequence of commands') !== false)134 {135 $GLOBALS['err']->add($GLOBALS['_LANG']['smtp_refuse']);136 }137 else138 {139 $GLOBALS['err']->add($err_msg);140 }141 }142 143 return false;144 }145 }146 }147 }
ログイン後にコピー
コードの表示
1 /** 2 * 获得服务器上的 GD 版本 3 * 4 * @access public 5 * @return int 可能的值为0,1,2 6 */ 7 function gd_version() 8 { 9 include_once(ROOT_PATH . 'includes/cls_image.php');10 11 return cls_image::gd_version();12 }13 14 if (!function_exists('file_get_contents'))15 {16 /**17 * 如果系统不存在file_get_contents函数则声明该函数18 *19 * @access public20 * @param string $file21 * @return mix22 */23 function file_get_contents($file)24 {25 if (($fp = @fopen($file, 'rb')) === false)26 {27 return false;28 }29 else30 {31 $fsize = @filesize($file);32 if ($fsize)33 {34 $contents = fread($fp, $fsize);35 }36 else37 {38 $contents = '';39 }40 fclose($fp);41 42 return $contents;43 }44 }45 }46 47 if (!function_exists('file_put_contents'))48 {49 define('FILE_APPEND', 'FILE_APPEND');50 51 /**52 * 如果系统不存在file_put_contents函数则声明该函数53 *54 * @access public55 * @param string $file56 * @param mix $data57 * @return int58 */59 function file_put_contents($file, $data, $flags = '')60 {61 $contents = (is_array($data)) ? implode('', $data) : $data;62 63 if ($flags == 'FILE_APPEND')64 {65 $mode = 'ab+';66 }67 else68 {69 $mode = 'wb';70 }71 72 if (($fp = @fopen($file, $mode)) === false)73 {74 return false;75 }76 else77 {78 $bytes = fwrite($fp, $contents);79 fclose($fp);80 81 return $bytes;82 }83 }84 }85 86 if (!function_exists('floatval'))87 {88 /**89 * 如果系统不存在 floatval 函数则声明该函数90 *91 * @access public92 * @param mix $n93 * @return float94 */95 function floatval($n)96 {97 return (float) $n;98 }99 }
ログイン後にコピー
コードの表示
7. ファイルまたはディレクトリ権限チェック関数
re
1 /** 2 * 文件或目录权限检查函数 3 * 4 * @access public 5 * @param string $file_path 文件路径 6 * @param bool $rename_prv 是否在检查修改权限时检查执行rename()函数的权限 7 * 8 * @return int 返回值的取值范围为{0 <= x <= 15},每个值表示的含义可由四位二进制数组合推出。 9 * 返回值在二进制计数法中,四位由高到低分别代表 10 * 可执行rename()函数权限、可对文件追加内容权限、可写入文件权限、可读取文件权限。 11 */ 12 function file_mode_info($file_path) 13 { 14 /* 如果不存在,则不可读、不可写、不可改 */ 15 if (!file_exists($file_path)) 16 { 17 return false; 18 } 19 20 $mark = 0; 21 22 if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') 23 { 24 /* 测试文件 */ 25 $test_file = $file_path . '/cf_test.txt'; 26 27 /* 如果是目录 */ 28 if (is_dir($file_path)) 29 { 30 /* 检查目录是否可读 */ 31 $dir = @opendir($file_path); 32 if ($dir === false) 33 { 34 return $mark; //如果目录打开失败,直接返回目录不可修改、不可写、不可读 35 } 36 if (@readdir($dir) !== false) 37 { 38 $mark ^= 1; //目录可读 001,目录不可读 000 39 } 40 @closedir($dir); 41 42 /* 检查目录是否可写 */ 43 $fp = @fopen($test_file, 'wb'); 44 if ($fp === false) 45 { 46 return $mark; //如果目录中的文件创建失败,返回不可写。 47 } 48 if (@fwrite($fp, 'directory access testing.') !== false) 49 { 50 $mark ^= 2; //目录可写可读011,目录可写不可读 010 51 } 52 @fclose($fp); 53 54 @unlink($test_file); 55 56 /* 检查目录是否可修改 */ 57 $fp = @fopen($test_file, 'ab+'); 58 if ($fp === false) 59 { 60 return $mark; 61 } 62 if (@fwrite($fp, "modify test.\r\n") !== false) 63 { 64 $mark ^= 4; 65 } 66 @fclose($fp); 67 68 /* 检查目录下是否有执行rename()函数的权限 */ 69 if (@rename($test_file, $test_file) !== false) 70 { 71 $mark ^= 8; 72 } 73 @unlink($test_file); 74 } 75 /* 如果是文件 */ 76 elseif (is_file($file_path)) 77 { 78 /* 以读方式打开 */ 79 $fp = @fopen($file_path, 'rb'); 80 if ($fp) 81 { 82 $mark ^= 1; //可读 001 83 } 84 @fclose($fp); 85 86 /* 试着修改文件 */ 87 $fp = @fopen($file_path, 'ab+'); 88 if ($fp && @fwrite($fp, '') !== false) 89 { 90 $mark ^= 6; //可修改可写可读 111,不可修改可写可读011... 91 } 92 @fclose($fp); 93 94 /* 检查目录下是否有执行rename()函数的权限 */ 95 if (@rename($test_file, $test_file) !== false) 96 { 97 $mark ^= 8; 98 } 99 }100 }101 else102 {103 if (@is_readable($file_path))104 {105 $mark ^= 1;106 }107 108 if (@is_writable($file_path))109 {110 $mark ^= 14;111 }112 }113 114 return $mark;115 }116 117 function log_write($arg, $file = '', $line = '')118 {119 if ((DEBUG_MODE & 4) != 4)120 {121 return;122 }123 124 $str = "\r\n-- ". date('Y-m-d H:i:s'). " --------------------------------------------------------------\r\n";125 $str .= "FILE: $file\r\nLINE: $line\r\n";126 127 if (is_array($arg))128 {129 $str .= '$arg = array(';130 foreach ($arg AS $val)131 {132 foreach ($val AS $key => $list)133 {134 $str .= "'$key' => '$list'\r\n";135 }136 }137 $str .= ")\r\n";138 }139 else140 {141 $str .= $arg;142 }143 144 file_put_contents(ROOT_PATH . DATA_DIR . '/log.txt', $str);145 }
ログイン後にコピー
コードを表示
8. 対象のフォルダーが存在するかどうかを確認し、存在しない場合は、ディレクトリが自動的にこのディレクトリを作成します
コードを表示
9. コードを再帰的に実行します
10.変数内の特殊文字をエスケープする
1 /** 2 * 检查目标文件夹是否存在,如果不存在则自动创建该目录 3 * 4 * @access public 5 * @param string folder 目录路径。不能使用相对于网站根目录的URL 6 * 7 * @return bool 8 */ 9 function make_dir($folder)10 {11 $reval = false;12 13 if (!file_exists($folder))14 {15 /* 如果目录不存在则尝试创建该目录 */16 @umask(0);17 18 /* 将目录路径拆分成数组 */19 preg_match_all('/([^\/]*)\/?/i', $folder, $atmp);20 21 /* 如果第一个字符为/则当作物理路径处理 */22 $base = ($atmp[0][0] == '/') ? '/' : '';23 24 /* 遍历包含路径信息的数组 */25 foreach ($atmp[1] AS $val)26 {27 if ('' != $val)28 {29 $base .= $val;30 31 if ('..' == $val || '.' == $val)32 {33 /* 如果目录为.或者..则直接补/继续下一个循环 */34 $base .= '/';35 36 continue;37 }38 }39 else40 {41 continue;42 }43 44 $base .= '/';45 46 if (!file_exists($base))47 {48 /* 尝试创建目录,如果创建失败则继续循环 */49 if (@mkdir(rtrim($base, '/'), 0777))50 {51 @chmod($base, 0777);52 $reval = true;53 }54 }55 }56 }57 else58 {59 /* 路径已经存在。返回该路径是不是一个目录 */60 $reval = is_dir($folder);61 }62 63 clearstatcache();64 65 return $reval;66 }
ログイン後にコピー
コードを表示する
11. オブジェクトのメンバー変数または配列内の特殊文字を変換する
1 /** 2 * 获得系统是否启用了 gzip 3 * 4 * @access public 5 * 6 * @return boolean 7 */ 8 function gzip_enabled() 9 {10 static $enabled_gzip = NULL;11 12 if ($enabled_gzip === NULL)13 {14 $enabled_gzip = ($GLOBALS['_CFG']['enable_gzip'] && function_exists('ob_gzhandler'));15 }16 17 return $enabled_gzip;18 }
ログイン後にコピー
コードを表示する
12. 変数内の特殊文字を再帰的に削除する
1 /** 2 * 递归方式的对变量中的特殊字符进行转义 3 * 4 * @access public 5 * @param mix $value 6 * 7 * @return mix 8 */ 9 function addslashes_deep($value)10 {11 if (empty($value))12 {13 return $value;14 }15 else16 {17 return is_array($value) ? array_map('addslashes_deep', $value) : addslashes($value);18 }19 }
ログイン後にコピー
コードを表示
13. 全角の数字、文字、スペース、または「%+-()」文字を含む文字列を対応する半角文字に変換します
re re
1 /** 2 * 将对象成员变量或者数组的特殊字符进行转义 3 * 4 * @access public 5 * @param mix $obj 对象或者数组 6 * @author Xuan Yan 7 * 8 * @return mix 对象或者数组 9 */10 function addslashes_deep_obj($obj)11 {12 if (is_object($obj) == true)13 {14 foreach ($obj AS $key => $val)15 {16 $obj->$key = addslashes_deep($val);17 }18 }19 else20 {21 $obj = addslashes_deep($obj);22 }23 24 return $obj;25 }
ログイン後にコピー
コードを表示
14、フィルタリングユーザーの基本データ入力、スクリプト攻撃の防止
コードの表示
15、ファイルタイプの確認
🎜 🎜 🎜 🎜 🎜 🎜 🎜 🎜 🎜 🎜 function check_file_type($filename, $realname = '', $limit_ext_types = '') 11 { 12 if ($realname) 13 { 14 $extname = strto lower(substr($realname, strrpos($realname, '.') + 1 )); 16 else 17 { 18 $extname = strto lower(substr($filename, strrpos($filename, '.') + 1)); 19 } 20 21 if ($limit_ext_types && stristr($limit_ext_types, '| ' . $extname . '|' ) === false) 22 { 23 return ''; 24 } 25 26 $str = $format = ''; 27 28 $file = @fopen($filename, 'rb'); 30 { 31 $str = @fread($file, 0x400); // 最初の 1024 バイトを読み取ります 32 @fclose($file) 33 } 34 else 35 { 36 if (stristr($ filename, ROOT_PATH) === false) 37 { 38 if ($extname == 'jpg' || $extname == 'jpeg' || $extname == 'gif' || $extname == 'png' || $extname == 'doc' || 39 $extname == 'xls' || $extname == 'zip' || $extname == 'ppt' || $extname == 'pdf' || $extname == 'mid' || $extname == 'bmp' | | $extname == 'chm' || $extname == 'sql' ||
ログイン後にコピー