動天驚地のPHP

PHPで携帯電話向けに他のHTMLのテーブルタグを加工して表示するPHPを書いている人がいて、興味本位で「どうやってHTMLを拾ってきているの? LWPみたいなものがあるの?」と聞いてみました。そうしたら、全然予想しない答えが返ってきたのです。
『 fopen(URL,モード) に決まっているじゃないですか〜 』
Σ( ̄□ ̄||) え、何それ? その答えの意味に瞬時に気づいてしまったせいで、ますます混乱してしまいました。そう、PHPはfopenだけでsocketを自動で開いて外のネットワークにあるファイルを扱えるんですね〜。今までsocketを使ってきた身としては、びっくりするしかありません。節操ないなぁ、PHPは・・・もちろんURIのスキームをftpにすれば、書き込みモードでfopen可能です(笑)
そんなわけで、ちょっとしたPHPクイズです。(perlクイズの真似だとか言わないようにw)

次の二つのスカラー変数
$a = 10;
$b = "abc";
の値をそれぞれ置換することを考えます。つまり、 $a には"abc"が入り、 $b には10が入るようにプログラムを書くとすると、あなたはどのように書きますか? $a, $bがそれぞれ任意の値でも同様に置換できるようなプログラムを書きなさい。

いや〜、やれと言われたら簡単な単純置換です。しかし、良く考えるとそれを綺麗に処理しようと思うと意外とむずかしいものですヨ。