タグ

PHPに関するshunkeenのブックマーク (3)

  • 正規表現検索の効率化

    GMO NIKKOのT.Iです。 今回は当社のTRUE データフィードで使用している正規表現検索の効率化についての記事となります。 前提(背景と目的) まずは宣伝(笑) 当社公式サイトでは上記となっていますが、簡単にいうと ・クライアントからデータを預かる ・預かったデータを広告媒体毎のフォーマットの変換する ・変換したデータを指定された場所に送信する ということをやっています。 その中のデータの変換時に禁止文言が入ったデータを行ごと除外するということをやっています。 大量のデータに禁止文言が入っているかをチェックする必要があるのですが、 初期想定では精々10万件に対して100~1000個の禁止文言をチェックする程度(1億回程度)で十分と判断していました。 ですが運用後に禁止文言が3万を超えてしまい、チェック処理が10万件×3万=30億回のチェックを行う場合があり、処理時間がかなり長くなっ

    正規表現検索の効率化
    shunkeen
    shunkeen 2022/01/06
    仕様的には正規表現よりも狭い文字列探索アルゴリズムの範疇かも?正規表現エンジンがよしなにBitapとか、KMP法をやってたり、選言を並列化してたら爆速になってそう/複数検索だから、選ぶならラビン-カープか
  • 簡易ブラックジャックを作ってPHP8.1の列挙型ENUMを試す - Qiita

    はじめに 2021/11/25に PHP8.1 がリリースされました。 今回は8.1で追加された新機能の 列挙型ENUM を試してみたいと思います。 今回作ったもの ドキュメントにトランプの例が載っていたのでブラックジャックでも作ってみることにしました。 今回は 52枚のデッキを作る ことと ブラックジャックのカードの数え方 しか重要じゃないので肝心のブラックジャック部分はめちゃめちゃ雑に作りましたのでご容赦ください。 コード全体は長いのでページ下部に記載します。 ENUMについて ENUMについてはドキュメントなどの方がかなり詳細に書かれているので僕の方では作ったものの中で重要な部分のみ取り扱います。 52枚のデッキを作る ENUMはスカラー値をセットできます。全てのcaseでスカラー値を持つものをBacked Enumと呼び、読み取り専用のプロパティvalueを持ちます。関連するデータ

    簡易ブラックジャックを作ってPHP8.1の列挙型ENUMを試す - Qiita
  • PHPカンファレンス2021のオンライン開催を見て

    この記事は GMOアドマーケティング Advent Calendar 2021 3日目の記事です。 GMOアドマーケティングのK.Mです。 オンライン開催はYouTubeLiveにより実施され、ボランティアの方によりLive動画はセッション毎に分割されました。 それでは、個人的に良かったセッションを紹介します。 1.PHPで学ぶオブジェクト指向プログラミング入門 参加された小学生からも分かりやすいと言われており、とても理解しやすい説明でした。 個人的に刺激を受けたのは「愚者は経験に学び、賢者は歴史に学ぶ」 歴史を学べは進化の過程だけでなく、未来まで想像出来そう。 2.MySQLとインデックスとPHPer -PHP職でもMySQLを手懐けるために 難しい事を、初心者にわかり易く説明できる人ってあまり居ないと感じていますが、相手が得意な事や良く知っている事に極力合わせて説明すると、ここまで

    PHPカンファレンス2021のオンライン開催を見て
  • 1