タグ

PHPに関するrryuのブックマーク (188)

  • もうバージョンアップで困らない – PROVE for PHP

    (Last Updated On: 2018年8月14日)昨年のPHPカンファレンスで紹介したPORVE for PHP 開発版の公開を始めました。PROVE for PHPはこんなテストが出来ます。 PHPをアップデートしてアプリに影響が無い事を検証する PHPアプリをアップデートしても以前と同じように動作する事を検証する 使い方もとても簡単です。 テストケースの作成はブラウザからアプリを利用するだけ ロードバランサを用いて実運用サーバからのテストケースも作成可能 テストの実行はプログラムを実行するだけ 違いが在った場所はプログラムの何処か確実&簡単に判明 http://www.provephp.com/ 現状 CUIとコマンドツールでの管理のみ GUI(Web、GTK)は順次整備予定 PROVEを利用すればPHPセキュリティパッチがリリースされた場合に、アプリケーションの動作チェック

    もうバージョンアップで困らない – PROVE for PHP
    rryu
    rryu 2011/04/11
    Zend Engineのモジュールとして動作して、PHPアプリの各種状態を記録したり比較したりするツール。
  • PHP5.3.0alpha3のround関数の実装がPHP5.2.6と変わった - hnwの日記

    (2016/07/02 20:00追記)稿をさらに掘り下げた記事「PHPのround関数を読み解く (1)丸め桁数が大きすぎ・小さすぎる場合」「PHPの新しいround関数を読み解く (2)pre-roundingの意味」を書きました。合わせてご確認ください。 12月4日付でPHP5.2.7とPHP5.3.0alpha3が同時リリースされましたが、これに関連して毎度おなじみPHPのround関数の話題です。相変わらず記事は長いので簡単なまとめから。 PHP5.3.0alpha3ではこれまでのPHPのいずれとも違うround関数が実装されました。少々疑問は残るものの、比較的マシな実装だと僕は考えています。今回は0.50000000001のような不思議な数は含まれていませんし、問題が起こる例が以前より減ったように思います。 第3引数で丸め方式を選択できるようになりました。四捨五入(デフォルト

    PHP5.3.0alpha3のround関数の実装がPHP5.2.6と変わった - hnwの日記
    rryu
    rryu 2011/04/08
    余分に足している固定精度の0.00000000001を1ulp的な可変なものにするという感じの様だが、10進で左シフトすると必ずしも1ulp的なものにならない気がする。
  • PHPの新しいround関数にバグをみつけた - hnwの日記

    PHP 5.3.0以降、PHPのround関数の挙動はChristian Seilerさんが提案したRFCに従って一新されています。この新しいround関数の仕様上の問題もしくはバグを見つけました。 以前の記事「PHP5.3.0alpha3のround関数の実装がPHP5.2.6と変わった」でこの新しい実装は「今までよりは良い実装」ではないかと書きましたが、撤回すべきかもしれません。ベースのアイデアとしては以前の記事にも書いた通り悪くないと思うのですが、考え漏れがあるような気がしています。 たとえば次のサンプルコードを見て下さい。 <?php ini_set("precision",19); var_dump(1000000000000000.125); var_dump(round(1000000000000000.125)); サンプルコード中の1000000000000000.125

    PHPの新しいround関数にバグをみつけた - hnwの日記
    rryu
    rryu 2011/04/08
    10進1桁は2進で3桁ちょっとなので、仮数の精度ギリギリの場合は左シフトし過ぎて丸めの+0.5が情報落ちして何も起こらないという感じなのかな。
  • 忙しい人のための「初めてのPHP」

    この記事は7年以上前の記事です。情報が古い場合がありますのでお気を付け下さい。説明は適度に、駆け足でお届けします。 言っておきますが、これを覚えたからと言って「PHP出来ます!(キリッ」とか言ったら鼻で笑われるレベルだということは認識しておいてくださいね。 <追記あり:2012/02/16> 大前提 HTML/CSSの基的なところはわかってるものとします。FTPでアップロードするって意味さえわからない人はこのへんで勉強してください。つまり、出直してください。 あと、もっとちゃんと勉強したい人はこんな駄文を読まないほうがいいです。アシアルさんのコンテンツを読んでください。この文章の100倍素晴らしいコンテンツが満載です。 エディタ Windowsユーザなら、標準で付いてるメモ帳を使うのはやめましょう。 PHPに限らず、プログラムを触るなら、あんなもん使わないでください。文字コードも変更でき

    忙しい人のための「初めてのPHP」
    rryu
    rryu 2011/03/30
    htmlspecialchars()の使い方の指摘を無視しているのはなぜなのだろう。<?php echo htmlspecialchars($contact); ?> とすれば良いだけなのに。
  • PHP: コンテキストオプションとパラメータ - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    rryu
    rryu 2011/03/07
    SSLはあるけどHTTPSには対応していないっぽい。
  • PHP で凄く簡単に GET/POST 送信ができる関数を作りました | ウェブル

    以前こちらの URL で GET/POST を簡単にできるコードを書きましたが、問題があるとのことで多くの指摘を頂きました。zaru さんに正しいコードを書いて頂きましたので下記の記事をご覧ください。 PHP で凄く簡単に GET/POST 送信ができる関数を勝手に改良した | zaru blog 下記にコードを引用させて頂きます。いくらか稼働させた所 curl の方が安定していることが分かりましたので、こちらを引用させて頂きます。curl がインストールできない環境等では zaru さんの記事の別のコードを使用してください。 function wbsRequest2($method, $url, $params = array()) { $data = http_build_query($params); if($method == 'GET') { $url = ($data != '

    rryu
    rryu 2011/03/07
    file_get_contents()でPOSTリクエストが送れるとは……
  • cgi.force_redirect って何? - ぐらめぬ・ぜぷつぇんのはてダ(2007 to 2011)

    実はこれがよく分からないので、怖くて今までPHPCGIで動かしたことが無い、というへたれです。 ただいつまでも逃げてらんないし、何よりCGIで動かせばPHP4/5を同時に使えるので少し調べてみました。 何が怖いかというと、php.iniには ; cgi.force_redirect is necessary to provide security running PHP as a CGI under ; most web servers. Left undefined, PHP turns this on by default. You can ; turn it off here AT YOUR OWN RISK ; **You CAN safely turn this off for IIS, in fact, you MUST.**とか書いて有るじゃないですか。AT YOUR OW

    cgi.force_redirect って何? - ぐらめぬ・ぜぷつぇんのはてダ(2007 to 2011)
    rryu
    rryu 2011/03/02
    CGI版のPHPインタプリタはURLのPATH_INFOを実行すべきファイルと解釈するという余計な機能が付いているため、cgi.force_redirectを0にすると大変脆弱な状態になってしまう。
  • PHP Hangs On Numeric Value 2.2250738585072011e-308 - Exploring Binary

    I stumbled upon a very strange bug in PHP; this statement sends it into an infinite loop: <?php $d = 2.2250738585072011e-308; ?> (The same thing happens if you write the number without scientific notation — 324 decimal places.) I hit this bug in the two places I tested for it: on Windows (PHP 5.3.1 under XAMPP 1.7.3), and on Linux (PHP Version 5.3.2-1ubuntu4.5) — both on an Intel Core Duo processo

    rryu
    rryu 2011/01/12
    この謎の数値は倍精度実数の正の最大非正規化数だったらしい。
  • PHP: Index of /

    Merge gd_pixelate.c into gd_filter.c so we have one file with all the filters

    rryu
    rryu 2011/01/07
    PHPのソースコードリポジトリ。
  • PHPのescapeshellcmdの危険性 - 徳丸浩の日記

    補足 この記事は旧徳丸浩の日記からの転載です(元URL、アーカイブはてなブックマーク1、はてなブックマーク2)。 備忘のため転載いたしますが、この記事は2011年1月1日に公開されたもので、当時の徳丸の考えを示すものを、基的に内容を変更せずにそのまま転載するものです。 補足終わり を書いています。初稿を一通り書き上げ、第2稿を作成中です。その過程で見つけたことを報告します。 PHPのescapeshellcmdはパラメータをクォートしないので呼び出し側でクォートする必要がありますが、escapeshellcmdの仕様がまずいために、呼び出し側でクォートしても突破できることが分かりました。 escapeshellcmdの仕様 PHPにはシェルのパラメータをエスケープする関数が2つあります。escapeshellargとescapeshellcmdです。escapeshellargは、エ

    rryu
    rryu 2011/01/02
    /bin/shの実体が環境依存である以上エスケープは完全とは言えないし、シェル経由で実行する意味が無いことがほとんどなので引数リストを取るタイプの実行方法を使うべきだが、PHPではpctrl_exec()しかないのがつらいところ
  • ときどきの雑記帖 めぐりあい電脳空間編 2010年11月(下旬)

    ■_ ・いろいろ ドリフターズはなし。ナポレオンはえーとなんて名前のクーデターだっけ? 一巻と比べるとえらい変わっているような。 安定。 irb(main):001:0> 1.methods.sort => [:!, :!=, :!~, :%, :&, :*, :**, :+, :+@, :-, :-@, :/, :<, :<<, :<=, :<=>, :==, :===, :=~, :>, :>=, :>>, :[], :^, :__id__, :__send__, :abs, :abs2, :angle, :arg, :between?, :ceil, :chr, :class, :clone, :coerce, :conj, :conjugate, :define_singleton_method, :denominator, :display, :div, :divmod, :do

    rryu
    rryu 2010/11/23
    よもやPHPにtraitsとは……
  • 究極のPHP本完成

    12. 小川 雄大 (@fivestr)アシアル株式会社 / nequal柄沢 聡太郎 (@sotarok)グリー株式会社 / nequal橋口 誠(@gusagi)menue株式会社

    究極のPHP本完成
    rryu
    rryu 2010/10/13
    「パーフェクトPHP」の紹介スライド。ソースコードまで追わないと分からない言語仕様というのが気になる感じ。
  • PHPで作成する携帯会員サイトの基本

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    PHPで作成する携帯会員サイトの基本
    rryu
    rryu 2010/10/01
    携帯+PHPの記事は新しいものが出るたびに内容が劣化していく気がする。
  • Introduction to using VersionControl_SVN

    rryu
    rryu 2010/09/30
    Subversionを操作するPEARモジュール。PEARじゃないモジュールあるが、あっちはいつまで経っても実験的モジュールだったり。
  • PHP5 技術者認定初級ベータ試験のご案内

    2010 年 9 月 7 日 報道関係者各位 NPO 法人 PHP 技術者認定機構 発起人会 PHP5 技術者認定初級ベータ試験のご案内 ~ペーパーでの試験は 2010 年 11 月、CBT での実施は 2011 年 1 月を予定~ NPO 法人 PHP 技術者認定機構発起人会(代表者:吉政忠志、所在:東京都世田谷区、以下「PHP 技術者認定機構」) は、2010 年 9 月 22 日(水)~24 日(金)の 3 日間の日程で以下の通り PHP5 技術者認定初級ベータ試験を開催する ことを発表いたします。当初インストラクター候補の方のみを対象としていましたが、一般の方の受験も受け付けます。 なお、ペーパーでの試験は 2010 年 11 月を CBT(Computer Based Testing)での実施は 2011 年 1 月を予定してい ます。CBT はプロメトリック社にて実施する

    rryu
    rryu 2010/09/08
    出題範囲など。なんとなく関数名などの暗記モノが多そうな予感。
  • PHP: pcntl_exec - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: pcntl_exec - Manual
    rryu
    rryu 2010/08/09
    execve(2)相当の関数。Perlのsystem(list)と同じことをするにはpctrl_fork()して子でpctrl_exec()して親でpctrl_waitpid()する。正直めんどくさい。
  • おそらくはそれさえも平凡な日々: PHPの正規表現と文字列

    PHPで正規表現を扱う上で、正規表現パターンの記述で迷ってしまっている人が多い気がする。 PHPが文字列を生成する その文字列を正規表現エンジンに渡す と言う2段階の手順があり、そこがやや複雑なので混乱を招く部分があるのだと思う。 混乱を防ぐためには、その手順をしっかり追って、正規表現リテラルとして指定している文字列をechoしたらPHPがどのように出力するかを考えてみると良い。 例えば以下のようなコードがあったとする。 preg_match('/\\d/','3d'); まず、preg_match()の第一引数になっている正規表現パターンをechoで出力するとどうなるかを考える。 echo '/\\d/'; #/\d/ なので、/\d/が正規表現エンジンに渡されると分かる。なので、上記のパターンはマッチする。 さらに混乱を招きやすくしているのが、PHPの文字列の仕様で、特にバックスラッシ

    rryu
    rryu 2010/03/16
    \aがaではなく\aになるという予想外の仕様。たまに\\\dみたいなパターンがあってなんで動くのか不思議だったのだが、こういうことだったのか。
  • ゆーすけべー日記

    サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ

    ゆーすけべー日記
    rryu
    rryu 2010/03/03
    あの一覧は拡張モジュールの関数も含んでるのでそのせいな様な。
  • PHP: checkdnsrr - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: checkdnsrr - Manual
    rryu
    rryu 2010/01/16
    メールアドレス用に作ったからなのだろうが、名前に反してタイプがMXなレコードを探すのが既定の動作というのが罠っぽい。dns_check_recordという別名も付けられているが、あまり改善されていないところがさすがというか。
  • htmlspecialcharsに関するorzなお知らせ - Narusaseの日記 -ハニポってどうよ?(仮)-

    htmlspecialcharsのInvalid multibyte sequenceエラーの問題 http://d.hatena.ne.jp/narusase/20091203 ↑の続き いろいろオプションを変えてテストしてみた結果php.iniの設定によってhtmlspecialcharsの挙動が変わることが判明した。 具体的には 設定項目の「display_errors = On」を「display_errors = Off」にするとエラーが発現する。 表示しない設定だと表示するとか駄目すぐる・・・orz ソースをみてみると。 ext/standard/html.c の L1142行目のあたりが怪しい if(!PG(display_errors)) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid multibyte se

    htmlspecialcharsに関するorzなお知らせ - Narusaseの日記 -ハニポってどうよ?(仮)-
    rryu
    rryu 2009/12/06
    そもそもdisplay_errorsが偽なのにエラーが出力されてしまっているのがおかしいような。EG(error_handling) == EH_THROWの時には警告の時にdisplay_errorsが偽であっても例外が送出されてしまうようなのだが……