PHP

スポンサーリンク
PHP

PHP Tips | 文字列処理:ログ・表示向け - デバッグ用 var_export 文字列化

「デバッグ用 var_export 文字列化」とは何をしたいのかデバッグしているとき、「この変数の中身、今どうなってるの?」って何度も思いますよね。配列、オブジェクト、ネストしたデータ構造……目で確認...
PHP

PHP Tips | 文字列処理:ログ・表示向け - 長文をログ向け短縮

なぜ「長文をログ向け短縮」する必要があるのか業務システムのログには、ときどき「とんでもなく長い文字列」が流れてきます。巨大な JSON、ユーザーの長文入力、外部 API のレスポンス全文などが典型です...
PHP

PHP Tips | 文字列処理:ログ・表示向け - ログ用 1 行整形

なぜ「ログ用 1 行整形」が必要なのかログって、本来は「あとから原因を追いやすくするための情報」ですよね。でも、何も考えずに文字列をそのまま error_log() に投げていると、こうなりがちです。...
PHP

PHP Tips | 文字列処理:ログ・表示向け - エラーメッセージ整形

なぜ「エラーメッセージ整形」が必要なのかエラーメッセージって、放っておくとすぐに「バラバラ」になります。同じようなエラーなのに、「必須です」「入力してください」「この項目は必須です」みたいに表現が揺れ...
PHP

PHP Tips | 文字列処理:ログ・表示向け - 表示安全文字列生成

「表示安全文字列生成」とは何をするものかここで言う「表示安全文字列」は、ざっくり言うとこういう文字列です。画面に出してもレイアウトが壊れない。ログに出してもビューアが変にならない。HTML やターミナ...
PHP

PHP Tips | 文字列処理:ログ・表示向け - 制御文字除去

なぜ「制御文字除去」が必要になるのか業務で外部システムやユーザー入力の文字列を扱っていると、ときどき「見えない変な文字」が紛れ込みます。コピー&ペーストしたテキスト、外部 API のレスポンス、古いシ...
PHP

PHP Tips | 文字列処理:ログ・表示向け - 伏字変換

「伏字変換」で何をしたいのか伏字変換は、「文字列の一部を別の文字(*や●など)に置き換える」ことです。目的はだいたい 2 つあります。1つ目は「見せたくない情報を隠す」こと。NG ワード、暴言、機密情...
PHP

PHP Tips | 文字列処理:ログ・表示向け - 表示用マスク(名前)

「表示用マスク(名前)」で何を守りたいのか名前も、メールや電話と同じく「個人を特定しやすい情報」です。でも業務では、こういうニーズがよく出てきます。ログや通知には「誰の処理か」は分かりたい。サポート画...
PHP

PHP Tips | 文字列処理:ログ・表示向け - 表示用マスク(電話)

「表示用マスク(電話)」で何を守りたいのか電話番号もメールと同じく、個人をかなり特定できる情報です。でも業務では、こういうニーズがよく出てきます。誰のレコードかは判別したい。ログや画面には「丸裸の番号...
PHP

PHP Tips | 文字列処理:ログ・表示向け - 表示用マスク(メール)

「表示用マスク(メール)」で何を守りたいのかメールアドレスは、個人情報のど真ん中です。でも業務では、ログや画面に「誰のことかは分かりたい」場面も多いですよね。ログに「ユーザーのメールアドレス」をそのま...
PHP

PHP Tips | 文字列処理:実務向け便利系 - Unicode 正規化

なぜ「Unicode 正規化」が実務で問題になるのか同じ「見た目」の文字でも、内部的には“別の文字列”として扱われてしまうことがあります。これが Unicode 正規化の話です。例えば、次の 2 つは...
PHP

PHP Tips | 文字列処理:実務向け便利系 - 文字列中の数値を数値化

「文字列中の数値を数値化」とは何をしたいのか業務システムでは、ユーザー入力や CSV から読み込んだ値が「文字列」として渡ってくることが多いです。"123"" 1,234 ""9876"(全角)見た目...
PHP

PHP Tips | 文字列処理:実務向け便利系 - 先頭ゼロ埋め

「先頭ゼロ埋め」で何をしたいのか先頭ゼロ埋めは、一言でいうと「数字や文字列を、決めた桁数になるように左側を 0 で埋める」ことです。社員番号を 000123 のように 6 桁でそろえたい。請求書番号を...
PHP

PHP Tips | 文字列処理:実務向け便利系 - 配列を改行文字列に変換

なぜ「配列を改行文字列に変換」したくなるのかさっきまでやっていた「複数行テキストを配列化」の逆方向が、今回の「配列を改行文字列に変換」です。例えば、こんな場面がよくあります。画面のテキストエリアに、配...
PHP

PHP Tips | 文字列処理:実務向け便利系 - 複数行テキストを配列化

なぜ「複数行テキストを配列化」するのか業務でよくあるのが、こんなテキストです。山田太郎佐藤花子鈴木一郎これを「1 行ずつ処理したい」「1 行ずつバリデーションしたい」「1 行ずつ DB に登録したい」...
PHP

PHP Tips | 文字列処理:実務向け便利系 - 改行を除去した1行化

なぜ「改行を除去した1行化」が必要になるのか業務で文字列を扱っていると、「中身はそのままでいいから、とにかく“1行の文字列”にしたい」という場面がよく出てきます。ログに出すときに、改行があると見づらい...
PHP

PHP Tips | 文字列処理:実務向け便利系 - JSON デコード(例外対応)

なぜ「JSON デコード(例外対応)」が必要なのか業務で JSON を扱うとき、ほぼ必ずやるのが「文字列 → 配列(オブジェクト)」への変換、つまり JSON デコードです。ここで怖いのは、「壊れた ...
PHP

PHP Tips | 文字列処理:実務向け便利系 - JSON 安全エンコード

「JSON 安全エンコード」で何を守りたいのかJSON 自体はただのデータ形式ですが、「どこに出すか」で話が一気に“セキュリティの話”になります。特に危険なのは、JSON をそのまま HTML や J...
PHP

PHP Tips | 文字列処理:実務向け便利系 - TSV 用エスケープ

なぜ「TSV 用エスケープ」が必要になるのかTSV は「Tab Separated Values」、区切り文字がカンマではなくタブ(\t)のテキスト形式です。CSV よりシンプルに見えますが、「そのま...
PHP

PHP Tips | 文字列処理:実務向け便利系 - CSV 用エスケープ

なぜ「CSV 用エスケープ」が必要になるのか業務で CSV を扱うとき、よくあるのが「Excel で開ける CSV を出したい」「システム間連携用に CSV を吐きたい」というパターンです。ここで雑に...
PHP

PHP Tips | 文字列処理:ランダム・生成 – CSRF トークン生成

まず「CSRF トークン生成」で何を守りたいのかCSRF トークンは、一言でいうと「フォーム送信が“本当にそのユーザーの意思で行われたものか”を確認するための秘密の合言葉」です。例えば、ユーザーがログ...
PHP

PHP Tips | 文字列処理:ランダム・生成 – ハッシュ検証

「ハッシュ検証」で何を確かめたいのかまず、「ハッシュ検証」という言葉のイメージから整理します。ハッシュ検証とは、ざっくり言うと、「今手元にある“生の値”が、保存されている“ハッシュ値”と本当に対応して...
PHP

PHP Tips | 文字列処理:ランダム・生成 – パスワード用ハッシュ生成

まず、「パスワード用ハッシュ生成」で何をしたいのかパスワード用ハッシュ生成の目的は一言でいうと、「パスワードそのものは絶対に保存せず、“検証にだけ使える形”で安全に保存する」ことです。ユーザーが入力し...
PHP

PHP Tips | 文字列処理:ランダム・生成 – salt 付きハッシュ

まず「salt 付きハッシュ」で何を守りたいのかsalt(ソルト)付きハッシュは、一言でいうと、「同じ値でも、ユーザーごと・レコードごとに違うハッシュ値にする仕組み」です。例えば、パスワード "pas...
PHP

PHP Tips | 文字列処理:ランダム・生成 – ハッシュ化(SHA-256)

そもそも「ハッシュ化(SHA-256)」って何をするもの?まず、「ハッシュ化」という言葉のイメージから整理します。ハッシュ化は、ざっくり言うとこういう変換です。入力: "hello"出力: "2cf2...
PHP

PHP Tips | 文字列処理:ランダム・生成 – 短縮 ID 生成

「短縮 ID 生成」で何をしたいのかイメージするまず、どんな場面で「短い ID」が欲しくなるかをイメージしてみましょう。URL 短縮サービスの「短いコード」人に読み上げやすい予約番号や受付番号画面上に...
PHP

PHP Tips | 文字列処理:ランダム・生成 – UUID v4 生成

UUID v4 ってそもそも何者?まずは「UUID v4」が何なのか、イメージから掴みましょう。よく見るこの形の文字列が UUID です。550e8400-e29b-41d4-a716-4466554...
PHP

PHP Tips | 文字列処理:ランダム・生成 – ワンタイムトークン生成

そもそも「ワンタイムトークン」とは何かまず、言葉のイメージをはっきりさせます。ワンタイムトークンは、ざっくり言うとこういうものです。一度きり、または短時間だけ有効な「秘密の合言葉」URL やフォームに...
PHP

PHP Tips | 文字列処理:ランダム・生成 – ランダム文字列生成(記号なし)

何のために「記号なしランダム文字列」を作るのかまず、どんな場面で使うかをイメージしましょう。URL パラメータに載せるトークンだけど、「+ や / などの記号は使いたくない」。ユーザーに口頭で伝えるコ...
PHP

PHP Tips | 文字列処理:ランダム・生成 – ランダム文字列生成(英数字)

何のために「ランダム英数字文字列」を作るのかまず、どんな場面で使うかをイメージしましょう。ユーザーごとの招待コード一時的なトークン(メール認証、パスワードリセット)ファイル名やディレクトリ名の衝突回避...
スポンサーリンク