タグ

phpに関するnobodyplaceのブックマーク (136)

  • 【PHP】【Symfony】 ピリオド(ドット)を含む文字列でroutingを行いたい

    環境はSymfony 1.4.11。 やりたいことは、次のようなルールが設定されているときに、 sample: url: /:query param: module: module action: action 次のようなURLで引数を渡したいと言うことなのだけど、これが上手く行かない。 http://hogehoge.com/Part.3 結果は、404 Not Foundになってしまう。 なぜ404 Not Foundになってしまうかというと、渡した文字列「Part.3」に含まれるピリオドがセパレータとなって機能し(Symfony 1.4のroutingにおけるデフォルトのセパレータは「/」と「.」)、「Part」部分がモジュール名、「3」部分がアクションとして解釈されてしまうため。単純にSymfonyに文字列が渡らないと言うことであれば、次の解決策が参考になるのだけど、どうやらそうい

  • PHP Simple HTML DOM Parserがとっても便利

    HTMLをパースしてきてDB化したり、RSSのテンプレに落とし込む…と言ったことを少し前からしているのですけど、1つ2つならいざ知らず対象サイトが増えてくると正規表現で何かし続けるのはたいそう無理があります。そういうわけでDOMを使ったりXPathを使ったりもしていたのですが、どちらもHTMLの構造にぴったりとは言えなくて、高度なことが出来るが故に記述が複雑になってしまうのでした。うーん。慣れるまでにハードルがあるな… そんなことを思っていたのですが、ふとした拍子に見つけたライブラリ「PHP Simple HTML DOM Parser」を利用してみたらば、とてつもなく便利でびっくり。jQueryのようなセレクタでガンガン指定して持ってくるスタイルでわかりやすいのなんの。 $text = $dom->find('#todays_darling', 0)->innertext; //今日のダ

    PHP Simple HTML DOM Parserがとっても便利
  • PHP Simple HTML DOM Parser で「セグメンテーション違反です」 「zend_mm_heap corrupted」が発生する。

    PHP Simple HTML DOM Parser で「セグメンテーション違反です」 「zend_mm_heap corrupted」が発生する。 PHP Simple HTML DOM Parser というPHPHTMLを解析する際にとても便利なライブラリ。 これを利用してプログラムを試作していたが、どうしても「セグメンテーション違反です」 「zend_mm_heap corrupted」が発生する。 原因を探ってみたが、一部のロジックをコメントにするとエラーが起こらなくなるしよくわからないでいたら、Q/Aがあった。 どうもPHP Simple HTML DOM Parser では、 DOMを生成して利用後は必ず clearをCallする必要があるようだ。具体的には次の処理を入れることによってエラーが発生しなくなった。

    nobodyplace
    nobodyplace 2011/10/08
    あーこれか
  • Simple HTML DOM documentation

    PHP Simple HTML DOM Parser A fast, simple and reliable HTML document parser for PHP. Created by S.C. Chen, based on HTML Parser for PHP 4 by Jose Solorzano. Parse any HTML document PHP Simple HTML DOM Parser handles any HTML document, even ones that are considered invalid by the HTML specification. Select elements using CSS selectors PHP Simple HTML DOM Parser supports CSS style selectors to navig

  • 【メモ】 配列に要素があるかどうかのチェック 【PHP】

    「配列に要素があるかどうかをチェックするのに、こうやるよりもこうやる方が速い」 みたいな話をどっかで読んだ記憶があって、参考書をひっくり返したり検索したりしていたのだけど、自分の記憶にある文章がどうしても見つからなくて時間を使ってしまっていた…で、気付いた、そんなの自分でコード書いてベンチ取ればいいじゃん。ですよね。もし後日他の実装案が見つかったら追加すれば良いんだし。 といわけで、比べてみる。比較方法は次の2つ。 if(count($array)) { return true; } if(!empty($array)) { return true; } また$arrayが配列と解っている場合には、次でも空配列かどうかを判断できます。 if($array) { return true; } もちろん、$arrayが配列である事を確認するコストを含んでいないので参考で。 Pear::Benc

    【メモ】 配列に要素があるかどうかのチェック 【PHP】
  • 长宁区政府与交行上海市分行达成战略合作 长宁区政府攻的高效显示出进-武冈新擞蔬菜行情网

    最新文章 2018-12-26 08:11▪ 印度油罐车与客车相撞至少11人死亡 2018-12-26 08:11▪ 串起7个5A级景区的杭黄高铁今开通!车票已开售 2018-12-26 08:11▪ “四区五中心一延伸”戒毒模式被纳入四川地方标准 2018-12-26 08:11▪ 昆明首座装电梯天桥提供人性化便捷服务受欢迎 2018-12-26 08:11▪ 台南议长选举民进党惨败议长当选人选前一刻退绿营 2018-12-26 08:11▪ 诵读先贤诗文育我职业素养上海中职学生分享读书活动成果 2018-12-26 08:11▪ 这个公园将是上海市中心最大沿江公园,应勇市长调研,要让市... 2018-12-26 08:11▪ 达州大竹县一吊车发生侧翻造3人受伤 2018-12-26 08:11▪ “三年光阴——王玺‘黄庭坚书风创作研究’作品展”在东方网... 2018-12-26 0

  • phpのインタビュー - phpインタビュー

    phpprogramming languageとして活動中。 PHP is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML.

  • 5.3.7 upgrade warning - Do You PHP はてブロ

    先日リリースされたPHP5.3.7ですが、PHP5.3.8がリリースされるまでアップグレードを待つよう、アナウンスが出ました。 Due to unfortunate issues with 5.3.7 (see bug#55439) users should wait with upgrading until 5.3.8 will be released (expected in few days). 問題となっている不具合は、次のとおりです。 PHP :: Bug #55439 :: crypt() returns only the salt for MD5 家のphp-devでの議論は、次のスレッドを参照してください。 '[PHP-DEV] 5.3.7pl1' - MARC 追記(2011/08/24 10:50) PHP5.3.8がリリースされました。PHP5.3.7を利用している

    5.3.7 upgrade warning - Do You PHP はてブロ
  • Google AnalyticsのAPIをPHPから叩く

    Blogのアクセスレポートで利用してただけど、先日Fenrirのデベロッパーズブログで見かけたのでちょっと書いてみる。 関連 Google Analytics API を利用した人気エントリー PHP スクリプト (フェンリル | デベロッパーズブログ) 【Web】Google Analytics API の簡単に出来るお試し方法 (フェンリル | デベロッパーズブログ) 上記エントリ内では、「GAPI」というクラスを利用していますが、 個人的には「Google Analytics API Class」の方が好きです。 (野良ライブラリなのは同じですが) Google Analytics API class for PHP | Ask About PHP 以下、それを使ったサンプルコード。 サンプルコード require_once 'googleanalytics.class.php';

  • 【メモ】 PDOで空文字をNULLに変換する

    #需要がどれだけあるかわかりませんが PDOを使ってデータを取得する際に、空文字をNULLに変換して取得することが出来ます。 PHP: PDO::setAttribute – Manual PDO::ATTR_ORACLE_NULLS NULL と空文字列の変換 「ORACLE」とありますが、Oracle だけでなく、全てのドライバで利用可能です。 PDO::NULL_NATURAL 変換しない PDO::NULL_EMPTY_STRING 空文字は NULL に変換される PDO::NULL_TO_STRING NULL は空文字に変換される 使用例 $connection = new PDO( 'mysql:dbname=dbname;host=your_host', 'user', 'pass' ); $connection->setAttribute( PDO::ATTR_ORAC

    【メモ】 PDOで空文字をNULLに変換する
  • MLBのデータを引っ張るためのPHPライブラリを書いてみたけど、

    MLBのデータを引っ張ってくるためのRubyライブラリ「Gameday_API」に影響されて、 とりあえずバッターの成績を引っ張ってくるようなPHPライブラリを書いてみた。 なんかこんな感じで使えるようになってます。 イチロー選手の情報を取得する require_once 'Gameday/Batter.php'; $batter = new Gameday_Batter(400085); var_dump($batter); 結果↓ object(Gameday_Batter)[1] protected 'gid' => string '2011_06_18_phimlb_seamlb_1' (length=26) protected 'pid' => int 400085 protected 'position' => string 'RF' (length=2) protected

    MLBのデータを引っ張るためのPHPライブラリを書いてみたけど、
  • Amazonアフリエイト用テスト

    目的 Amazonの商品ページを開いて、そこからなるべく少ないステップでブログエントリに貼り付けるアフリエイト用パーツを取得できるようにする。 やったこと ASINなどを与えるとその商品の情報を取得し整形して表示するプログラムを作成 Amazonの商品ページでアフリエイト用パーツを取得するBookmarkletを作成 1. ASINなどを与えるとその商品の情報を取得し整形して表示するプログラム 大体次のような感じ。 PHPベース フレームワークはSymfony PEAR::Services_Amazonを使用 【メモ】 PEAR::Services_Amazonを使って商品情報を取得(署名認証対応) – nplll サービスURLはこんな感じ。 //amazon.nplll.com/asin/[Amazon ASIN] → 特定の商品の情報を表示する あ、一応オープンになってますが、あくま

    Amazonアフリエイト用テスト
  • 【メモ】 PEAR::Services_Amazonを使って商品情報を取得(署名認証対応)

    いつまでもAmazonのアフリエイト作成ツールに頼ってリンクを作成するのも何だかなぁと思ったので、APIを叩いて結果を取得してみた。色々とやり方はあるだろうけれども、PHPでやる場合にはPEARライブラリの「Services_Amazon」を利用すると簡単。 0. 準備 APIを利用するには、「アクセスキーID」と「アクセスシークレットキー」の2つが必要です。 この辺を参考にアカウントを作成して取得。 Access Key IDの取得 – サービス利用の準備 – Amazon Web サービス デザインが変わってるけど大体解ると思います。 ちなみにこれはAmazonオンラインショップのユーザーアカウントや、アフリエイトのアカウントとは違うので、それらとは別に取得しなくてはなりません。また既にAmazonでアフリエイトをやってる人は、メールアドレスを揃えないといけないらしいです。 1. ライ

    【メモ】 PEAR::Services_Amazonを使って商品情報を取得(署名認証対応)
  • PHPでマルチスレッド(バックグラウンド処理)を実現する方法 - EC studio 技術ブログ

    PHPで長時間かかる重い処理を行うとき、 マルチスレッドで動かせたらなぁ!と思うことがよくあります。 マルチスレッド処理を行うことで、時間のかかる処理を 複数同時に並列実行でき、高速化することができます。 (特に通信処理などで遅延がある場合に有効です) PHPにはpcntl_forkというプロセスをフォーク(複製)することが できる関数がありますが、これはPHPCGIモードで 動かしている場合にのみ有効です。 通常はPHPをApacheモジュールとして動作させていることが 多いので、これが使えないケースが多々あります。 他には、system関数などでシステムコールを行い、 など & を使って実行するという方法もありますが、 これもphpCGI版として実行できなければいけません。 システムコールで呼ぶプログラムをPerlなどで 書けばいいのですが、できればPHPで全部統一したいものです。

  • 【メモ】 DOMDocument::loadHTMLで文字化けする場合

    HTML文書を読み込んでパースするときに、今までは正規表現でやっていたんですが、 処理がどうしても面倒な感じになるし改変にも弱いので、DOMでやることにしてみたらば見事に嵌るなど。 読み込む文書がXMLだと問題ないんですが、HTML、特にShift-JISで書かれた文書だとなぜか文字化け。 色々と検索した結果、多分これで行けると言うのにたどり着いたのでメモ。 参考 DOM拡張モジュールでHTMLをパースする【PHP】 – Programming Magic 文字化けさせないためのポイント 読み込む文書をUTF-8に変換しておく あらかじめ日語文字列を数値文字参照に変換しておく 1. 読み込む文書をUTF-8に変換しておく PHPのデフォルト文字コードに合わせる、と言う意味です。 2. あらかじめ日語文字列を数値文字参照に変換しておく よく解らなかったんですがこれが文字化けの直接できな原

    【メモ】 DOMDocument::loadHTMLで文字化けする場合
  • MySQLのINSERT文(方法ごとの処理時間比較)

    大量のデータをINSERTする場面があってなんとか高速化できないかと思って、 以下の手法を比較してみた。 1件ずつINSERTする トランザクションを使用する 1クエリでまとめてINSERTする テスト環境は以下の通り。 MySQL 5.1 テーブルはInnoDB、AUTO_INCREMENT付き(innodb_autoinc_lock_mode=1) PHP 5.3.6 1000件、3000件、5000件、10000件と件数を増やしながらそれぞれ5回ずつ試行して平均を取っている。 使用したコードは最後に。 結果 手法 1,000件 3,000件 5,000件 10,000件 1件ずつINSERTする

    MySQLのINSERT文(方法ごとの処理時間比較)
  • 【Web】 PHPの正規表現での不具合

    こんにちは。 Web 担当の真谷(シンガイ)です。 今回は PHP で作業を行っていた際に遭遇した予期しなかった不具合についてお話します。 ある JSON ファイルデータをチェックする機能を実装する際に、PHP 5.2 以上で標準で実装されている JSON 関数とは別に、5.2未満のバージョンの PHP でも正常に処理できるように Jsphon という PHP ライセンスの JSON ライブラリを使用していました。 当然のように標準 JSON 関数の場合は正常に動作をしたのですが $result = json_decode($json_data); Jsphon の方は、Segmentation Fault が発生し、正常な動作を行いませんでした。 $json = new Jsphon_Decoder();$result = $json->decode($json_data); おかしいな

    【Web】 PHPの正規表現での不具合
  • pear HTTP_RequestとHTTP_Request2の速度比較 | ユメーディア blog

    httpリクエストを発行するのに、HTTP_RequestとHTTP_Request2のどちらを使うか迷ったので、私のサイトに対しリクエストを投げて速度比較をしてみました。 (特殊な事をやるつもりは一切無く、単に表示されているHTMLを取得するだけの比較です) 組んだプログラムは下記の通り。 HTTP_Request <?php require_once '/usr/share/pear/HTTP/Request.php'; $count = 10; $start = microtime(true); for($i=0;$i<$count;$i++){ $req = new HTTP_Request('http://webdev.li/'); $req->addheader('User-Agent','yume-dia crwl By php'.phpversion()); $req->

    nobodyplace
    nobodyplace 2011/05/24
    あれ、http_requestの方がhttp_request2より全然速いんだ…
  • ionCubeとXdebugの読み込み順ではまる(VPSその8)

    開発の終了が発表されても依然として使用しているフレッシュリーダー。 いずれGoogleリーダーにでも引っ越そうかなと考えてはいるのですけど、 設定の引き継ぎが面倒なのでなんとなく躊躇。 VPSへの引っ越しもタイミングだったかなとは思ったんですが、まぁ面倒だったので今回も結局継続使用します。 フレッシュリーダー自体は丸ごとrsyncでコピーすればOK。 データもライブラリもそれで問題ない。 (環境がLinuxWindowsとか、PHP4→PHP5とかでない限り) 以下、ハマリどころを中心にそれ以降の設定について。 苦難その1: dl()が使えない で、いつも通りioncube_loaderの設定をphp.iniにして…と思ったのだけど、これが動かない。 アクセスしてみると真っ白になってしまう。 ライブラリをハックしてエラーを吐かせてみると、どうやらdl()が動かないと言ってるみたい。 Ca

    ionCubeとXdebugの読み込み順ではまる(VPSその8)
  • いぞるで雑記annex xdebugで表組みのエラー表示がされない!

    PHP5では、php.iniのhtml_errorsがデフォルトでoffになっているようなので、xdebugの表示がそのままでHTML化されず、ただのテキスト表示になっているっぽい。 なので、php.iniをいじる。 html_errors on これでOK!

    nobodyplace
    nobodyplace 2011/05/04
    あー…なるほど