Articles Comments

ちからの備忘録的日記 » Archive

PHPでコマンド実行する前には、preg_quote を使うと便利

PHPでコマンド実行する前には、preg_quote を使うと便利

PHP で system, exec 関数等でコマンド実行することがたまにあります。その際、特殊文字が入っている場合、エラーになってしまうことが多いと思います。 いちいち、手でエスケープしてもいいんですが、とっても面倒ですし、typo する可能性も高いです。 そういう場合に、preg_quote を使うと便利です。 $cmd = "ls -l hoge[12]"; $ret = system(preg_quote($cmd), $retval); // ls \-l hoge\[12\] にエスケープされます preg_quote関数 string preg_quote ( string $str [, string $delimiter = NULL ] ) preg_quote() は、str を引数とし、正規表現構文の特殊文字の前にバックスラッシュを挿入します。 この関数は、実行時に生成される文字列をパターンとしてマッチングを行う必要があり、 その文字列には正規表現の特殊文字が含まれているかも知れない場合に有用です。 正規表現の特殊文字は、次のものです。 . \ + * ? [ ^ ] $ ( ) { } = ! < > | : – php.net より引用 参考 » PHP: preg_quote – Manual » preg_quoteで特殊文字をエスケープ – PHPプロ!TIPS+ … Read entire article »

Filed under: diary, tips

株価と投資信託の基準価額をPHPで自動で取得する

株価と投資信託の基準価額をPHPで自動で取得する

自分の金融資産のポートフォリオを確認しようと思い、PHPで自動で取得することにしました。毎月積み立てている金融資産もあるので、そのあたりの入力はお手軽に Google Docs の Spreadsheet にお任せしようかなと。 PHPでの実装部分は、モーニングスターから株価と投資信託の基準価額を入手し、HTML で出力するところまでにしてみました。 HTML のスクレイピング HTMLのスクレイピングは、PHP なら simplexml 関数等で xpath 指定するというのが普通かもしれません。ただし、xpath がブラウザによって解釈が違ったりと面倒なことが多いので、今回は以下の本についているサンプルライブラリscrape_func.phpを利用することにしました。 Spidering hacks―ウェブ情報ラクラク取得テクニック101選 ≫ O’Reilly Japan – Spidering Hacks scrape_func.phpは、上記サイトからダウンロードできるファイルの hack084 というフォルダにあります。 株価と投資信託の基準価額を取得する PHP コード <?php include_once "scrape_func.php"; $etf = array( '1306' => 'TOPIX連動型上場投資信託' ); $fnd = array( '1999082402' => 'さわかみファンド', '1986021301' => 'インデックスファンドTSP', … Read entire article »

Filed under: diary, tips