apns-php - Project Hosting on Google Code PHPからiPhoneに通知を送るためのオープンソースの仕組み「apns-php」がGoogle code に公開されています。 PHPコードによってiPhoneに通知を行えるようになります。 PHPとしては次のようなコードによってpush送信を行うことが出来るようです。 <?php $push = new ApnsPHP_Push( ApnsPHP_Abstract::ENVIRONMENT_SANDBOX, 'server_cerificates_bundle_sandbox.pem' ); $push->setRootCertificationAuthority('entrust_root_certification_authority.pem'); $push->connect(); $messag
PHPでQRコード生成のためのPEARパッケージ「Image_QRCode」。 QRコード作成のライブラリは他にあったりしますが、PEARにあがったみたいです。 サンプルコードは次のように超シンプルに実装できます。 <?php require_once("Image/QRCode.php"); $qr = new Image_QRCode(); $qr->makeCode("Hello, world"); ?> QRコードがPNG画像として出力されます。 QRコードのバージョンを指定したり、出力形式をJPEGにしたり、GDのオブジェクトとして受け取ったりするオプションもあって便利そうです。 以下のPEARサイトのページを参照してください。 Image_QRCode
PHPからTwitterを簡単に操作できるPEARパッケージ「Services_Twitter」がアップデート 2010年01月10日- Services_Twitter :: 0.5.0 PHPからTwitterを簡単に操作できるPEARパッケージ「Services_Twitter」がアップデートしたみたいです。 ChangeLogによると次のようなAPIに追加で対応したみたいです。 + added statuses/home_timeline + added statuses/retweeted_by_me + added statuses/retweeted_to_me + added statuses/retweets_of_me + added statuses/retweet + added statuses/retweets + added report_spam metho
私の職業はWebエンジニアですが 少しPHPがわかるのでルーチン化できるものはPHPを組んでいます。 そうすることによってJavaで1時間かかる作業が1分で終わることがあります。 なので職場では「仕事が早い、仕事ができる」と評価されることがありますが 先日先輩に怒られました。 内容は ・PHPを使うのはずるい ・それは実力ではない ・仕事が早いというのは同じ環境でどれだけ間違いがなく効率よく作業ができるかだ。 ・PHPを組むのはズルとしているのを同じ と。 確かにJavaで行なえば周りの人と同じくらいの速さなので 周りと同じ環境であれば(PHPを組まなければ)仕事が早いとは言えないかもしれません。 しかし業務をどう効率よくして作業をするかを考え実践するのも仕事のうちだと思うのですが 私の考えは間違ってますか? XSSもチェックするコードを書いたので、ミスはありません。 「PHPを組んだ方が
面接官「特技はマジッククォートとありますが?」 PHP 「はい。マジッククォートです」 面接官「マジッククォートとは何のことですか?」 PHP 「魔法です」 面接官「え、魔法?」 PHP 「はい。魔法です。リクエスト全部に大ダメージを与えます」 面接官「……で、そのマジッククォートは当社において働くうえで何のメリットがあるとお考えですか?」 PHP 「はい。ハッカーが襲って来ても守れます」 面接官「いや、当社にはエスケープを忘れるような輩はいません。それにサニタイズは犯罪ですよね」 PHP 「でも、インジェクションにも勝てますよ」 面接官「いや、勝つとかそういう問題じゃなくてですね……」 PHP 「入力全部にaddslashesを与えるんですよ」 面接官「ふざけないでください。それにaddslashesって何ですか。だいたい……」 PHP 「\を付与するんです。埋め込み先がHTMLでもお構
先日から「GnuCash」使って家計簿を付け始めたyukiです。 だいぶ長いこと複式簿記に触れていなかったので、思い出すのに一苦労でした。家計簿で「損益計算書」や「貸借対照表」、「キャッシュフロー」を見てみると新たな発見があっていいですね。是非オススメです。 さて今回は、先日の社内勉強会で行った「いまさらPHP5.3をあらためて見てみる」をレポートします。機能をサンプルコード交えてざっとチェックしていっただけですが、参考になれば幸いです。 参考:PHP 5.2.x から PHP 5.3.x への移行 新機能からチェックしていきます。まずは話題になっていた名前空間などから。 名前空間 # global.php namespace { class MyProject { public function getName() { return 'global'; } } } # unoh.php
PHPには不可思議な動作をするケースが多々ある。その仕様について嫌になるか、柔軟性があると感じるかで好き嫌いが分かれるような気がする。特に不可解なのが、文字列の比較だ。文字列と数字を比較したり、空文字がfalseになったりするのはとても危険な気がしてしまう。 RubyでもPHP的比較を だがPHPからRubyに移った人にすれば、この仕様が好きな場合もあるかも知れない。そんな時に使えるのがruby-phpだ。 今回紹介するフリーウェアはruby-php、Ruby用のPHP風比較処理を可能にするライブラリだ。ソースコードは公開されているが、ライセンスは明記されていなかったのでご注意いただきたい。 ruby-phpを読み込むと、"99" == 99でtrueが返るようになる。また、"" == falseもtrueが返る。Webフォームやクエリーのパラメータで文字列が送られてきても、問題なく(?)
PHP: similar_text - Manual PHPで文字間の距離を測る関数「similar_text」が便利。 私はずっとこの関数の存在を知らなかったのですが、similar_textという関数がPHP4から標準で存在するようでした。 使い方は簡単で、similar_text( 文字列1 , 文字列2, 類似度 ); のように実行すると、マッチした文字の数が返るみたいです。 例えば、サンプルコードを見てみましょう $words = array( 'psp', 'javascript', 'php', 'spot', 'twitter' ); $matches = array(); foreach ($words as $word) { $c = similar_text('phpspot', $word, $percent); echo 'phpspot と '.$word.'
サーバー上の静的なコンテンツをPHPなどの動的なスクリプトから出力したときがたまに有ります。 例えばログインしているユーザーにだけ画像を見せたい場合などです。 こういう時、一番簡単な方法は if($logged_in){ $filename = 'hoge.gif'; header('Content-Length: ' . filesize($filename)); header('Content-Disposition: attachment; filename='.basename($filename)); readfile($filename); } とする事です。 若しくは if($logged_in){ $filename = 'hoge.gif'; header('Content-Length: ' . filesize($filename)); header('Content
CakePHPでバリデーションを使う際、標準(CakePHP1.2)のままでも十分開発はできますが、大きめのプロジェクトや複数のプロジェクトでも汎用的かつ効率的に使えるようにできないかと検討しました。 バリデーション改善の目的 エラーメッセージを日本語化し共通化・デフォルト化したい 独自バリデーションメソッドを共通化したい ルール配列を簡単に記述したい(項目が多いとソースが長くなり過ぎて見通しがよくない) バリデーションの前に自動で整形処理をしたい(半角英数変換やカタカナ変換など) 実装にあたって バリデーションメソッドの共通化については、 cakephperさんの日記:よく使う独自バリデーションルールをプラグインのbehaviorにまとめる に記載してありますように、プラグインのbehaviorで管理するほうが良いと思いますが、今回は弊社で過去に実装した通常のbehavior(Bas
if ("0x0A" == "10") { print '(´ε` )チュッ'; } チュッ。されちゃいます。 文字列であっても整数と解釈できる文字列の場合は勝手に型変換しやがる今世紀最大の愚行を犯してしまうってのは有名な話だよね。 文字列であっても整数と解釈できる文字列の場合は自動的に整数に型変換してくれる超便利機能があるってのは有名な話だよね。 だけどなんでコレが一致するかわけがわからんかった。 0x0Aは10進数で10になるので一致する。と、言いたいところなんですがそう単純な話じゃないんだ。 以下の例を目ん玉見開いて見て欲しい。 var_dump(0x0A); var_dump("0x0A"); var_dump((int)"0x0A"); var_dump((float)"0x0A"); var_dump(intval("0x0A")); 実行結果 int(10) string(4
ぼく「えっ」 PHP「"0x0A" == "10"はTRUEになりますが」 ぼく「いえFALSEです」 PHP「えっ」 ぼく「えっ」 PHP「まだ比較したことがないということでしょうか」 ぼく「えっ」 PHP「えっ」 ぼく「変化するってことですか」 PHP「なにがですか」 ぼく「型が」 PHP「ああ文字列でも整数っぽい文字列なら自動で型変換されますよ」 ぼく「そうなんだすごい」 PHP「では比較いたしましょうかTRUEですよ」 ぼく「でも"0x0A"は明示的にキャストしたら0になりますよね」 PHP「えっ」 ぼく「えっ」 PHP「ああ16進数のことなら比較の場合のみ10進数に自動で変換してから比較するんですよ」 ぼく「なにそれこわい」 PHP「"0x0A" == "+000010.0000000000000001"の場合もTRUEになります」 ぼく「なにそれもこわい」 PHP「えっ」 ぼく
PHP開発者であれば誰しもがお世話になるであろうvar_dump(またはprint_r)。とりあえず何か問題があったら使ってみる、と言う人も多いはずだ。だがそんな便利なはずのvar_dumpも整形されていないのでブラウザ上では見づらいという欠点がある。 var_dumpをさらに使いやすくしたデバッグ用関数を提供する そのため、var_dumpで出力した後にブラウザのソースで配列の順番を確認する、といった操作はよくあることだろう。だがこれからはKrumoを使ってデバッグを行えば良さそうだ。 今回紹介するオープンソース・ソフトウェアはKrumo、次世代のvar_dump、print_rを目指すデバッグライブラリだ。 Krumoはデバッグ用のライブラリであり、特別な拡張は必要なく利用できる。開発時にはphp.iniにKrumoを設定しておくことが推奨されている。そしてKrumoの関数にデータを見
Eコマースシステムはそれが最適かどうかは別とすれば、ほぼ仕組みが決まりつつあると言っても良いだろう。商品の一覧と詳細、ショッピングカート、決済と続く。その間にユーザ登録があるなしといった違いはあっても、概ね同じようなものだ。 ユーザ画面 そう考えるとEコマースシステムは自作で作るほどのものではないということになる。もっと違う切り口からユーザに迫るためにも、システムは既存のものを使った方が良いだろう。 今回紹介するオープンソース・ソフトウェアはDantoCart、PHP+MySQLによるEコマースシステムだ。 DantoCartはとても完成度の高いEコマースシステムだ。ユーザ向け画面はカテゴリと商品一覧に加えて特定の情報を出すCMS機能もある。商品をカートに追加すると画像が飛んでカートがアップデートされる仕組みもある。 商品詳細 ユーザ登録は必須となっており、新規購入時にパスワードを入力する
sitepointで、次のプロジェクトに使えるPHPフレームワークがまとまっています。 ざっといくつかご紹介。 » Agavi PHP5ベースのMojavi系フレームワーク。完成度の高いアプリを開発することにフォーカスしている » Akelos 複雑な設定を避け、シンプルに使えることを目的としている。健全なコミュニティーもある » CodeIgniter その足跡とスピードでよく知られるようになったフレームワーク。コミュニティーも役に立つ » Kohana CodeIgniterをベースにしたフレームワーク。小規模で速く、セキュアであることにフォーカスしている » ZooP 軽量でとっつきやすいフレームワーク。PEARモジュール、プロトタイプのAjaxフレームワーク、大量のドキュメントがあるのが特徴 その他のリストは以下からどうぞ。 » 16 PHP Frameworks To Consi
【戯れ言】symfonyはCakePHPよりは大規模向けです - ぷぎがぽぎ すでに過去の資料に言及されていますが、敢えて釣られてみます。 自分の基本的なスタンスとしては大規模であろうと小規模であろうと好きなフレームワークを使って開発するのが良いと思います。 結局のところ同じ程度に成熟していればどのフレームワークを使っても、レアなケースを除いて望んだアウトプットが得られると思います。 ただそれぞれのフレームワークにベストプラクティスというか勝ちパターンのようなものはあると思います。 業務での利用について自分なりに知っていると思えるCakePHPとsymfonyについて勝ちパターンを考えてみました。 CakePHPのベストプラクティス PHPのコーディングかRailsの経験者がチームに居る 連想配列が中心となるデータモデルに慣れる 各種日本語書籍で全体感をつかんでおく 開発のイメージにフレー
例えば、フレームワーク比較で良く目にする違いとして「Symfonyは大規模向け、CakePHPは中小規模向け」というのがある。これはいったい何なのだろう? よく読むと、大抵は「Symfonyはプラグイン機能があるため、大規模向け」という書き方がされている。これは本当にそうなのだろうか? まず簡単なツッコミをさせていただくと、CakePHPは、既にプラグイン機能を装備している。Symfonyとほぼ同じように、一連機能を持った仕組みを簡単に入れたり抜いたり出来る。つまり、この定義でいけば、CakePHPは十分に大規模向けだ。 .. (略) .. そしてプラグインは、私はむしろ逆の、中小規模向けのものと考える。何故なら、第三者の制作したものを、手っ取り早く自分のものに出来るというのが実質的なところであり、そういった用途のものは中小規模向けに書かれているものが多いからだ。 まず前提として、プラグイ
ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog おひさしぶりです。オークション担当の山崎 賢です。 前回はPHP Serialize についてでしたが、 今回はPHPでのデバッグに関してお話します。 基本PHPはインタプリタ(厳密にはPHPは内部で一度コンパイルしていますのでインタプリタとは言い切れませんが) のデバッグではログ埋め込みが手軽です。 しかし、まれにSIGSEGVやSIGBUSなどでPHPスクリプトが落ちることがあり、途方にくれます。 地道にログを埋め込んでいき、箇所を特定するのも手法の1つですが、今回はgdbを用いたデバッグ方法を記載したいと思います。 ■STEP1 まずは、プログラムが落ちることを目的として以下のようなPHP Moduleを作成します。 ・ ・
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く