タグ

phpとPHPに関するtsukkeeのブックマーク (287)

  • Boost.PHP で SPL のイテレータを実装する - moriyoshiの日記

    残念ながら所用で参加できなかった モダンPHP勉強会。SPL の発表を Ust 経由で聞いて楽しくなってきたので、Boost.PHP でインターフェイスを実装できるようにしてみた。 追記: Boost.PHP の導入については、id:Kiske さんが素敵なチュートリアルを書いているのでそちらをご覧あれ m009.cpp: #include "boost/php/module.hpp" #include "boost/php/function.hpp" #include "boost/php/klass.hpp" #include <boost/mpl/vector.hpp> #include <boost/shared_ptr.hpp> #include <Zend/zend_interfaces.h> using namespace boost; class RangeIterator

    Boost.PHP で SPL のイテレータを実装する - moriyoshiの日記
  • display_errorsが謎の副作用を持っている箇所について - moriyoshiの日記

    昨日 id:narusase さんよりお便りをいただきました。 はじめまして narusaseです。 ↓このあたりに軽くまとめてありますが・・・ http://d.hatena.ne.jp/narusase/20091203 http://d.hatena.ne.jp/narusase/20091204 htmlspecialcharsのdisplay_errorsの解釈が逆転している問題があるようです。 ↓UTF-8で下記のようなコードを書き実行すると <?php $str = 'メガネ'; $hoge = htmlspecialchars($str, ENT_QUOTES, 'SJIS'); printf("%s\n",var_export($hoge, true)); ?> htmlspecialcharsの箇所でエラーが起こります。 これ自体は問題ないのですがphp.iniの設定が

    display_errorsが謎の副作用を持っている箇所について - moriyoshiの日記
  • PHPの言語仕様がウンコな理由個人的トップ10 - kなんとかの日記

    PHPerの問題点はPHPしか知らずに的外れなことを言うことだ」と、Javaしか知らなくて的外れなことを言っている連中にすら言われちゃってるPHPerのみなさん、こんにちは。 PHPは「使える道具」であることは事実です。しかし同時に言語仕様がウンコなのも事実。 ここでは、個人的にウンコだと思っているPHPの仕様を挙げてみたよ! htmlspecialchars() の名前が長すぎる これはほんとウンコ。おまえWebアプリのための言語やろが!なんでこの関数の名前がこんなに長いねん!こんだけ長かったらめんどくさがって echo $var としてまうやろが!WordPressのthemeでHTMLエスケープ忘れが多いのはおまえの名前が長すぎるせいだ! そんなわけで、全PHPerはこんな関数を定義するといいと思うよ。 ## echo $var; よりも短く h($var); と書ける! func

    PHPの言語仕様がウンコな理由個人的トップ10 - kなんとかの日記
  • PHPでCUIプログラムをPythonの__main__のようにテストする方法 - nokunoの日記

    Pythonでは次のようにライブラリファイルを直接実行するとテストコードが走るようにコーディングすることが一般的になっています。 if __name__ == "__main__": #ここにテストコードを書く 同じようにテストする方法をPHPで実装してみました。 if( realpath($argv[0]) == realpath(__FILE__) ) { //ここにテストコードを書く } ?> これにより、includeやrequireで読み込んだときは実行されず、直接そのファイルを実行した場合のみテストコードが走るようになります。 簡単なテストならPHPUnitなどを使わなくてもこれで十分かもしれませんね。

  • Boost.phpを触ってみた - モノノフ日記

    今年のPHPカンファレンスジャパンで個人的に一番面白かったid:moriyoshiの発表に触発されてBoost.phpを試してみました。 試した環境 debian lenny githubからBoost.phpを取得する とりあえず最新版だけ欲しい人は--depthオプション使うとすぐダウンロードも終わります。moriyoshi/boost.php · GitHub $ git clone http://github.com/moriyoshi/boost.php.git Boostのソースコードを取得する 動作させるのにBoostが必要なのでダウンロードして適当な所に展開。パッケージに含まれるヘッダファイルだけ必要なのでビルドは不要。yumやaptでさっくり入れてもよいかと思います。 添付しているテストコードをビルドしてみる githubから落としたBoost.phpのコードにテストコー

    Boost.phpを触ってみた - モノノフ日記
  • これまで作成した変態パッチを管理しているgithubのレポジトリ - muddy brown thang

    追記: 漏れていた 2 つのパッチを追加 追記2: git fetch が抜けていたので訂正 実はこれも発表の際に降れておくべきだったんだけど、PHP のソースコードの VCS が subversion に移行したおかげで git のミラーが実現し、楽しくパッチを VCS で管理しつつ upstream に追従するということができるようになった。これは実はすごく革命的なことで、 「一人に一つのPHP」 を実現するという野望に一歩近づいたのである。 というわけで、 Autoboxing と new Hoge()->method() を可能にするパッチ: http://github.com/moriyoshi/php-src/tree/PHP_5_3-autobox PHP をテンプレートエンジンとして進化させるパッチ: http://github.com/moriyoshi/php-src/

    これまで作成した変態パッチを管理しているgithubのレポジトリ - muddy brown thang
    tsukkee
    tsukkee 2009/09/06
  • PHPカンファレンス2009へのご来場ありがとうございました - moriyoshiの日記

    追記: スライドの TMP_VAR の図に誤りがありましたので差し替えました。 と、まるで主催のような言い方になってしまいましたが、いやいや、主催の方々はほとんど睡眠してないとのことで、当に頭が上がらないです。当に発表の場をくださったことに感謝します。まあ、とにかくあんなでかい会場でこんなマニアックな話をしてしまって( ゚д゚)な感じになってしまった方も多いとは思いますがありがとうございました。 質疑応答の時間が自分の不手際でまるでなくなってしまったので、ここで FAQ をば。 10の方法って、10ないじゃん!!!! …いえ、ありますが何か? スライドは公開されますか!!!! もちろんです!!!!しかも発表中にはなかったスライド付きの完全版です!!!! パンツの色が派手ですね 当日、洗濯が間に合わず、出来心で買ってみた下着しか残りませんでしたサーセン! Phpをいじり倒す10の方法Vi

    PHPカンファレンス2009へのご来場ありがとうございました - moriyoshiの日記
    tsukkee
    tsukkee 2009/09/06
  • GT Nitro: カーレーシング・ドラッグレーシングゲーム - Google Play のアプリ

    GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠

    GT Nitro: カーレーシング・ドラッグレーシングゲーム - Google Play のアプリ
    tsukkee
    tsukkee 2009/09/01
  • PHP5.3で継承して使うSingletonをちゃんとやる - 絶品ゆどうふのタレ

    発端 02:51:51 (sotarok) で, hoge_klass::get_instance() も,同じように動くようにしたい,でも,hoge_klass には, get_instance を再実装したくないよね 略しすぎてなんだか分からない人のために言っとくと、まぁSingletonの実装ってメンドいから継承したいよねと。 昔、Objective-Cでもそれやったけど 継承して使えるSingletonクラス - ゆどうふろぐ PHP5.3で遅延静的束縛ができたから、継承できるSingletonを実装できるようになったから。 まぁあちこちサンプルあるけど、なんかcloneとかconstructとかちゃんとやって無いし。 で、まぁノリで書いてみたらfinalとかがcloneやconsructに付けられるという事実が分かって*1、なんか思ったよりきちんと重複を排除できる感じで、継承して

    PHP5.3で継承して使うSingletonをちゃんとやる - 絶品ゆどうふのタレ
    tsukkee
    tsukkee 2009/08/14
  • 遅延静的束縛 で new static(); とかできる - 肉とビールとパンケーキ by @sotarok

    タイトルは日語崩壊気味ですが,超メモ. <?php class klass_a { public function __construct() { echo get_called_class() . "\n"; } public static function hoge() { return new static(); } } class klass_b extends klass_a { } $a = klass_a::hoge(); $b = klass_b::hoge(); 結果: klass_a klass_b new static(); w 修正 タイトルが性的な意味でヤバかったので修正

    遅延静的束縛 で new static(); とかできる - 肉とビールとパンケーキ by @sotarok
    tsukkee
    tsukkee 2009/08/14
  • PHP に autoboxing 追加するパッチ - moriyoshiの日記

    先日は、大量の「これはひどい」タグをありがとうございました。これからも PHP の生けるマジコンとして突っ走る所存です。 配列は、以下のようにして繋ぐことも <?php class Ref { var $val; function __construct($a) { $this->val = $a; } } function ref($a) { return new Ref($a); } ref(array(1, 2, 3))->val[0]; PHP で引数をそのまま返す関数を作っておくと便利 autobox があると便利だよねえ。ということで作りました。 <?php class IntObject { private $val; function __construct($val) { $this->val = $val; } function dump() { var_dump($t

    PHP に autoboxing 追加するパッチ - moriyoshiの日記
  • float型の値に対してビット演算する - moriyoshiの日記

  • 第4回 PHP 5.3の追加機能と仕様変更 (2) | gihyo.jp

    モジュール 追加されたモジュール 追加されたモジュールの関数は紹介していません。詳しくはPHPマニュアル参照してください。 INTL ICUライブラリのサポート。エンコーディング変換やロケールなどのサポート機能を持っている。このモジュールはmbstringの必要性を無くすものではありません。 提供するクラス Collector ─ ロケールに応じた文字列比較、ソート NumberFormatter ─ ロケールに応じた数値フォーマット Locale ─ ロケール情報の参照と設定 Normalider ─ Unicode文字列の正規化(NFD/NFC/NFKD/NFKC) MessageFormatter ─ ロケールに合わせたメッセージのフォーマット IntlDateFormatter ─ ロケールに合わせた日付のフォーマット このほかにも、UTF-8エンコーディングされた文字列の処理する

    第4回 PHP 5.3の追加機能と仕様変更 (2) | gihyo.jp
    tsukkee
    tsukkee 2009/08/01
    binary関連の変更には注意が必要かも
  • それでも僕が、エラー制御(抑制)演算子"@"を使う理由 - noopな日々

    PHP プログラマが "@" を使うべきでない 5 つの理由 - 肉とビールとパンケーキ by @sotarok というエントリーを読みました。このエントリー自体は有意義なんで同意なんですが、"@"を使うべきでないなんてコンセンサスができたら残念なので、一応、逆説を提示しておきます。僕が書いても影響力なんてないですけど、一応、言うべきことは言っとこうかと。 始める前に、質的なところ 終的に$qに入るものが同じであることと、コードとして同じ意味であるかは、別じゃないでしょうか。 が一番質的な話で、それ以上の話ではありません。 つまり、発生する可能性があるとわかっているエラーを表示させないことと、エラーがあるかどうかをチェックして適切に処理をするのかは、意味が全然違うという意味です。 http://d.hatena.ne.jp/sotarok/20090721/1248112106 あるコ

    それでも僕が、エラー制御(抑制)演算子"@"を使う理由 - noopな日々
    tsukkee
    tsukkee 2009/07/29
  • 第3回 PHP 5.3の追加機能と仕様変更 (1) | gihyo.jp

    PHP 5.3では、目玉機能として説明した仕様の追加以外にも多くの変更が行われています。PHP 5.2とPHP 5.3の互換性はかなり高いですが注意が必要な変更もあります。 互換性に注意が必用な変更 モジュール関数のパラメータに互換性の無いデータ型を渡すと、NULLを返します。以前のPHPではFALSEを返していました。一部に例外があり、get_class()等ではFALSEを返します。 clearstatcache関数がデフォルトでrealpathキャッシュをクリアしなくなりました。 realpath関数がプラットフォームに依存しなくなりました。 call_user_func関数が親クラスからの呼び出しでも$thisが渡されるようになりました。 配列関数(natsort、natcaserot、usort、uksort、array_flip、array_unique)がオブジェクトを引数と

    第3回 PHP 5.3の追加機能と仕様変更 (1) | gihyo.jp
    tsukkee
    tsukkee 2009/07/29
  • PHP 5.3 では組み込みオブジェクトのシリアライズができるようになりました - 肉とビールとパンケーキ by @sotarok

    # これってドキュメントのどこかに書いてあるのでしょうか。。。? 名前空間、クロージャ、色々新しい機能がありすぎて注目度低めですが、わりかし大事なことかもしれません。w PHP :: Bug #39821 :: Unable to Serialize and then Unserialize a PHP DateTime Object PHP :: Request #41334 :: Enable serialization of DateTime objects #39821 のレポートでは、「それはバグではありません、仕様です」とはねかえされた、「組み込みオブジェクトはシリアライズができない」問題です。 たしかに、serializeのドキュメントのコメントにもそう書いてあります。 で、まあ、そういうことだったんですが、 #39821 の最後のコメントや、#41334 を見ればわかるとお

    PHP 5.3 では組み込みオブジェクトのシリアライズができるようになりました - 肉とビールとパンケーキ by @sotarok
    tsukkee
    tsukkee 2009/07/10
  • mb_detect_encoding() は文字コードの妥当性検証として使用できるか(その3)

    遅くなりましたが、以下の続きです。 mb_detect_encoding() は文字コード判定として使用できるか(その1)) mb_detect_encoding() は文字コード判定として使用できるか(その2)) 今回は ISO-2022-JP、ISO-2022-JP-MS、UTF-16、UTF-16BE、UTF-16LE について、mb_check_encoding() と mb_detect_encoding() を比較しました。調査した PHP のバージョンは、5.2.9 で、前々回(mb_detect_encoding() は文字コード判定として使用できるか(その1))の Patch を適用したもので調査しました。通常の PHP の結果とは一致しません。 間違いを発見した方はコメントなどでご指摘ください。 ISO-2022-JP 正規表現 mb_detect_encoding()

    mb_detect_encoding() は文字コードの妥当性検証として使用できるか(その3)
  • 2年ぶりのメジャーアップデート「PHP 5.3」正式版リリース | OSDN Magazine

    PHP Development Teamは6月30日、オープンソースのスクリプト言語「PHP 5.3.0」の正式版をリリースした。名前空間など、「PHP 6」で実装を予定していた機能を盛り込んだメジャーアップデートとなる。 2006年に「PHP 5.2」をリリースして以来のメジャーアップデートとなる。最新版では名前空間をサポート、衝突することなく、さまざまな空間で同じ名前を利用できるようになった。これまで遅延束縛がインスタンスメソッドのみでサポートされていたが、最新版では遅延静的束縛機能を搭載、静的継承のコンテキストで呼び出し元のクラスを参照できる。クラスメソッドの呼び出しに動的あるいは静的束縛を利用するかどうかを決定できるようになった。 このほか、ラムダ形式関数とクロージャ、サイクルガベージコレクタ、gotoの導入、デフォルトコンパイラのGCCからCCへの変更など多数の新機能が加わった。

    2年ぶりのメジャーアップデート「PHP 5.3」正式版リリース | OSDN Magazine
    tsukkee
    tsukkee 2009/07/01
  • dfltweb1.onamae.com – このドメインはお名前.comで取得されています。

    このドメインは お名前.com から取得されました。 お名前.com は GMOインターネットグループ(株) が運営する国内シェアNo.1のドメイン登録サービスです。 ※表示価格は、全て税込です。 ※サービス品質維持のため、一時的に対象となる料金へ一定割合の「サービス維持調整費」を加算させていただきます。 ※1 「国内シェア」は、ICANN(インターネットのドメイン名などの資源を管理する非営利団体)の公表数値をもとに集計。gTLDが集計の対象。 日のドメイン登録業者(レジストラ)(「ICANNがレジストラとして認定した企業」一覧(InterNIC提供)内に「Japan」の記載があるもの)を対象。 レジストラ「GMO Internet Group, Inc. d/b/a Onamae.com」のシェア値を集計。 2023年5月時点の調査。

  • ke-tai.org > Blog Archive > PHP絵文字ライブラリ変換ライブラリの速度比較について

    PHP絵文字ライブラリ変換ライブラリの速度比較について Tweet 2009/6/17 水曜日 matsui Posted in ソフト紹介, 記事紹介・リンク | 2 Comments » 先日ご紹介させていただいたPHP絵文字変換ライブラリ「HTML_Emoji」ですが、処理が高速なことが売りとなっていました。 興味があったので、実際にどれくらい速いのか、他のライブラリと比較するとどうなのか調べて記事に書こうと思ったら、、、すでにありました。 しかも先日紹介した記事内からもしっかりリンクされてましたね。 見落としていました (^^; → れぶろぐ 絵文字変換ライブラリの処理速度の比較 revulo.com PHP絵文字変換ライブラリでは有名どころの「MobilePictogramConverter」、「Text_Pictogram_Mobile 」と比較した結果が掲載されています。