くうはく〜?
そこに、strip_tagsでタグを除去し、trimして左右の空白を取り除くことで、純粋な発言内容だけを取り出してきている、というわけです。
http://d.hatena.ne.jp/sotarok/20080725/php_study_34_simplexml_code
twitterは試しのポストをしたところ、ポストの際の前後にある半角スペースは自動的に取り除いて反映されてしまうようです。つまり、照れ隠し的な文章として間をおいた後の文言を書き記そうとして
@sotarok すきです!だいすき!
と、もし半角で行間というか、間を入れてポストしたつもりでも投稿者の意に反して
半角スペースは取り除かれ
@sotarok すきです!だいすき!phpspotが!
などとフィルタリングされてしまうわけです。そのため純粋な思いの発言内容は投稿できない→純粋な発言内容は抽出できないというわけですが、前述の通り左右の空白は取りのぞかれてるのにtrim()をなぜするのかとなります。
twitter/homeのhtmlを開き、//span[@class='entry-content']に該当する箇所を見ると、発言前後のspanタグの箇所は改行され、タブが挿入され、ポストの前に半角スペース2つが挿入されているようです。
なので例示されているコードは
foreach ($xml->xpath("//span[@class='entry-content']") as $val) { echo substr(str_replace(array(chr(9), chr(10), chr(13)), '', strip_tags($val->asXML())), 2) ."\n"; }
と言った具合に「左右の空白」ではなく改行、タブをreplaceし、投稿左の半角スペース2つによる空白を取り除くっていうのがtrim()してる本来の趣旨じゃないでしょうか?
「もっとうまい方法」がスクレイプを指してるならば、Diggin_Scraperのソースを…じゃなくて、HTMLScraping Class+tidyで徹底的に整形するってのがふつうのやり方で、@による抑止なしでもSimpleXMLElementにてロードしてる箇所はエラーがでないかと。