タグ

PHPに関するnawo_rsのブックマーク (11)

  • [メモ] PHPのfile_get_contentsを、HTTPリクエストに使うときのTIPS ::ハブろぐ

    file_get_contentsにまつわるTIPS $res = file_get_contents('http://example.com'); file_get_contentsはローカルのファイルパスだけでなく、URLを入れることでHTTPリクエストを送信することもできます。しかし、その仕様は奥深く難解であり、TIPSが数多く存在する関数でもあります。今回はそんなfile_get_contentsにまつわるTIPSをまとめてみます。 PHP5.3.3で確認していますが、大まかな挙動は他の5.x系でもそんなに変わらないはず。 仕様的なこと 2xx, 3xx以外のレスポンスボディを取得しない HTTPステータスコードが204または304でなければレスポンスボディを含んでいる可能性があります。しかし、file_get_contentsは、2xx, 3xxのみ( それが204や304であっ

    [メモ] PHPのfile_get_contentsを、HTTPリクエストに使うときのTIPS ::ハブろぐ
  • 【PHP8.0】PHP8.0の新機能 - Qiita

    PHP8.2 / PHP8.1 / PHP8.0 / PHP7.4 2020/11/26に リリースされました 。 2020/08/04にPHP8.0がフィーチャーフリーズしました。 言語機能に関わるような機能の追加・変更が締め切られたということです。 今後はデバッグを繰り返しながら完成度を高めていき、2020/11/26にPHP8.0がリリースされる予定です。 というわけでPHP8.0で対応することが決まったRFCを見てみましょう。 RFC JIT 賛成50反対2で受理。 PHP8の目玉、JITです。 PHPをネイティブコードにコンパイルし、さらにコンパイルした結果を次のリクエストに使い回すことができます。 速度はOpcacheがオンの状態から平均的に1.3-1.5倍程度、さらにCPUバウンドな処理なら3倍以上という劇的な高速化が見込めます。 Opcache無しからだと、1分かかっていた

    【PHP8.0】PHP8.0の新機能 - Qiita
  • 【PHP8.0】非厳密な比較演算子`==`の挙動が今さら変更になる - Qiita

    結果は順にtrue、true、falseです。 これがPHP7までの非厳密な比較(等価)演算子だったわけですが、まあおかしいよねってことで、この挙動がPHP8.0で変更になることになりました。 よもや今さら基中の基である比較演算子の動作を弄ってくるとは思わなかったぞ。 以下はSaner string to number comparisonsの日語訳です。 PHP RFC: Saner string to number comparisons Introduction ==やその他の非厳密な比較演算子を用いた文字列と数値の比較は、現在は、文字列を数値にキャストし、その後整数か浮動小数の比較を行っています。 この結果、多数の不可解な結果が得られますが、中でも注目すべきは0 == "foobar"がtrueになることです。 このRFCでは、文字列が実際に数値型文字列である場合にのみ数値型

    【PHP8.0】非厳密な比較演算子`==`の挙動が今さら変更になる - Qiita
    nawo_rs
    nawo_rs 2020/08/13
    理屈はわかるけど、思い切ったことするなあ。あいまいなコード書いてないつもりだけど、動かなくなるものあるだろうな……
  • ファイルロックについて - phpspot

    PHPではflockによるファイルのロックが出来ます。 ファイルロックとは、アクセスカウンタなどで複数人数が同時にアクセスしても、ファイルが飛んでしまわないようにする仕組みです。 flock はOSの仕組みを利用した高速かつ強力なファイルロックの仕組みです。 が、この仕組みを詳しく知らないで使っていると、ファイルが飛んでしまった、 ということが起こってしまいます。 flockはファイルポインタを引数にとり、ファイルロックを設定、解除するための関数です。 flock($fp,LOCK_EX) のように、 排他ロックをかけた場合は、他のプロセスはファイルの変更、参照が出来なくなります。 他プロセスが、参照/変更しようとしても、他プロセスはflock($fp,LOCK_UN)されるまで待ちの状態になります。 flock($fp,LOCK_SH) のように、 共有ロックをかけた場合は、参照は出来る

  • Apache2、PHP5 関連記事一覧 [PHP] All About

    会社概要採用情報投資家情報広告掲載利用規約プライバシーポリシー著作権・商標・免責当サイトの情報についての注意サイトマップヘルプ© All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます

    Apache2、PHP5 関連記事一覧 [PHP] All About
  • 「Eclipse+PDT」でPHP開発 ~環境構築と使用方法

    はじめに PHPは、企業から個人まで、幅広い用途に利用され、Webシステムを構築するうえで無くてはならない存在となっています。昨今の経済状況から、Java一辺倒の大企業や大手SIerPHPによる開発にシフトしてきています。 PHPは、手軽に始められるハードルの低さが魅力の言語です。HTMLと混在して、シンプルに使用するもよし、大規模なWebサービスに向けて格的なシステム構築も可能です。 開発者の裾野が広いのと同様にコーディングツールの利用状況にも大きな差があるようです。シンプルなテキストエディタを使用する強者から有償ツールを使用する合理主義まで千差万別です。 今回紹介するEclipse+PDTは、その中間に位置する開発ツールと言えます。テキストエディタよりは、はるかに高機能です。有償ツールよりは、低機能ですが低コストです。このような素晴らしいツールが簡単に手に入れられるのですが、まだ使

    「Eclipse+PDT」でPHP開発 ~環境構築と使用方法
  • PHPで簡単に配列の値をエスケープ処理する方法 - ぷぎがぽぎ

    PHPとクロスサイトスクリプティング クロスサイトスクリプティング(XSS)を発生しないようにするには出力時に適切にエスケープ処理させるというのはウェブアプリケーションを開発する人たちにとっては今は常識となっています。 しかし、PHPのように、HTMLに埋め込んで利用できるような言語ではつい「うっかり」エスケープ処理を忘れてしまいXSSが..ということがあります。 CakePHPやsymfonyなどのフレームワークを使っていればフレームワーク側で適切に処理させる事が可能ですが、そういったフレームワークを使っていないときにできるだけ簡単にエスケープ処理する方法の1つを紹介したいと思います。 最終的なサンプル どうやって実現するかは後にして実際のサンプルでどのような動作になるかをみてみましょう。 <?php $str = '<script>alert("test")</script>'; $t

    PHPで簡単に配列の値をエスケープ処理する方法 - ぷぎがぽぎ
  • PHP 5.3リリース - 2年8カ月ぶりのメジャーアップデート | エンタープライズ | マイコミジャーナル

    PHP: Hypertext Preprocesso オープンソースのスクリプト言語「PHP」の開発チームは6月30日(現地時間)、5.xシリーズの最新版となる「PHP 5.3.0」をリリースした。2006年11月にリリースされたPHP 5.2.0以来約2年8カ月ぶりのメジャーアップデートとなる。この5.3系が5.x系の最終ブランチになる見通しだ。 PHP 5.3には主に次のような拡張が加えられている。 名前空間のサポート 遅延静的束縛機能(Late Static Bindings)のサポート ラムダ関数とクロージャのサポート ガーベジコレクタによる循環参照のサポート Nowdoc構文(「<<<'hoge'」形式の文字列表現)の追加 3項演算子「?:」の追加 クラスのオーバーロードに対する__callStatic()の追加 goto演算子の追加 新しいエクステンション(ext/phar,

  • PHPでメモリ上に一時ファイルを作る - hnwの日記

    blog.plastik.jp » PHP5 の fgetcsv() で読み込み内容が腐る現象」という記事を読みました。fgetcsv()だとSJISのCSVファイルがうまく読めないので、UTF-8に直してテンポラリファイルに保存してfgetcsvで読み込む、という筋書きのようです。 ちゃんとtmpfile()を使っていたりしてナイスなコードだと思います。でも、すぐ不要になるデータをディスクに書き込むのはイマイチじゃないでしょうか。ここはメモリに書いた方がカッコいいと思うんです。僕なら下記のようにします。 <?php $data = file_get_contents("example.csv"); $data = mb_convert_encoding($data, "UTF-8", "Shift_JIS"); $fp = fopen('php://memory', 'r+'); fw

    PHPでメモリ上に一時ファイルを作る - hnwの日記
    nawo_rs
    nawo_rs 2009/03/18
    これは知らなかった
  • PHP4 と PHP5 の違い: ある nakagami の日記

    PHP5 の入門書を読んだので、PHP5 からさかのぼって PHP4 についてちょっとだけ勉強。 http://www.atmarkit.co.jp/flinux/special/php5/php5a.html http://www.atmarkit.co.jp/flinux/special/php5/php5b.html オブジェクト指向の機能など PHP5 で追加された機能はあるけど、PHP4と比べて、下位互換性がなくなっているところで一番大きいのは、オブジェクトの入っている変数の代入文で $var2 = $var1; とすると、PHP4 では値渡し、PHP5 では参照渡しになっているところ。 PHP5 で値渡しにしたい場合は __clone() というメソッドを呼ぶ $var2 = $var1->__clone(); PHP4 で、参照渡しにしたい場合は $var2 =& $var1

    PHP4 と PHP5 の違い: ある nakagami の日記
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    nawo_rs
    nawo_rs 2009/01/22
    PHPで使われているマルチバイト対応正規表現ライブラリ
  • 1