前回紹介した本は、2日で一気に読んでしまった。
そこで、いくつか・・・いやもっとたくさんの発見。
そのひとつ。
「phpでもperlでおなじみのヒアドキュメントが使える」と、いいたいがperlを使った経験がないので、はじめてのことば。「ヒアドキュメント」って??
文字列を一気に変数に入れたいとき便利なものといったらいいか。
$tagにテーブルタグを書き込もうとするとき、
<?php
$tag = "<table>\n";
$tag .= "<tr><td>なんとか</td></tr>\n";
$tag .= "</table>\n";
?>
のように「どっとイコール」つなげていたので、やたらめんどうだった。
でも、ここでヒアドキュメントという術があったのだ。
<?php
$tag = <<<EOM
<table>
<tr><td>なんとか</td></tr>
</table>
EOM;
?>
これなら、タグの部分をコピー&ペーストできる。
うわあ便利とおばさんは感激。早速作成中のプログラムに使った。
そこで、いくつか・・・いやもっとたくさんの発見。
そのひとつ。
「phpでもperlでおなじみのヒアドキュメントが使える」と、いいたいがperlを使った経験がないので、はじめてのことば。「ヒアドキュメント」って??
文字列を一気に変数に入れたいとき便利なものといったらいいか。
$tagにテーブルタグを書き込もうとするとき、
<?php
$tag = "<table>\n";
$tag .= "<tr><td>なんとか</td></tr>\n";
$tag .= "</table>\n";
?>
のように「どっとイコール」つなげていたので、やたらめんどうだった。
でも、ここでヒアドキュメントという術があったのだ。
<?php
$tag = <<<EOM
<table>
<tr><td>なんとか</td></tr>
</table>
EOM;
?>
これなら、タグの部分をコピー&ペーストできる。
うわあ便利とおばさんは感激。早速作成中のプログラムに使った。
file($url)で、$urlが示すサイトが存在しなかったり、パスワード付で開くことができいなどのエラーの場合、file($url)はfalseを返す。それを判定に使いエラー後の処理を書くことができるが、Warning:が表示されてしまう。
それを回避したい場合、@file($url)とすると、Warning:を無視できる。
ただ、プログラム開発上Warning:は必要な情報が含まれているので、なるべくなら@マークをつけないほうが望ましい。仕様上必要な場合は、あとあと困らないために、なぜそのような処理をする必要があったのかをメモしておくといい。
それを回避したい場合、@file($url)とすると、Warning:を無視できる。
ただ、プログラム開発上Warning:は必要な情報が含まれているので、なるべくなら@マークをつけないほうが望ましい。仕様上必要な場合は、あとあと困らないために、なぜそのような処理をする必要があったのかをメモしておくといい。
まず、URL上のHTMLソースを取得できるか?が、こんどの作品の課題。
これが実に簡単。ファイルの内容を配列に取り込む、file()という関数を使えばいいことが判明。
$lines = file('http://www.example.com/');
とすると、HTTPを通してURL上のHTMLソースを取得してくれる。
で、HTMLをHTMLソースとして行番号付で表示したければ、配列をループして・・・。
foreach ($lines as $line_num => $line) {
echo "Line #{$line_num} : " . htmlspecialchars($line) . "<br />\\n";
}
出だし、快調・・・。
これが実に簡単。ファイルの内容を配列に取り込む、file()という関数を使えばいいことが判明。
$lines = file('http://www.example.com/');
とすると、HTTPを通してURL上のHTMLソースを取得してくれる。
で、HTMLをHTMLソースとして行番号付で表示したければ、配列をループして・・・。
foreach ($lines as $line_num => $line) {
echo "Line #{$line_num} : " . htmlspecialchars($line) . "<br />\\n";
}
出だし、快調・・・。
大昔fortranをかじり、昔VisualBasicをかじり、Javaもちょっとだけかじりのおばさんなので、「ループやif判定の心」は一応培われており、それほど苦にならない。けど、それぞれに微妙に書き方が違ってたりして、細かい言葉を忘れてしまってる。今回、ループ抜け出すときのコマンド何だっけ?とでてこない。foreach文から飛び出したい。exit();だと全部おわっちゃうし・・・。しばしぐぐった結果、ああ、break;だったか・・・・。
ところで、PHPプロ!TIPSメーリングリストに、continueとbreak、使いこなしてますか?というのがあった。なるほど、奥が深い。
ところで、PHPプロ!TIPSメーリングリストに、continueとbreak、使いこなしてますか?というのがあった。なるほど、奥が深い。
php: php マニュアル - manual以外に、
こんなことがしたいけどどうすれば、というときに覗くのに重宝。
php 標準関数逆引き辞典
【phpの予備知識】
phpサンプル集 - phpspot
php tips
perl・php・javaによるプログラミングサンプル集
こんなことがしたいけどどうすれば、というときに覗くのに重宝。
php 標準関数逆引き辞典
【phpの予備知識】
phpサンプル集 - phpspot
php tips
perl・php・javaによるプログラミングサンプル集

