ブックマーク / qiita.com/rana_kualu (4)

  • 【PHP8.1】PHPで簡単に非同期処理を書けるようになる - Qiita

    PHPは長きにわたり同期的、すなわち、あらゆる処理を上から順に実行していくというスタイルを取ってきました。 しかしたとえば、複数のURLからデータを取ってきて結果をまとめたいといった場合、時間のかかるHTTPリクエストは同時に投げたいですよね。 この用途にはGuzzleというライブラリが存在し、これを使えば同時にリクエストを投げられます。 しかし、ではHTTPアクセスとDBアクセスを同時にやりたい場合は? 時間のかかる計算を裏でやりたい場合は? などと考え始めると、こういった個別のライブラリでは対処しきれません。 ということで汎用的な非同期処理をPHPで書けるようにするRFCが提出されました。 PHP RFC: Fibers Introduction 人類史上ほぼ全ての期間において、人々はPHPを同期的なコードとしてのみ書いてきました。 同期的に実行されるコードのみが存在し、そしてそれを同

    【PHP8.1】PHPで簡単に非同期処理を書けるようになる - Qiita
    Amigomr
    Amigomr 2021/03/21
    小数点以下第1位のバージョンアップで大きい機能をぶちこむ精神だけは変わってないんだな...
  • SJIS-macに変換したはずなのにSJIS-winになる - Qiita

    $utf8Str = "❶❷❸❹❺"; $sjisStr = mb_convert_encoding($utf8Str, 'SJIS-mac'); echo(mb_detect_encoding($sjisStr, ['UTF-8','SJIS-mac', 'SJIS-win', 'SJIS'])); // SJIS-win ← SJIS-macに変換したはずなのに、何故かSJIS-winと判定されてしまいます。 そもそもSJIS-macってなんだよって話ですが、単にMacJapaneseのエイリアスです。 従ってMacJapaneseと書いても同じく、正しく誤判定されます。 そしてコメント欄にThis is a bug in PHP's mbstring extension『mbstringエクステンションのバグじゃよ』という人が現れています。 間違ったコードを書いたときに自分のせいでは

    SJIS-macに変換したはずなのにSJIS-winになる - Qiita
    Amigomr
    Amigomr 2020/09/29
    “レビュアーとしてNikitaが現れる。” ここで思わず吹き出したわwww
  • Linuxカーネル、その29年の歴史レポート - Qiita

    Linuxカーネル開発の初期の議論は複数のMLでなされていたので、1997年以前の議論については断片的にしか存在していない。 集められた一部についてはhttp://lkml.iu.edu/hypermail/linux/で公開されているが、これにも抜けがあるので、当時のログを持っている人がいたら提供してほしい。 翻って5.8のMAINTAINERSは19033行もあり、そして1501人のメンテナがリストされている。 THE REST M: Linus Torvalds <torvalds@linux-foundation.org> L: linux-kernel@vger.kernel.org S: Buried alive in reporters Q: http://patchwork.kernel.org/project/LKML/list/ T: git git://git.ker

    Linuxカーネル、その29年の歴史レポート - Qiita
    Amigomr
    Amigomr 2020/09/16
    裏側の歴史 ≒ リーナスの成長記録
  • 【PHP8.0】もう`strpos($haystack, $needle)!==false`って書かなくていいんだ - Qiita

    PHP8.0】もう`strpos($haystack, $needle)!==false`って書かなくていいんだPHPrfc日語訳PHP8strpos ある文字列中に特定の文字列が存在するかを調べる方法としてstrposが存在します。 しかし、そもそもstrposは『ある文字列中で特定の文字列が何文字目に出てくるか』を調べる関数であり、第一に使用目的が異なる関数です。 そしてこちらも有名な話ですが、先頭が一致すると0が返ってくるので、緩やかな比較ではfalseと区別されません。 PHPのよくある落とし穴のひとつです。 if(strpos('放課後アトリエといろ', 'アトリエ')){ echo '"放課後アトリエといろ"には"アトリエ"が含まれる'; // 表示される } if(strpos('放課後アトリエといろ', '放課後')){ echo '"放課後アトリエといろ"には"放課後

    【PHP8.0】もう`strpos($haystack, $needle)!==false`って書かなくていいんだ - Qiita
    Amigomr
    Amigomr 2020/03/10
    たぶん書かれるだろうなーと思って、でも書きたかったから書いたの。マルチバイトでも問題なく動いてくれると期待してるけどどうだろう?
  • 1