パーフェクトPHP 小川雄大、柄沢聡太郎、橋口誠(著)技術評論社 2010年11月 ISBN-10: 4774144371 ISBN-13: 978-4774144375 3780円(税込) ■「例えば、PHPを避ける」の衝撃 Webプログラミングの分野で大きなシェアを持つスクリプト言語、PHP。しかし、プログラマのコミュニティ界隈では「PHPをdisる」ことが、風物詩のように行われている。 原因の一端は、おそらくIPAの「セキュア・プログラミング講座」というコンテンツだろう。『より良いWebアプリケーション設計のヒント』というページには、公開当時『例えば、PHPを避ける』というかなりショッキングな記述がされていた(現在は修正されて『プログラマが脆弱性をつくり易い環境を避ける』という表現になっている)。 当時の記述については、こちらのブログ記事が引用して紹介している。安全なプログラミング

PHP Advent Calendar jp 2010 21日目担当のMASA-Pです。 CakePHP界隈ではいろいろとやらせていただいていますが、PHPコミュニティの方はなかなか日程等があわない関係もあって不参加状態ですので、もしかしたら初めましての方もいらっしゃるかもしれません。一応こんなものなんかを公開させていただいております。またこんな本とかこんな本なんかを執筆させていただだいておりますので、もし興味がありましたら是非よろしくお願いします。できれば買って!(笑) さて、今回はPHP Tipsという事なのですが、非常にお恥ずかしい話ですが当方は既にCakePHPがないと生きていけない体になっております(笑)。当方としましてもそういう道連れ的な方を一人でも多く製造したい次第ですので(笑)、布教活動がてら「CakePHPに存在している超便利な機能をライブラリとして使ってしまおう!」とい
PHPには5.0.0以降SPL (StandardPHP Libray)という枠組みが導入されています。これにより、Iteratorインターフェースを実装したクラスのインスタンスであれば、foreach文で配列と同じように取り扱えます。自分でクラスを作るときもIteratorを実装すれば使うのが楽ですし、コードも読みやすくなると思います。 また、PHPに標準で組み込まれているクラスにはIteratorを実装しているものが多数あります。たとえば僕の手元のPHP5.2.9には24個のイテレータがあり、そのうちいくつかは十分に実用的なクラスです。ただ、日本語の資料が少ないせいか、かなり知名度は低いように思います。本記事では4つの便利な組み込みイテレータを紹介します。 SPLのクラスにはデザインパターンの考えが多く含まれています。特に、イテレータを元にイテレータを作るような使い方は、保守性の高い
さて、前回記事「PHPでメモリ上に一時ファイルを作る」では、file_get_contents関数でCSVファイル全体を取得して文字エンコーディングの変換を行い、変換結果に対してfgetcsv関数を利用しました。しかし、CSVファイルが巨大な場合にはfile_get_contentsを使うとメモリ上限に引っかかってPHPが停止してしまいます。 もちろん、UTF-8のCSVファイルに対してfgetcsvを利用するのであれば、どんな大きなCSVファイルだろうと処理することが可能です。なぜなら、fgetcsvはファイルを1行単位で読み込む関数ですから、1行分のメモリ消費だけでファイル全体を読み込み続けられるからです(正確にはストリーム上のデータはバッファリングされるので、バッファサイズ分のメモリは消費しますが)。 それでは、巨大なSJISのCSVファイルをfgetcsvで処理したい場合はどうすれ
Conveyor (旧名PRhagger) は Plagger のように情報の収集、加工、出力が出来るアプリケーションです。PHP4以降で動作します。rhaco Framework によるインストールの簡単さとブラウザ上で簡単に設定出来る点が特徴です。 メイン画面(1) *1 メイン画面(2) *1 インストール済みワーカー一覧 *1 全ワーカー一覧 *1 スクリーンキャスト Conveyorを導入するまでの一連の流れを動画で確認出来ます。*2 conveyorって何て読むの? 「コンベア」と読みます。ベルトコンベアのコンベアです。lineとかworkerって何? ライン(line)はConveyorでの一連の流れを記述したファイルです。ワーカー(worker)は他のアプリで言うプラグインのようなもので Conveyor に機能を追加します。スクリーンキャストのチュートリアルでは [フ
CakePHPは、PHP言語の高速開発用フレームワークです。日々、発展を遂げる各種フレームワークの動向を見極めつつ、日本発のCakePHP応援ブログとして、最新情報をお届けします。 まだGoogleを見る限り、日本ではだれも紹介していないようです。 Yii WebProgramming Framework http://www.yiiframework.com/ ドキュメントを見る限り、OOP使っているし、ActiveRecordもあるし、ひととおりのことができるようになっています。これ、本当だったら相当受け入れられるだろうなぁ。いったいどこから出てきたのだろう、と調べたら、これ、PRADOの作者が次のプロジェクトとして作っているものではないですか! Qiang Xue http://www.ohloh.net/accounts/qiangASP.NET型のフレームワークを作ったあと、

PHPでExcelを扱えるものはいくつかある。 ・ExcelReviser ⇒ テンプレートを作成しておき、そこに値を入れていく。 ・PHPExcel(BIFF12対応) ⇒ テンプレート不要で、無からExcelファイルを生成できる。 もちろん用途に応じて使い分ければいいと思う。 ただしPHPExcelの場合、シート名の日本語部分が文字化けしてしまった。 どっかの文字コード変換をいじれば直るだろうと思っていたが、予想以上に時間かかった。 シート名の文字コードはUTF-16LEらしい。 いじったのは1つのファイル。 Workbook.php ■addWorksheet メソッド 以下の文字コード変換を追加 $name = mb_convert_encoding($name, 'UTF-16LE', 'UTF-8'); ■_storeBoundsheet メソッド $cch の算出部分を以下に
数ヶ月ほど投稿が途切れていましたが、Zend Framework入門の続きを投稿したいと思います。 更新が止まっている間に Zend Frameworkの最新バージョンが1.5になりました。 今回の記事からは開発環境が以下のようになります。 開発環境: Zend Framework 1.5.1 /PHP 5.1.6 そこで、今日はZned Framework 1.5からUTF-8に対応するようになったZend_Pdfの紹介をします。UTF-8に対応したということは・・・? そう、日本語のPDFを作成できるようになったんです。 以前、Zend_Pdfを試したときには、日本語が見事に文字化けしてしまい、使えないなぁという印象を受けたのですが、Zend Framework 1.5にアップグレードすると、簡単に日本語を含むPDFの作成ができるようになりました。 $pdf = new Zend_
![Zend Framework [7] - Zend_Pdfと日本語(株式会社コネクティボしゃいん☆のブログ)](/image.pl?url=https%3a%2f%2fcdn-ak-scissors.b.st-hatena.com%2fimage%2fsquare%2f386e571ff1c466762059b21b6324a144c69f2922%2fheight%3d288%3bversion%3d1%3bwidth%3d512%2fhttp%253A%252F%252Fshain.blog.conextivo.com%252Fimg%252Fshainblog_mark_base.jpg&f=jpg&w=240)
ただ、途中で止めて、自分でセットした(つもり)値が本当にセットされているか、確認したいという欲求を満たしてはくれません。 そこでEclipse+PDT+Xdebugによるデバッグです。 Eclipse+PDT+Xdebugのデバッグ 1.ブレークポイントの設定 ブレークポイントを予め設定します(ブレークポイントを設定しなくても1行づつ進めることでデバッグできますが、CakePHPのようなフレームワークでは、自分の書いたコード以外の処理が多く、現実的ではありません)。ソースの右余白部分でダブルクリックすることで、 ブレークポイントの設定⇔ブレークポイントの解除 が切り替わります。 2.デバッグの設定 実際にデバッグするためには、設定が必要です。 次の設定は、トップ画面から始めることを想定していますが、CakePHPでは、URIに意味を持っている(処理やパラメータ)ので、途中から始めることも可
どのようなWebシステムであっても、速度は速い方が良い。最近はハードウェアのリソースが潤沢で、油断するとついつい富豪的なプログラミングになりがちなので、しっかりと気を引き締めないと思わぬボトルネックになったりする。PHPでそうしたシステムのプロファイリングを行うのに利用するのがXdebugだ。そしてそのXdebugと一緒に利用したいのがこのソフトウェアだ。 今回紹介するオープンソース・ソフトウェアはWebgrind、WebベースのXdebugフロントエンドだ。 WebgrindはXdebugさえ動作していれば後の設定は殆ど不要という、ごく簡単に利用できるソフトウェアだ。Xdebugの吐き出すファイルのパスさえ設定すれば良い。後はWebgrindの画面にアクセスするだけだ。 実行したファイルのパスや、かかった時間などが一覧され、さらに各実行単位でコストが見られる。コストが特に大きい処理の中
taintモードを組み込んだPHP5.2.5が出ていたので、サラッとだけ試してみました。 Taint support forPHP 5.2.5 has been updated. The 20080423 version improves support forPCRE, and fixes a harmless read-after-free bug. 環境はいつものCentOS4.6 on VMware Playerです。ソースはhttp://wiki.php.net/rfc/taint/からダウンロードし、通常通りbuild。configureオプションはとりあえずこんな感じ。「--enable-taint」が追加されてました。 ./configure \ --with-apxs2=/usr/local/apache2/bin/apxs \ --prefix=/usr/local

PHPのためのADOdbライブラリ original document ADOdb関連文書 V4.62 2 Apr 2005 (c) 2000-2005 John Lim (jlim#natsoft.com) このソフトウェアはBSDスタイルとLGPLを使いデュアルライセンスされています。これはコンパイルされて所有権のある市販製品で使えることを意味しています。 役に立つADOdbのリンク: Download Other Docs 序文 ユニークな特徴 どんなふうに人々はADOdbを使っているか 機能要望とバグ報告 インストール 最小インストール コードの初期化とデータベースへの接続 データソース名(DSN) 接続例 高速ADOdb - チューニングTips 安全なADOdbのハッキングと変更PHP5の機能 foreach i
はじめにPHPにおいてDBアクセスを行う場合、古くはPHPLIB、最近ではPEAR::DBやPEAR::DB_DataObjectなどを利用して、処理の実装を行います。PHPでは、こうしたモジュールのおかげで容易にDBにアクセスできるため、実用的なwebによるサービスを簡単に構築できます。 現在のPHPにおいては、PEARライブラリが、事実上の標準ライブラリの位置付けにあります。しかし、PEAR::DBは、その機能の割に実行速度が出ないと指摘されることが多く、PEAR::DB_DataObjectは、DBのスキーマ定義に基づいて動作する構成となっているため、その設計概念に馴染めないと、使い難い印象を拭えません。 そこで、PEAR::DB程度の機能しか持っていなくて、機能面でリッチではないけれども、その分、PEAR::DB_DataObjectよりも自由度が高く、手軽に使えて、尚且つ
APIが提供されていないサービスから欲しい情報だけを取得するには、HTMLなどから自前でスクレイピングを行うしかありません。PHPでのスクレイピングに役立つライブラリなどをまとめてみました。PerlやRubyには色々と便利そうなものが見つかるのですが、PHPにはなかなかこれといったものがないですね。 WebスクレイピングライブラリHTMLScrapingHTMLをXML化してDOMやXPathで操作できるクラス。主にHTTP_Request+HTMLParser(XML_HTMLSax3を含む)/Tidy+Cache_Liteという構成で、スクレイピングに必要なものが一通り揃っている。ライセンスはLGPL他。 WebScraper シンプルな汎用スクレイピングクラス。HTTP_Client+HTMLParser(XML_HTMLSax3を含む)という構成で、XPathで要素を抽出でき
ずいぶん前にPHPDocを取り上げてあれこれ触ってみましたが、いつの間にかPEARマニュアルからページがなくなっていました。現在ではPHPDocの代わりに、高機能なphpDocumentorがPEARに追加されています。phpDocumentor本家 PEARマニュアルのphpDocumentorのページ 基本的にはPHPDocと同じ「APIドキュメントを自動生成する」という機能だけなのですが出力形式が多様で、HTMLだけでもデザインテンプレートが何種類も用意されており、pear.php.netにあるAPIドキュメントでも採用されています。HTML以外にもPDF形式やWindowsのヘルプファイル用hhpファイル(別途コンパイルが必要)、はたまたpeardoc用docbookも出力できてしまいます。 今回はインストールからざっとした使い方までやってみました。 まずはインストールです。お決
現在では、PEARのAPIドキュメントなどはphpDocumentorが使われるようになっています。 仮に、あるプロジェクトで作成したクラスを他のプロジェクトでの使いたい場合、「ソースを追ってAPIを調べてね」なんてやってると余計な工数がかかってしまいますし、いつの間にか自分自身も忘れてるってことあります。そこで、何らかのAPIドキュメントがあると非常に楽ですよね。Javaにはjavadocという強力なツールが用意されていますが、PHPでそれに相当するのが、PHPDocです。PHPDocは、PHPDoc本家、あるいは、PHP本家のcvsリポジトリから入手することができます。PHPDoc - Home http://www.phpdoc.de/doc/PHP本家のCVS http://cvs.php.net/cvs.php/pearPHPDoc本家から入手したzipは、ブラウザから
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く