PHPでDOMとかWEBスクレイピングして、RSSがないサイトでも、その更新情報を取得できるようにしたい、と妄想中の爺です。
サイト内リンクだと相対指定になっている
行事を載せているサイトだと、行事名と日付だけあってあとはサイト内の該当ページで詳細を確認して頂戴、みたいなのがよくあります。その際、リンク先の指定は「http」からでなく「../」「./」「/」などのサイト内の相対位置を示すリンク形式になることが多くあります。
このURLを収集しても、実際には使いづらいです。なので、httpからはじまるURLに書き換えなくては…。
trim()を使って、先頭・末尾にある不要な指定文字を消す
trim()関数でよく使うのは、不要な空白が先頭・末尾にある場合です。この関数は、指定した文字でも稼働するみたいです。次のような簡単なPHPスクリプト、とりあえず動いたです。
<?php $a = "../abcdefg.html"; $aa = trim($a,"."); echo $aa."<br />"; ?>
変数$a先頭にある「..」を取りたい、ファイル名の拡張子前にある「.」は取りたくない、という状況です。「/abcdefg.html」と表示され、何も心配は必要ありませんでした。普段のtrim()と同様、先頭と末尾に効く(利く)みたいです。
http以下の必要部分を足してやると絶対指定に
これで、不要部分が消えたので、あとは「http」からはじまる部分を適宜先頭に加えてやれば、個別記事URLができあがり、その分析というか、概要などを抽出できる可能性が手に入ることになりそうです。