タグ

phpに関するunaristのブックマーク (156)

  • PHP の正規表現があまりに複雑なのでまとめてみた - A Day in Serenity @ kenjis

    できるだけ正確な記述を目指していますが、誤りがありましたら、お知らせ願います。 (最終更新: 2013/3/29 11:22) 正規表現の種類 まず、PHP には以下の 3種類の正規表現があります。 Perl 互換の正規表現 (pcre) mbstring の正規表現 (mbregex) POSIX 拡張正規表現 (regex) このうち、regex は バイナリセーフでない 日語は扱えない PHP 5.3 で非推奨 なので使わない方がいいでしょう。見つけたら、随時 pcre か mbregex で書き直しましょう。 Perl 互換の正規表現 (pcre) 正規表現エンジンは Perl の「PCRE」 日語は UTF-8 のみ扱える UTF-8 を使う場合は、パターン修飾子に u を指定する 文字クラスはロケールの影響を受ける PHP: 文字クラス - Manual 処理の制限値 (p

    PHP の正規表現があまりに複雑なのでまとめてみた - A Day in Serenity @ kenjis
    unarist
    unarist 2014/09/26
  • PHP5.4時代のprivateメソッドテスト手法 #php5_4

    PHP5.4 Advent Calendar 2011の7日目です。昨日は@madapajaさんの「PHP5.4+ で開発が行われている BEAR.Sunday フレームワークを動かしてみる」でした。 さてさて皆さん、ユニットテストしてますか? PHPもテストのライブラリが充実してきており、カバレッジ100%に情熱を燃やしている方も多いことでしょう。 ユニットテストで困るのが、private/protectedメソッドです。外から呼べないので、普通の方法ではテストできません。(protectedは適当なダミーのサブクラスを作ってそこからテストできますが、ちょっと面倒です。) まあ当然です。外から呼べないようにprivateにしているので、簡単に呼べたら逆に困るわけです。しかしながら、privateメソッドも外から呼んでテストできた方が開発ははかどるでしょう。この記事ではPHPでprivat

    PHP5.4時代のprivateメソッドテスト手法 #php5_4
    unarist
    unarist 2014/09/24
  • PHPExcelが遅い場合

    PHPExcelというPHPライブラリがありまして、PHPでシンプルなExcelを生成するのに便利なので、何かと利用しているわけです。 #「シンプルな」というのはどういうことかと言うと、 #既存のExcelファイルを開いて操作することも可能ではあるのですが、 #いわゆる「Excel方眼紙」や、図表が入っている場合には、ほぼ再現できないためです。

    unarist
    unarist 2014/09/18
    xdebugが有効だとやたら遅いといういつものパターンか
  • PDFを作成する (1/3):CodeZine

    はじめに PHPPDFを作成する場合にはPDFLibやmPDF、FDPDFなどさまざまな選択肢がありますが、ライセンス、パフォーマンスなどの点で問題がある場合に、Haruの利用を検討してみてはいかがでしょうか。 HaruはZLibやPNGと同様に、非常に緩いライセンス形態を取っているため、サービスの種類を問わず組み込みやすい点に特徴があります。 また、PHPのネイティブエクステンションとして提供されているため、PHPのライブラリとしてパフォーマンスが出ない場合にも利点があります。 とはいえ、サイト上にもあまり情報がなく、日語の利用に関して不安があるかもしれません。しかし最初にいくつか挙げたライブラリは、元々は海外発信のライブラリでした。対して、HaruはlibharuというCのライブラリのエクステンションであり、libharuは日が発信元となっていますので、日語に関しても安心して利

    PDFを作成する (1/3):CodeZine
  • PHP 文字列リテラルにおける変数展開ノ全テ - do_aki's log

    はじめに 記事は、PHP Advent Calendar 2013 18日目です。 前日は @oasynnoum さんの http://oasynnoum.blogspot.jp/2013/12/raspberry-pi-php.html でした。 ラズパイ x php ってあまり見ない組み合わせだったので、なかなかに新鮮でした。 さて、まず初めに大事な前提を。 この記事に書かれている内容は php-5.5.7 のコードをベースにしています。それ以前のバージョンでもだいたい同様に動くと思いますが、今後のバージョンで同じように動作するかどうかは分かりません。 世にも奇妙な php 早速ですが問題です。 code.1 は、何が出力されるでしょうか? code.1 <?php echo "${" . " . " . "}"; ぱっと見では "${ . }" が出力されそうに見えるこのコード、正

    PHP 文字列リテラルにおける変数展開ノ全テ - do_aki's log
    unarist
    unarist 2014/09/04
  • PHP 5.4.4から==の挙動が一段と難しくなりました - hnwの日記

    PHPの==は両辺を適当に型キャストしてから比較するような演算子です。この型キャストの規則は難解すぎる上にドキュメントも不十分なため、PHPプログラマでも完璧に理解している人はほとんど居ないくらいの印象です。バグの原因になりかねないため、なるべく==を使わないようにしているPHPプログラマも多いはずです。 ところで、この==演算子の挙動がPHP 5.4.4から変更されていることはあまり知られていません。稿ではこの内容を紹介します。 Bug #54547 の騒動 まずはこの仕様変更の経緯を紹介します。 2年ほど昔、Hacker Newsで2^63付近の整数に対応する文字列をPHPで比較したときの挙動がおかしいというスレッドが盛り上がったことがありました。具体的には、PHPでは「'9223372036854775807' == '9223372036854775808'」がtrueになるとい

    PHP 5.4.4から==の挙動が一段と難しくなりました - hnwの日記
    unarist
    unarist 2014/08/10
    "==同様の比較はin_array関数やsort関数でも行われるので、同様の処理を書いてしまう可能性はゼロではないはずです" 勝手にキャストされる場面も色々あってつらい
  • 新標準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
    unarist
    unarist 2014/08/09
  • PHP の array_merge() や array_recursive() 等の違いをまとめました | Tips Note by TAM

    2013.12.17 PHP の array_merge() や array_recursive() 等の違いをまとめました 以前、JavaScript でのオブジェクトのマージについてまとめましたが、 今回は似たような話で PHP の配列のマージについてまとめます。 PHP の配列のマージ方法には大きく3つあり、 "+" 演算子 array_merge() 関数 array_merge_recursive() 関数 あと、個人的に CakePHP をよく使っているので CakePHP の Hash::merge() メソッド この4つの方法について、挙動の違いを調べました。 一次元配列 実際にコードを動かしてみて、2つの配列をマージした結果を見てみます。 対象データはこちら。 <?php // 対象データ $a = array( 0 => 'blue', 1 => 'red', 'a'

    PHP の array_merge() や array_recursive() 等の違いをまとめました | Tips Note by TAM
    unarist
    unarist 2014/07/10
    CakePHPのHash::mergeが一番しっくりきた
  • PHP array_merge rekeying -- how's it work?

    I had a head-scratcher yesterday. Basically I had an associative array of some data with string keys(containing numeric values, but still, quoted strings) to go in a <select> box as options. I wanted to prepend a placeholder value to the select box's options. I attempted to use array_merge: $placeholder = "Month"; $source = array ( '01' => '01 - January', '02' => '02 - February', '03' => '03 - Mar

    PHP array_merge rekeying -- how's it work?
    unarist
    unarist 2014/07/10
    「配列マージしたら"123"みたいな添え字が破壊された!」「可能な限りintに変換して添え字にする仕様+マージ時にintな添え字は振りなおされる仕様」
  • GitHub - kahagon/php-eject: eject API for 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

    GitHub - kahagon/php-eject: eject API for PHP
    unarist
    unarist 2014/07/05
    「大規模な eject サービス」向けのphpモジュール
  • CodeIgniter3のライセンス問題に対する意見書公開 – ねこげっとぷれす

    ねこげっとぷれす NEKOGET PNESKINの開発等PHPな話題を中心に書いていこうと思います。 メニューとウィジェット ハミングバード法律事務所 白木先生に作成いただいた意見書を公開します。 ☆意見書 (pdf) 受託開発、自社サービスでの開発を前提として、意見書を作成いただきました。 私が仕事をする上での懸念材料は全て払拭することができました。 2013年9月14日に開催されました、PHPカンファレンス2013 LT発表で登壇させていただきました発表資料については少し修正をした上で、改めて公開をさせていただきます。 ライセンス問題についてはCodeIgniter のライセンス変更問題のタイムラインにkenji_sさんが時系列で詳しくまとめてくださっています。 2011年 CodeIgniter カンファレンスにて、CodeIgniter3からOSL-3.0ライセンスへライセンスが

  • GitHub - kohkimakimoto/altax: [Deprecated - This project is no longer maintained] A deployment tool for 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

    GitHub - kohkimakimoto/altax: [Deprecated - This project is no longer maintained] A deployment tool for PHP
    unarist
    unarist 2014/07/03
    CapistranoのPHP版みたいなの。けれどServer::とか$process->とか書いてあるのを見ると、Rubyが恋しいなあ・・・
  • れいさの本当に目が覚めるPHP - Togetterまとめ

    全てのリンク先で肝が冷えます。 PHPerの早朝のネタトークが思いの外インパクトがあったのでまとめただけです。 PHPや利用者がどうこうという文脈ではありません。 ※タイトル変更しました。

    れいさの本当に目が覚めるPHP - Togetterまとめ
    unarist
    unarist 2014/06/24
    外に出さないからセキュリティ無視してさくっと書きたい、という需要がPHPに多いだけにも見える
  • ApplestFramework

    Go to the next generation of PHP. ApplestFrameworkとはPHPで書かれたオープンソースのフレームワークです。軽量で扱い易いため、Webアプリケーションやデータベースと連携するバッチプログラムのフレームワークとしても重宝します。 一般的なフレームワークのアーキテクチャであるMVCをベースに作られていますが、Modelを宣言しなくてもデータベースのデータを扱えたりと、高速開発に適しています。 開発に参加 ApplestFrameworkへの開発は大いに大歓迎です。GitHubをforkしてPull Requestを投げてもらえると大変嬉しいです。 特徴 No-Model 多くのフレームワークではModelを定義することでデータを扱うことができ、Modelとしての機能を利用することができますが、ApplestFrameworkではModelを宣言す

    unarist
    unarist 2014/06/21
    "あくまでもApplestFrameworkはルート処理やデータベースへのマッパーということにして今までの実装などをそのまま使いまわすことができます。"いいかも
  • 今更ながらmagic_quotes_gpcの欠点 - teracc’s blog

    今更ながらですが、PHPのmagic_quotes_gpcをOnにすべきでない理由を整理してみます。 世の中には、magic_quotes_gpcはOffにすべき、と書いた文章は多数あるのですが、その理由を(私が見る限りで)十分に説明しているものは無いからです。 以下では、 1. 対象外の変数の存在 2. 弊害(副作用) 3. エスケープの不完全さ という三つの観点から記述します。 対象外の変数の存在 magic_quotes_gpcの、「gpc」はGET/POST/COOKIEを表しています。つまり、この3種類のリソースからの入力はエスケープされますが、それ以外は原則エスケープされません。 エスケープされているもの、されていないものを、以下にまとめてみます。 エスケープ済み ・$REQUEST $_GET・$_POST・$_COOKIE 場合によってエスケープ済み ・$_SESSION

    今更ながらmagic_quotes_gpcの欠点 - teracc’s blog
    unarist
    unarist 2014/06/08
    すごくphpらしい罠機能・・・
  • サービス終了のお知らせ

    平素より「PHPプロ!」をご愛顧いただき、誠にありがとうございます。 2006年より運営してまいりました「PHPプロ!」ですが、サービスの利用状況を鑑みまして、2018年9月25日(火曜日)をもちましてサービスを終了させていただくことになりました。 サービス終了に伴いまして、2018年8月28日(火曜日)を持ちまして、新規会員登録ならびにQ&A掲示板への新たな質問、回答の投稿を停止させていただきます。 なお、ご登録いただいた皆様の個人情報につきましては、サービス終了後、弊社が責任をもって消去いたします。 これまで多くの皆様にご利用をいただきまして、誠にありがとうございました。 サービス終了に伴い、皆様にはご不便をおかけいたしますこと、心よりお詫び申し上げます。 件に関するお問い合わせはこちらよりお願いいたします。

  • Ethna Doc

    Warning このウェブサイトは現在、2.6リリースにむけて新しく整備中です (また、Sphinx での運用をテスト中です) ドキュメントが完全に整備されるまでは、以前のドキュメントのアーカイブを参照してください http://ethna.jp/old/ ようこそ!¶ Ethna (えすな)は、PHPを利用したウェブアプリケーションフレームワークです。 Ethna 以下のような特徴をもっています: わかりやすい MVC 風の構造 圧倒的に簡潔で強力なフォーム機能 「理想の追及」よりも「実際のアプリケーション開発」に重点をおいた現実的な設計思想 Ethna には 『絶妙に妥協』 という合言葉があります。いかに PHP らしく複雑すぎず簡単に、しかしロジカルにアプリケーションを記述するか、その絶妙なバランス感を持つフレームワークです。

    unarist
    unarist 2014/06/02
    "いかに PHP らしく複雑すぎず簡単に、しかしロジカルにアプリケーションを記述するか"
  • Phacility - Home

    Phabricator is a set of tools for developing software. It includes applications for code review, repository hosting, bug tracking, project management, and more.

    unarist
    unarist 2014/05/09
    コードレビューとかBTSとか色々入ってる。
  • herokuのPHP正式サポートに伴い、Wordpressを構築する上での最低限の設定方法

    今までもビルドパックを駆使したりしてherokuWordpressを運用する方法がありましたが、この度正式にPHPをサポートしたっぽいので新しい方法でwordpressを構築してみました。 ※ ちなみにherokuでのWordpress構築方法(DBの設定や、Wordpressの初期設定)についてはこちら( http://blog.mah-lab.com/2013/05/01/wordpress-on-heroku/ )のサイトが非常にわかりやすいのでこちらを参照ください。Webサーバーについての設定(.htaccessとかnginx.conf.erb)は不要です。ここではアプリの作成と最低限の設定のみ紹介します。 アプリを作成 ビルドパックなどを利用しないので、アプリ名だけ入れてください。 heroku create [アプリ名] composer.jsonの設定 herokuアプリ内

    herokuのPHP正式サポートに伴い、Wordpressを構築する上での最低限の設定方法
    unarist
    unarist 2014/05/01
  • ファイルダウンロード時のファイル名が文字化けする対処法 - [PHP + PHP] ぺんたん info

    ファイルをダウンロードするときのヘッダーは次のようになります。 header('Last-Modified: '. gmdate('D, d M Y H:i:s') .' GMT'); header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="'.$file_name.'"'); header('Content-Transfer-Encoding: binary'); header('Content-Length: ' . filesize($file_path)); [参考記事] SSL(HTTPS)でファイルのダウンロードができない場合 ダウンロード時の