タグ

ブックマーク / k-holy.hatenablog.com (8)

  • Volcanus_CsvとSymfony-FinderでローテートされたApacheログをLTSVフォーマットに集約してみる - k-holyのPHPとか諸々メモ

    CSVファイルの入出力用ライブラリ Volcanus_Csv を使ったシリーズ記事です。 話題の LTSV を扱ってみようと思い立ったものの、お世話になっているレンタルサーバGehirn RS2ではApacheのログフォーマット変更は難しい…。 そんなわけで、ローテート済みのcombinedフォーマットなHTTPアクセスログを、SymfonyのFinderコンポーネントでまとめて、拙作ライブラリ Volcanus_CsvでLTSVフォーマットに変換してみました。 Volcanus_CsvCSV と名乗ってはいますが、ナントカ Separated Values なら何でも扱える作りになってます。 ただし、HTTPアクセスログにおけるLTSVのようにエスケープ不要なケースを想定していなかったので、ちょっとした改修が必要となりました。 参考:LTSV のもうひとつのメリット、あるいは、プロ

    Volcanus_CsvとSymfony-FinderでローテートされたApacheログをLTSVフォーマットに集約してみる - k-holyのPHPとか諸々メモ
    koriym
    koriym 2013/02/26
  • Smarty3のHTMLエスケープ方法いろいろ + 修飾子プラグインと変数フィルタ (PHP Advent Calendar 2012 Day 11) - k-holyのPHPとか諸々メモ

    PHP Advent Calendar 2012 11日目の記事です。 昨日は Shusuke Otomo さんの 初めて Pull Request した話。 #phpadvent2012 | slumbers でした。 皆さん、テンプレートエンジンは何を使ってますか? おおっぴらに使ってますと発言するのもちょっと勇気がいるくらい、スキル高そうなPHPerの皆さんからよくdisられている(ような気がする)Smartyですが、実際のところ現役のユーザーは結構いるんじゃないでしょうか。 (参考記事 PHP ユーザは実際はどんなテンプレートエンジンを使っているのか? (途中経過) - A Day in Serenity @ kenjis) 今回はそんなSmartyを題材に「テンプレート変数のHTMLエスケープ」と、それに関連する機能「修飾子プラグイン (Modifier Plugin)」「変数フ

    Smarty3のHTMLエスケープ方法いろいろ + 修飾子プラグインと変数フィルタ (PHP Advent Calendar 2012 Day 11) - k-holyのPHPとか諸々メモ
    koriym
    koriym 2012/12/11
    Smarty !
  • SplFileInfoのメソッドとファイルシステム関数の比較調査メモ - k-holyのPHPとか諸々メモ

    PHPマニュアルの説明を読んでも違いがよく分からない SplFileInfo のファイル名やパスを取得する類のメソッドを、ファイルシステム関数と比較調査したメモです。 SplFileInfo::__construct() の説明には "file_name で指定したファイル用の新しい SplFileInfo オブジェクトを作成します。 ファイルが存在する必要はなく、また読み込み可能である必要もありません。" とあります。 オブジェクトの生成にはファイルの有無は関係ないことを念頭におきつつ、以下のパターンでいくつかのメソッドの結果を調査しました。 (1) 絶対パス、ファイル SplFileInfo(__FILE__) (2) 絶対パス、ディレクトリ SplFileInfo(__DIR__) (3) 相対パス、ファイル SplFileInfo('splfileinfo.test.php') (

    SplFileInfoのメソッドとファイルシステム関数の比較調査メモ - k-holyのPHPとか諸々メモ
    koriym
    koriym 2012/10/19
  • auto_prepend_fileで既存コードに手を加えずエラー発生時の処理を変更する方法 - k-holyのPHPとか諸々メモ

    PHPではエラー発生時も普通にレスポンスヘッダでステータス200を返しますが、それだと困るという場合もあるかと思います。 PHPの設定ディレクティブに auto_prepend_file という、全てのスクリプトが読み込まれる前に別のスクリプトを自動で差し込める機能がありますが、それを使って既存のコードに手を加えることなく、エラー発生時のステータスコードを変更する方法を紹介します。 auto_prepend_file ディレクティブは php.ini .htaccess httpd.conf .user.ini のどこでも設定できますが、今回の目的(HTTPからのアクセス時に発生したエラーのレスポンスステータスを変更)であれば所定のディレクトリ以下のみに限定した方がいいでしょう。 今回は普通に .htaccess で以下の定義を追加します。 説明のため単純に同一階層に設置していますが、実際

    auto_prepend_fileで既存コードに手を加えずエラー発生時の処理を変更する方法 - k-holyのPHPとか諸々メモ
    koriym
    koriym 2012/09/24
  • SplFileObjectとPHP5.4のCallbackFilterIteratorでCSV処理 - k-holyのPHPとか諸々メモ

    普段はSPLをほとんど使っていない(DBからのファイル出力でIteratorを使ったことがあるくらい)のですが、練習のためにSplFileObjectを使ったCSV処理を書いてみました。 ただそれだけだと面白くないので、SplFileObjectを拡張してcurrent()メソッドにコールバック処理を入れ、配列からオブジェクトに詰め替えつつ、PHP5.4から追加されたCallbackFilterIteratorを使ったバリデーションも試してみました。 サンプルではただforeach()で回してHTMLに出力しているだけですが、実際にはバリデーションで例外をスローして処理を中断したり、current()で取得したオブジェクトをDBに保存するような使い方を想定しています。 PHP5.3からはstr_getcsv()という1行分のCSV文字列を配列に変換する関数が追加され、配列へのコールバック処

    SplFileObjectとPHP5.4のCallbackFilterIteratorでCSV処理 - k-holyのPHPとか諸々メモ
    koriym
    koriym 2012/08/07
  • BEAR.Sundayを触ってみたメモ (3)はじめてのページリソース - k-holyのPHPとか諸々メモ

    ※この記事は2012年7月19日時点のsandboxアプリケーションを元に書いたものなので、あまり参考にはなりません。 BEAR.Sundayを触ってみたメモ (1)インストール BEAR.Sundayを触ってみたメモ (2)はじめてのアプリケーションリソース の続きです。 今回は はじめてのwebページ と、はじめてのリソースリクエスト をなぞってみます。 どちらもページリソースですが、前者はアプリケーションリソースを利用しない単純なページリソース、後者は前回触ってみたGreetingアプリケーションリソースを利用するページリソースになります。 ページリソース まず最初にアプリケーションリソースを利用しない最小限のページクラスを作成します。 (モデルを使わないコントローラーだけのHelloWorldページのようなページです。) http://code.google.com/p/bears

    BEAR.Sundayを触ってみたメモ (3)はじめてのページリソース - k-holyのPHPとか諸々メモ
    koriym
    koriym 2012/07/27
  • Composerの使い方を調べたメモ(1) - k-holyのPHPとか諸々メモ

    Composer の使い方を調べたメモ。 Ryuzee.comの記事で分からなかった部分を実際に使って試してみました。 以下、内容はほぼ推測なので、間違いがあれば指摘していただけると嬉しいです。 composer.json 上記の定義で "php composer.phar install" した結果、symfony/class-loader のソースがPackagist経由で https://github.com/symfony/ClassLoader から取得され、/vendor/symfony/class-loader/Symfony/Component/ClassLoader 以下にインストールされる。 composerによって生成された /vendor/autoload.php を読み込むことでcomposerのオートローダが利用できる。 composerのオートローダではライブ

    Composerの使い方を調べたメモ(1) - k-holyのPHPとか諸々メモ
    koriym
    koriym 2012/06/09
  • output_add_rewrite_var()でCSRF対策してみる - k-holyのPHPとか諸々メモ

    output_add_rewrite_var() は、session.use_trans_sid で利用されているURLリライト機能に新しい名前と値のペアを追加する関数。 session.use_trans_sidの場合と同様、有効になるHTML要素と属性は url_rewriter.tags の設定によって決まります。 url_rewriter.tagsの設定は、デフォルトで "a=href,area=href,frame=src,input=src,form=fakeentry,fieldset=" となってますが、それぞれどのように書き換えられるか調査しました。 結論を書くと、書き換えられる要素が何であろうと、以下の仕様となっているようです。(PHP5.4.0 RC6で確認) name はURLエンコード/HTMLエスケープ共にされない value はurlencode()されるが、

    output_add_rewrite_var()でCSRF対策してみる - k-holyのPHPとか諸々メモ
    koriym
    koriym 2012/02/28
  • 1