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