タグ中のテキストノードを取得する方法

DOMモジュールをhogeってたところ、PHPPROでタイムリーな質問があったので関数書いてみた。

/**
 * 最初のノードに入ってるテキストノードを返す
 *
 * @param   string  $html   パースする文字列
 * @return  string          タグに入っていた最初のテキストノードの中身
 * ex. 
 *   get_innerHTML('<p>hoge</p>') = 'hoge';  
 * 
 */
function get_innerHTML($html){
    $d=domxml_open_mem($html);
    $root=$d->document_element();
    $f=$root->first_child();
    return $f->content;        
}

preg_matchとかもうイヤだー!という人にお勧め。

厳密にやるなら再帰的にテキストノードを探しにいくべきだな、と思った。FIXME!