1. PHP のいくつかの入力関数 echo、print()、print_r()、printf()、sprintf()、var_dump() の違い。
1.echo: 関数ではなくステートメントです。戻り値がなく、括弧なしで複数の変数値を出力できます。配列とオブジェクトは出力できません。印刷できるのは単純な型 (int、string など) のみです。
2.print: 関数ではなくステートメントです。戻り値は 1 です。出力できるのは 1 つの変数だけです。必ずしも括弧を必要とするわけではありません。単純な型のみを出力できます。 int、string など);
3.print_r(): 配列を出力する際に複合型(string、int、float、array、objectなど)を出力できる関数です、構造体で表現され、print_r()はprint_r($str,true) を通じて使用されます。出力はされませんが、print_r によって処理された値が返されます;
4.printf(): テキストを整形して出力する関数です
を参照してください。5.sprintf(): printf()と似た関数ですが、印刷は行わず、書式設定されたテキストを返します(この関数は、書式設定された文字列を出力する代わりに変数に書き込みます)。その他はprintfと同じです。同じ;
6.var_dump(): 変数の内容と型、あるいは文字列の内容と型と長さを出力する関数です。
2. Cookieを無効にするセッションの使用方法、およびセッションの有効期限の方法と対応する機能を設定する方法:
1. URL を通じて値を渡し、URL にセッション ID を追加します (欠点: 純粋に静的なページのセッション ID は次のページに渡されないため、サイト全体に純粋に静的なページは存在できません);
2. フォームを非表示にして、フォームの非表示テキストボックスにセッションIDを入れてフォームと一緒に送信します(デメリット:直接ジャンプするタグなど、フォーム以外の場合には適用されません) ;
3. php.ini ファイルを直接設定し、php.ini ファイルの session.use.trans.sid = 0 を 1 に設定します。
4. セッション ID をファイル、データベースなどに保存し、クロスページ プロセス中に手動で呼び出します。
1.setCookie(session_name(),session_id(),time()+60,"/");
2.session_set_cookie_params(60);(セッションをCookieに保存);
注: php.ini の session.gc_probability / session.gc_divisor
三、ファイル内容を取得するPHPメソッド、対応する関数
1.file_get_contents() ファイルの内容を取得し(getメソッドとpostメソッドで取得可能)、ファイル全体を文字列に読み込みます;
2. fopen() を使用して URL を開き、get メソッドでコンテンツを取得します (fgets() 関数の助けを借りて);
3. fsockopen 関数を使用して URL (get メソッドと post メソッドで取得可能) を開き、get メソッドでヘッダーと本文を含む完全なデータを取得します。
4.curlライブラリを使用してコンテンツを取得するcurlライブラリを使用する前に、php.iniをチェックしてcurl拡張機能がオンになっているかどうかを確認する必要があります。
4. isset()、empty()、is_nullの違い1. 変数が未定義の場合、is_null()と「パラメータそのもの」を判定パラメータとして使用することはできず、通知警告エラーが報告されます。
2. Empty と isset は、まず変数が存在するかどうかを確認し、次に変数の値を検出します。そして is_null と「パラメータ自体」は変数値を直接チェックして null かどうかを確認するだけなので、変数が定義されていない場合はエラーが発生します。
3. isset(): nullかつ未定義の場合のみfalseを返す;
4. empty(): ""、0、"0"、NULL、FALSE、array()、未定義、すべて false を返します。
5. is_null(): null かどうかだけを判断し、定義されていない場合は警告を報告します6. 変数自体はパラメータとして使用され、empty() と一致しますが、未定義の変数を受け入れると警告が報告されます。
5. strlen()とmb_strlenの機能と違い
PHPではstrlenとmb_strlenは文字列の長さを調べる関数です
PHPの組み込み文字列長関数strlenは、中国語の文字列を正しく処理できません。文字列が占有するバイト数のみを取得します。 GB2312 の中国語エンコードの場合、strlen で取得される値は中国語の文字数の 2 倍ですが、UTF-8 エンコードされた中国語の場合は 3 倍になります (UTF-8 エンコードでは、1 つの中国語文字が 3 バイトを占有します)。
mb_strlen関数を使用すると、この問題をよりよく解決できます。 mb_strlen の使用法は strlen と似ていますが、文字エンコーディングを指定する 2 番目のオプションのパラメーターがある点が異なります。たとえば、UTF-8 文字列 $str の長さを取得するには、mb_strlen($str,'UTF-8') を使用できます。 2 番目のパラメータを省略した場合は、PHP の内部エンコーディングが使用されます。内部エンコーディングは、mb_internal_encoding() 関数を通じて取得できます。
クライアントがプロキシを使用すると、実際のIPアドレスを取得できなくなります