[PHP] 自分の主要な記事のまとめ

# 告知

**2016/06/18 更新**
最近この記事もかなりストックされるようになってきたので選定し直そうかと思います．

- 特に重要度の高いものは**太字**にします
  - その中でも特にイチオシのものは更に**<ins>下線</ins>**を引きます
- 現状に合わない内容を含むと予想されるものには :warning: を記載します
- 派生記事は子要素として表現します
- PHPに関係ないものも少し混じってます

# 外部入力の利用

- **<ins>[$_GET, $_POSTなどを受け取る際の処理](http://qiita.com/mpyw/items/2f9955db1c02eeef43ea)</ins>**
  - [「何故htmlspecialcharsを通すのか？」を一言でどうぞ](http://qiita.com/mpyw/items/19e6fed835ccdbcb0d6d)
  - **[PHPで各種バリデーション](http://qiita.com/mpyw/items/346f1789ad0e1b969ebc)** :warning:
  - [PHP7で流行って欲しいリクエストパラメータの受け取り方](http://qiita.com/mpyw/items/25abc3e51fddc85e0ec0)

# ユーザ認証およびプロトコル

- **<ins>[リクエストパラメータ・セッションに関するまとめ](http://qiita.com/mpyw/items/7852213f478e8c5a2802)</ins>**
  - **[ぼくのかんがえたさいきょうのsession_start](http://qiita.com/mpyw/items/7f4772e4d4d360fc100c)**
- **[PHPを利用したBasic認証の仕組み](http://qiita.com/mpyw/items/dc2cb3632370389d700e)**
- **[PHPによる簡単なログイン認証いろいろ](http://qiita.com/mpyw/items/bb8305ba196f5105be15)**
  - [PHP+JavaScriptでクロスオリジンなシングルサインオン認証](http://qiita.com/mpyw/items/904d0692b4594265dbd4)
- **[リダイレクト時に利用すべきHTTPステータスコード](http://qiita.com/mpyw/items/4eb132f46b9977eb484f)**
- [gzip圧縮されたデータの展開方法いろいろ](http://qiita.com/mpyw/items/eb6ef5e444c2250361b5)
- [HTTP/1.0, HTTP/1.1, HTTP/2, Server-Sent Events, WebSocket におけるデータの送信単位](http://qiita.com/mpyw/items/664390c945af6c035547)

# メール

- **[PHP7.1未満お断り！最新PHPメーラーライブラリ Genkgo/Mail を試してみる](https://qiita.com/mpyw/items/88161f9a809e063823c6)**

# データベース

- **<ins>[PHPでデータベースに接続するときのまとめ](http://qiita.com/mpyw/items/b00b72c5c95aac573b71)</ins>**
  - **[PDOフェッチパターン大全](http://qiita.com/mpyw/items/d52351bd1a8068344cc2)**
  - [プレースホルダで「= ?」と「IS NULL」に同時に対応する方法](http://qiita.com/mpyw/items/cb7ca19284afc4e2969d)
- **[OFFSETを使わない高速なページネーションの実現](http://qiita.com/mpyw/items/07c03600c2e38e91415e)**

# ファイル処理

- **<ins>[ファイルアップロードの例外処理はこれぐらいしないと気が済まない](http://qiita.com/mpyw/items/939964377766a54d4682)</ins>**
  - [is_uploaded_file() / move_uploaded_file() の必要性？](http://qiita.com/mpyw/items/db12ce86b15f3b0b3c19)
  - [画像アップロード処理サンプル集](http://qiita.com/mpyw/items/73ee77a9535cc65eff1e)
  - [ディレクトリ作成を許可してファイルをアップロード](http://qiita.com/mpyw/items/695f443674aef8d349c3)
- [User-Agent分岐無しに日本語ファイル名でファイルをダウンロードさせる (完全版)](http://qiita.com/mpyw/items/202bef4349bfdc7e5c13)
- **[ファイルオープンモードに関するマニュアルの記述は間違っている](http://qiita.com/mpyw/items/3adcec3c66e515895b08)**

# 正規表現

- **[私の正規表現におけるポリシー](http://qiita.com/mpyw/items/8dd5378cb01c877e1f7b)**
- **[「RFC3986定義の厳密なHTTP URIの正規表現」をPHP用に最適化](http://qiita.com/mpyw/items/1e422848030fcde0f29a)**
- [言語別：パスワード向けの正規表現](http://qiita.com/mpyw/items/886218e7b418dfed254b)
- [UTF-8を想定して、不正なバイト列が含まれていないかを1行でチェックする](http://qiita.com/mpyw/items/f0628b35a368fa468775)


# 言語構造および関数やクラスの詳細

- **[<値型>と<参照型>、<値渡し>と<参照渡し>について実行例を出す（PHP編）](http://qiita.com/mpyw/items/bd38da57837d35214aae)**
- **[マルチバイト文字を扱う際に気をつけること](http://qiita.com/mpyw/items/a8dba1b80fe68523b8eb)**
- **[isset, empty, is_null の動作まとめ](http://qiita.com/mpyw/items/51bf42fe1ad8a7e535aa)**
- **[配列結合演算子, array_merge, array_replace を徹底比較](http://qiita.com/mpyw/items/578e1a14879e679d2141)**
- **[お前は PHP 7 における Fatal Error / Catchable Fatal Error / Error / ErrorException / Exception の違いを言えるか？](http://qiita.com/mpyw/items/c69da9589e72ceac470c)**
- [「!== false」 V.S. 「false !==」](http://qiita.com/mpyw/items/b097da196baf47e58ed9)
- [htmlspecialchars関数やhtmlentities関数で使用されるフラグの検証](http://qiita.com/mpyw/items/939c526dd5de6619b565)
- [PHPでcURLのクソ仕様 "@" を回避する](http://qiita.com/mpyw/items/c2d2f9cf67072e926721)
- [ファイルシステム関数とシンボリックリンクの関係](http://qiita.com/mpyw/items/78bb9ae21cc4629f80ca)  
- [日付時刻関連のクラスを活用しよう](http://qiita.com/mpyw/items/e42fa173e5a26220a785)
  - [日付時刻関連で使われる書式の調査](http://qiita.com/mpyw/items/55df438d12ef8e94dbc5)
  - ["厳密に" 日付時刻のフォーマットをチェックする](http://qiita.com/mpyw/items/d8c12ced65a1cd87c630)

# DOM・XML

- **[PHPネイティブのDOMによるスクレイピング入門](http://qiita.com/mpyw/items/c0312271819baee09132)**
- [「AからBまでの間に存在する全ての兄弟ノード」をXPathで表現する](http://qiita.com/mpyw/items/c71887538151f205bafa)
- [SimpleXMLの名前空間・CDATAセクション・整形出力](http://qiita.com/mpyw/items/07e35d551487bc971263)

# Twitter API 

- **[ライブラリに頼らないTwitterAPI入門](http://qiita.com/mpyw/items/b59d3ce03f08be126000)**
- [TwitterAPIのアップロード系エンドポイントまとめ (140秒動画対応)](http://qiita.com/mpyw/items/7bedf8c23de286cef0f9)

# アルゴリズム

- [array_randやshuffleの乱択精度を改善しよう](http://qiita.com/mpyw/items/c644dab7d067626fc629)
- [Box-Muller法を用いて正規分布に従う分配を行う](http://qiita.com/mpyw/items/19c8c4a0eee615a19a87)
- [[マルチバイト対応] レーベンシュタイン距離を求める](http://qiita.com/mpyw/items/2b636827730e06c71e3d)
- [array_rand関数の結果を日付ごとに一意に固定する](http://qiita.com/mpyw/items/ab6e2cf5f64b8a9f3344)
  - [PHPでTwitterの診断メーカーで使われているような「入力値に依存する乱数」を生成する方法](http://qiita.com/mpyw/items/6cb2db9101100da6c7ad)
- [整数配列の連続区間をハイフンで連結してグループ化する定番のアレ](http://qiita.com/mpyw/items/0fdffd3c70b3abd802f5)
- [PHPで直積計算](http://qiita.com/mpyw/items/e0b6e0842a460b3f901f)
- [最もシンプルなカレンダー生成ロジック](http://qiita.com/mpyw/items/0a475bc4891a3a2940e8) :warning:

# 絶賛放置中

- :warning: :warning: :warning: [【PHP入門講座】 目次](http://qiita.com/mpyw/items/752e19a578cf7d96fc5f) :warning: :warning: :warning:
- :warning: :warning: :warning: [PHPオブジェクト指向入門](http://qiita.com/mpyw/items/41230bec5c02142ae691) :warning: :warning: :warning:

# その他

- <ins>**[CSS影付き吹き出し位置12パターン](http://qiita.com/mpyw/items/6fa3965271f7d7f42be1)**</ins>
- <ins>**[たぶんこれが一番分かりやすいと思います React + Redux のフロー図解](http://qiita.com/mpyw/items/a816c6380219b1d5a3bf)**</ins>
- <ins>**[moducks で Redux-Saga の冗長さと戦う](http://qiita.com/mpyw/items/8a58dba95bc696947813)**</ins>
- **[日本語のコードで理解するPromise](http://qiita.com/mpyw/items/3e811d21a0877a51b8bd)**
- **[セキュアな掲示板を最小構成から作る](http://qiita.com/mpyw/items/2c54d0ea95423bd88f60)** :warning: 
- **[JavaScript(jQuery)からPHPのAPIを利用する](http://qiita.com/mpyw/items/62e6e415f86eb30a5ff4)** :warning: 
- **[同一IPによる連続アクションを一定時間ブロックする](http://qiita.com/mpyw/items/5f32d2f1c9c6c52f9807)**
- **[今cURLで並列処理を書くならジェネレータを使え！](http://qiita.com/mpyw/items/44a001101914450257dc)**
- [Mac版Excelと互換性のあるCSVファイルを出来るだけ効率よく作成する](http://qiita.com/mpyw/items/2795bef3ed561f4cf4e9) :warning:
- [mb_strimwidth関数なんて必要なかった（？）](http://qiita.com/mpyw/items/e91aaec88880cb5ef37a)
- [try～catch使うほどじゃないけどgotoは嫌だってときのための便利な書き方](http://qiita.com/mpyw/items/1dd65881368632dc0fc0)
- [トレイトによるアクセサの自動実装](http://qiita.com/mpyw/items/8d3a4b38b0ef3ca05098)
- [リモートファイルのサイズを取得する](http://qiita.com/mpyw/items/8410c6f426f9aa1f2a9a)
- [build_url (parse_urlの逆)](http://qiita.com/mpyw/items/5a6c8f2af4b4e4ebf4ad)
- [realpath関数の相対パス取得版](http://qiita.com/mpyw/items/bc9836dc3d7a15d4a632)
- [標準入力から安全に文字列を受け取る方法いろいろ](http://qiita.com/mpyw/items/aff12a6ff2c7726ed1d8)
- [SCSSで & （アンパサンド）を使ってアレを書きたい](http://qiita.com/mpyw/items/9c494c137d14e3e04fd6)