一方で、難しい問題が 1 行のコードで解決できる場合もあります。
あなたが気づいていないかもしれないいくつかの優れた機能を以下に示します。
ip2long() 関数とlong2ip() 関数を使用して、IP アドレスを整数に変換し、データベースに保存します。この方法では、記憶領域がほぼ 4 分の 1 (char(15) の場合は 15 バイト、整数の場合は 4 バイト) に削減され、特定のアドレスが範囲ページ内にあるかどうかの計算が簡単になり、検索と並べ替えが高速になります (ただし、場合によっては少しだけ速くなります)。
電子メール アドレスを確認するときに、checkdnsrr() 関数を使用してドメイン名が存在するかどうかを確認します。この組み込み関数は、指定されたドメイン名が IP アドレスに解決できることを確認します。この関数に関する PHP ドキュメントのユーザー コメント セクションには、電子メール アドレスの有効性を検証する checkdnsrr() に基づく単純なユーザー定義関数が含まれています。この方法は、自分の電子メール アドレスが「joeuser@php.net」ではなく「joeuser@wwwphp.net」であると考えている人を捕まえる優れた方法です。
PHP 5 および MySQL 4.1 以降を使用している場合は、mysql_* シリーズの関数を放棄し、改良された mysqli_* シリーズの関数を使用することを検討してください。優れた機能は、プリペアド ステートメントを使用できることです。データベースを多用するサイトを管理している場合、クエリを高速化できます。いくつかの評価スコア。
三項演算子を愛することを学びましょう。
プロジェクトに再利用可能な部分があると思われる場合は、コード行を記述する前に、それが PEAR にすでに存在するかどうかを確認してください。 PHP プログラマの多くは、PEAR が優れたリソース ライブラリであることを知っていますが、そうではありません。このオンライン リソース ライブラリには、プログラムですぐに使用できる 400 を超える再利用可能なプログラム スニペットが含まれています。プロジェクトが本当に特殊でない限り、時間を節約するために PEAR パッケージをいつでも見つけることができます。 (PECLを参照)
highlight_file() を使用して、美しく整形されたソース コードを自動的に出力します。掲示板や IRC などでスクリプトに関するヘルプを探している場合、この機能は非常に便利です。もちろん、データベース接続情報やパスワードなどを誤って公開しないように注意してください。
error_reporting(0) 関数を使用して、機密性の高いエラー情報がユーザーに表示されないようにします。理想的には、公開サーバーは php.ini で完全に無効にする必要があります。ただし、共有 Web サーバーを使用していて、独自の php.ini ファイルがない場合、最善のオプションは error_reporting(0); を追加することです (または require_once() メソッドを使用します)。これにより、エラーが発生した場合に、機密性の高い SQL クエリとパス名が完全にブロックされます。
大きな文字列をデータベースに保存する前に、gzcompress() と gzuncompress() を使用して文字列を明示的に圧縮/解凍します。この PHP 組み込み関数は gzip アルゴリズムを使用し、通常のテキストを最大 90% 圧縮できます。 BLOB 型フィールドの読み取りまたは書き込みを行うたびに、これらの関数を使用します。唯一の例外は、全文検索が必要な場合です。
パラメータを「参照」で渡すことで関数から複数の戻り値を取得します。三項演算子と同様、このトリックは正式なプログラミングのトレーニングを受けたほとんどのプログラマーに知られています。しかし、Pascal よりも HTML の知識が豊富なプログラマーは、多かれ少なかれ、「return が 1 回しか使用できない場合に、関数から複数の値を返すにはどうすればよいですか?」という質問をしたことがあります。その答えは、変数の前に を追加することです。 「&」記号。「値」ではなく「参照」によって渡されます。
「マジック クオート」と SQL インジェクションの危険性を十分に理解してください。これを読んでいる開発者がすでに SQL インジェクションに精通していることを願っています。しかし、確かに理解するのが少し難しいため、ここにこれをリストします。この声明について聞いたことがない場合は、残りの時間をグーグルで調べて読んでください。