Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

phpに関するruiccのブックマーク (81)

  • PHP による hello world 入門 | 東北ギーク

    知る者は言わず、言う者は知らず — 老子 世界で最も有名なプログラムの 1 つに、 hello world というものがあります。 <?php echo 'hello, world'; 出力先に対して「hello, world」という 12 字を書き込むだけの単純なプログラムで、プログラミング言語やライブラリの利用例を最小限の形で示すものです。 この記事ではメジャーな Web プログラミング言語の 1 つである PHP 処理系が、hello world をどのように実行するのかについて、簡単に解説します。 以下の 4 節で構成されています。 「PHP スクリプト実行の大体の流れ」は実行時の概略を箇条書きでまとめたものです。 「SAPI」では、PHP 処理系の起動のされ方についての基礎知識を解説します。 「Zend Engine とオペコード」は PHP 公式処理系の仮想マシンの命令と、PH

    PHP による hello world 入門 | 東北ギーク
    ruicc
    ruicc 2015/06/18
    歯ブラシと同じくらいエキサイティングな言語の内部
  • PHP: The Right Way

    ようこそ 時代遅れの情報がウェブ上にあふれている。そんな情報を見たPHP初心者は戸惑ってしまうだろう。そして、まずい手法やまずいコードが広まってしまう。 そんなのはもうやめよう。PHP: The Right Way は気軽に読めるクイックリファレンスだ。PHPの一般的なコーディング規約、 ウェブ上のよくできたチュートリアルへのリンク、そして現時点でのベストプラクティスだと執筆者が考えていることをまとめた。 大事なのは、 PHPを使うための正式なお作法など存在しない ってこと。 このサイトの狙いは、はじめて PHP を使うことになった開発者に、いろんなトピックを紹介すること。 経験豊富なプロの人にとっても、これまで深く考えることなく使ってきた内容について、新鮮な見方を伝えられるだろう。 このサイトは、決して「どのツールを使えばいいのか」を教えるものじゃない。 いくつかの選択肢を示して、それぞ

    ruicc
    ruicc 2014/05/07
  • PHPのデータ構造 - yokkunsの日記

    配列よりオブジェクトの方がパフォーマンスが良いという話を聞き、気になったので調べてみました。 スカラー変数 まず、PHPのスカラー変数の復習。 PHPのスカラー変数は、以下のように、シンボルテーブルからzval構造体にアクセスして、値を取得します。 <?php $a = 1; ?> 変数のコピーでは、値をコピーするのではなく、同じzval構造体を指し、refcountが1追加されます。 <?php $b = $a; ?> 参照渡しでは、同じzval構造体を指し、refcountが1追加、is_refが1になります。 <?php $b = &$a; ?> 配列 次に配列。PHPの配列は、順番を持ったハッシュです。 配列$aの"x"にアクセスするには、まず$aが指すzval構造体にアクセスし、そのzval構造体のzvalue_value共用体にあるハッシュテーブルから、指定されたキーのzval

    PHPのデータ構造 - yokkunsの日記
  • PHPの開発に使えるVagrantfileのまとめ | Engine Yard Blog JP

    このエントリはPHP Advent Calendar 2013 - Qiita [キータ]の1日目です。 PHPの開発に幅広く利用されるようになったVagrantですが、公開されているVagrantfileがGitHub上だけでも300件以上と色々とあるのでまとめておこうと思います。 Search · Vagrant php yandod/php5-nginx-vagrant-sample こちらは手前味噌ですが、自分が使っているVagrantfileです。素のPHPPHPUnit、各種フレームワークの動作検証に使うためにPHP5.5とNginxを構築しています。 またデータベースとしてMySQLとPostgreSQLを両方セットアップしてあり、ImageMagickも入っているあたりも特徴かと思います。 10up/varying-vagrant-vagrants 通称、「VVV」と呼

    PHPの開発に使えるVagrantfileのまとめ | Engine Yard Blog JP
  • すぐれた PHP ライブラリとリソース

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    すぐれた PHP ライブラリとリソース
    ruicc
    ruicc 2013/04/26
  • 新標準PSRに学ぶきれいなPHP

    16. 豪華なメンバー陣 Nate Abele: Lithium Robert Lemke: FLOW3 Nils Adermann: phpBB Larry Masters: CakePHP, CakePHP 2 Brett Bieber: PEAR, PEAR2 Ryan Parman: Amazon Web Services Guilherme Blanco: Doctrine, Doctrine2, SDK et al. Evert Pot: SabreDAV Jordi Boggiano: Composer, Packagist Fabien Potencier: Symfony, Symfony2 Karma Dordrak: Zikula Andre Romcke: eZ Publish Paul Dragoonis: PPI, PPI2 Paul Scott: Chisim

    新標準PSRに学ぶきれいなPHP
    ruicc
    ruicc 2013/03/11
  • Parsing and evaluating PHP in Haskell: Part 1 | CodeUtopia

    The other day I uploaded a new experimental project on GitHub – A Haskell PHP parser / evaluator. It doesn’t understand 100% of all PHP syntax, but it was an interesting experiment nevertheless. Here’s some insights and other thoughts from working on the code. Why?! Why not? I had wanted to experiment in writing a parser in Haskell for a while, and the thought of writing a small language of my own

  • CGI版PHPにリモートからスクリプト実行を許す脆弱性(CVE-2012-1823)

    CGI環境でPHPを動作させているサイトには、リモートからスクリプト実行を許してしまう脆弱性があります。php.netから提供されている修正リリース(PHP 5.3.12 / PHP 5.4.2)は不完全なため、該当するサイトは至急回避策を導入することを推奨します。 概要 CGIの仕様として、クエリ文字列に等号を含めない場合は、クエリ文字列がCGIスクリプトのコマンドライン引数として指定されます。 例えば、http://example.jp/test.cgi?foo+bar+bazという呼び出しに対しては、test.cgiは以下のコマンドラインで呼び出されます。 test.cgi foo bar baz この仕様を悪用して、CGI版のPHPにコマンドライン引数としてPHPのオプションを指定できます。例えば、http://example.jp/test.php?-s というリクエストは、-s

    CGI版PHPにリモートからスクリプト実行を許す脆弱性(CVE-2012-1823)
  • PHP: MongoDB::command - Manual

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

    ruicc
    ruicc 2012/02/20
    え、phpとjs混ぜて書かないといけないのこれ..
  • GitHub - facebookarchive/lex-pass: manipulate a php codebase using haskell to transform the abstract-syntax-tree

    Archived Repo ------------- This is an archived project and is no longer supported or updated by Facebook. Please do not file issues or pull-requests against this repo. If you wish to continue to develop this code yourself, we recommend you fork it. ------------- Mailing list at: http://groups.google.com/group/lex-pass lex-pass allows you to automate changes to a php codebase, by writing abstract-

    GitHub - facebookarchive/lex-pass: manipulate a php codebase using haskell to transform the abstract-syntax-tree
  • php.vim: php_folding=1 - moriyoshiの日記

    今日の今日まで気づかなかった。 .vimrc に let php_folding=1 au Syntax php set fdm=syntax と書いておくだけで、 <?php class foo { function foo() { } } // 以下普通はいらない // vim: syntax=php ?> のブレース ({}) のところで folding が有効になる。 いままで fdm=marker とやって <?php // {{{ class foo class foo { // {{{ function foo() function foo() { } // }}} } // }}} ?> 必死になってマーカ書いてた... ごめんなさいごめんなさい...

    php.vim: php_folding=1 - moriyoshiの日記
    ruicc
    ruicc 2011/08/18
    plugin要らないのか!
  • (PHP)プログラマのためのVIM (9) - PHP向けカスタマイズ - おぎろぐはてブロ

    Yahoo!のAndreiさんのプレゼンのPDFを勉強がてら訳していってます。訳は微妙です。 元記事: Andrei Zmievski: "VIM for (PHP) Programmers" slides and resources この記事シリーズまとめはこちら: (PHP)プログラマのためのVIM (まとめ) - おぎろぐはてな カーソル位置・カーソル移動・マーク・挿入 削除・検索 置換・テキストオブジェクト コピー/削除/貼り付け、レジスタ undo ビジュアルモード、ウィンドウ、タブ 補完・マップ・オプション セッション、misc、ヘルプ そのまえに ここからは、Andreiの実際使っているvimの設定についての説明が含まれます。ファイルは元記事からダウンロードすることができます。 カスタマイズ vimをカスタマイズするには、~/.vimディレクトリにファイルを配置 filety

    (PHP)プログラマのためのVIM (9) - PHP向けカスタマイズ - おぎろぐはてブロ
    ruicc
    ruicc 2011/08/18
    おお
  • phc(PHPコンパイラ)でphpの構文木をXMLで出力してみる – taichino.com

    phcというphpコンパイラを使ってphpの構文木を取得してみたので記録しておきます。インストールに手こずりました。 phcについて phcとはphpのコンパイラで、phpスクリプトをコンパイルして実行ファイルを作成する事ができます。例えば以下のようにコンパイルする事ができます。速くなるのかもしれませんが試していません。 % cat sample1.php < ?php echo "hello phc world\n"; ?> % phc -c sample1.php -o sample1 % ./sample1 hello phc world コンパイルだけだとあまり使い道が思いつかないのですが、コンパイラ機能を一部解放してくれていて、読み込んだスクリプトの構文木をxmlで出力する事ができます。なのでこのツールを利用するとphpの構文木に手軽にアクセスできて便利です。例えば以下のように変

    ruicc
    ruicc 2011/05/15
  • 例えばPHPのpreg_replace関数でe修飾子を避ける - hnwの日記

    (2015/04/19追記)e修飾子はPHP 5.5からdeprecatedになっています。また、PHP7からは廃止されます。 PHPのpreg_replace関数では、e修飾子が利用できます。これはPerlから輸入された機能で、置換後パターンの文字列をPHP文法に従って評価する(evalする)というものです。Perlを知らないとあまり使わない機能かもしれませんが、Perlを知っているとPHPでも使いたくなるのではないでしょうか。記事では、preg_replace関数でe修飾子を使う場合の注意点を指摘し、代替案を示します。 preg_replace関数のe修飾子 preg_replace関数のe修飾子は次のような機能です。 e 修飾子を設定すると、preg_replace() は、参照先の対応する置換を行う際に replacement 引数を PHP コードであるとして取り扱います。re

    例えばPHPのpreg_replace関数でe修飾子を避ける - hnwの日記
    ruicc
    ruicc 2011/04/04
    eですごい悩んでた。preg_replace_callbackで解決。
  • Language Basics (Programming PHP)

    ruicc
    ruicc 2011/03/10
    関数名はcase-insensitiveで変数名はcase-sensitive。なにそれ。
  • PHPでユニークなIDを生成する:uniqid() - kakakakakku blog

    PHPでユニークな(一意な)IDを生成したい場合に「uniqid」という関数が利用できる. string uniqid ([ string $prefix [, bool $more_entropy ]] ) マイクロ秒単位の現在時刻にもとづいた、接頭辞つきの一意な ID を取得します。 PHP: uniqid - Manual $prefixなし $prefix(接頭辞)なしで利用すると,13文字の文字列が生成される. [例] 48f7146e6ea07 <?php echo uniqid(); echo uniqid(""); ?> $prefixあり $prefixに任意の文字列を指定すると,接頭辞の後に13文字の文字列が生成される [例] UNIQ_48f718480b738 <?php echo uniqid("UNIQ_"); ?> $prefixに乱数を指定する マイクロ秒単

    PHPでユニークなIDを生成する:uniqid() - kakakakakku blog
    ruicc
    ruicc 2011/02/14
    こんな関数あったのか。しかしmd5したら一意性は崩れてしまうよね。
  • PHPの日付文字列の解釈ルールがドキュメント化されました - hnwの日記

    PHPのstrtotime関数やDateTimeクラスは、様々なフォーマットの日付文字列を解釈し、時刻として取り扱うことができます。たとえば次のような文字列を解釈することができます。 "Wednesday July 23rd, 2008"(=2008年7月23日) "first Wednesday July 23rd, 2008"(=2008年7月30日、PHP5.1.0以降) "first Wednesday of July 23rd, 2008"(=2008年7月2日、PHP5.3.0以降) こうした日付の解釈はPHP独自の実装です*1。当初はGNUの日付記法に準拠していたようですが*2、今や別物といっていいでしょう。にもかかわらず、これまで解釈ルールの詳細を説明するドキュメントが存在しない状態が続いていました。 そのため、仕様を推測する根拠はstrtotime関数のサンプルコードとP

    PHPの日付文字列の解釈ルールがドキュメント化されました - hnwの日記
    ruicc
    ruicc 2011/02/13
    ドキュメントなかったのか。
  • なんで PHP をつかいつづけるのか - moriyoshiの日記

    PHP を使い続けたいと思うように PHP 自体を変えていくという発想が必要です。 http://wiki.php.net/rfc/builtinwebserver

    なんで PHP をつかいつづけるのか - moriyoshiの日記
    ruicc
    ruicc 2011/02/03
    開発者を探し易いからです。
  • 画像自体をBase64エンコードしてHTML内に埋め込んで高速化するPHPコード例:phpspot開発日誌

    Base64 Encoding for Images. 画像自体をBase64エンコードしてHTML内に埋め込んで高速化するPHPコード例。 Googleがインスタントプレビューや画像検索で導入してその読み込み速度に驚いた方も多いかもしれません。 その手法をPHPで実現するコードが掲載されていましたのでご紹介。 PHPでやるにはそんなに難しいわけではなさそう。 <?php $img_src = "image/sample.png";  // 画像ファイルの指定 $imgbinary = fread(fopen($img_src, "r"), filesize($img_src)); // バイナリデータを読み込み $img_str = base64_encode($imgbinary); // base64エンコード echo '<img src="data:image/png;base6

  • PHPのプロファイラー「XHProf」の使い方 - 浜村拓夫の世界

    PHPでプログラムを作っているとき、プログラムの実行状況を確認するため、プロファイラーというツールを使います。 プロファイラとは 【profiler】 - IT用語辞典 プロファイラとは、動作中のプログラムがどの処理をどういった順序で実行したかを監視するプログラム。 プログラムの障害を見つけるために用いられるよりも、プログラムの余計な部分を削るなどして高速化するために用いられることが多い。 PHP用の「XHProf」という便利なプロファイラーが紹介されていました。 PHPプログラムを解析して何処が重いか?がブラウザ上で簡単に分かる「XHProf」:phpspot開発日誌 PHPプログラムを解析して何処が重いか?がブラウザ上で簡単に分かる「XHProf」。 Callgraphというものが見れるらしい。 プログラム実行の遷移図みたいなもので、重い部分を赤とか黄で視覚的に表示してくれる…、ってこ