とあるサイトの構成をエクセルに起こす必要があったので。
ページのソースをまるっと拾ってきてpaiza.io上で実行するという手抜きっぷり(/・ω・)/
注意
※@mpyw さまにコメントいただきましたが、このパターンはa href
というようにa要素の最初がhref属性である場合にしかマッチしないので、それ以外のパターンも想定される場合はコメント欄のコードをご活用くださいませ(^▽^)/
mpywさま ありがとうございました!
とりあえずコード
preg_match_all("|<a href=\"(.*?)\".*?>(.*?)</a>|mis",$str,$matches);
$matches[0]
に該当部分
$matches[1]
にhrefの中身
$matches[2]
にリンク先名称
が、それぞれ配列で入ってきます。
サンプル
対象ページはQiita:Support
さすがに全部は多いので機能の部分だけ。
preg_match_all
//ソースは長いので割愛
$str = "ソース";
preg_match_all("|<a href=\"(.*?)\".*?>(.*?)</a>|mis",$str,$matches);
var_dump
var_dump($matches);
/*
array(3) {
[0]=>
array(10) {
[0]=>
string(50) "<a href="/ja/categories/qiita/features">機能</a>"
[1]=>
string(64) "<a href="/ja/articles/qiita-contribution">Contributionとは</a>"
[2]=>
string(69) "<a href="/ja/articles/qiita-emoji">絵文字の利用について</a>"
[3]=>
string(68) "<a href="/ja/articles/qiita-feed">フィード機能について</a>"
[4]=>
string(85) "<a href="/ja/articles/qiita-follow">タグやユーザーをフォローしよう</a>"
[5]=>
string(62) "<a href="/ja/articles/qiita-mention">メンション機能</a>"
[6]=>
string(90) "<a href="/ja/articles/qiita-search-options">検索時に利用できるオプション</a>"
[7]=>
string(119) "<a href="/ja/articles/qiita-stocks">素晴らしいコード、Tipsはどんどんストックして役立てよう</a>"
[8]=>
string(103) "<a href="/ja/articles/qiita-syntax-highlight">Qiitaのシンタックスハイライトについて</a>"
[9]=>
string(44) "<a href="/ja/articles/qiita">Qiitaとは</a>"
}
[1]=>
array(10) {
[0]=>
string(29) "/ja/categories/qiita/features"
[1]=>
string(31) "/ja/articles/qiita-contribution"
[2]=>
string(24) "/ja/articles/qiita-emoji"
[3]=>
string(23) "/ja/articles/qiita-feed"
[4]=>
string(25) "/ja/articles/qiita-follow"
[5]=>
string(26) "/ja/articles/qiita-mention"
[6]=>
string(33) "/ja/articles/qiita-search-options"
[7]=>
string(25) "/ja/articles/qiita-stocks"
[8]=>
string(35) "/ja/articles/qiita-syntax-highlight"
[9]=>
string(18) "/ja/articles/qiita"
}
[2]=>
array(10) {
[0]=>
string(6) "機能"
[1]=>
string(18) "Contributionとは"
[2]=>
string(30) "絵文字の利用について"
[3]=>
string(30) "フィード機能について"
[4]=>
string(45) "タグやユーザーをフォローしよう"
[5]=>
string(21) "メンション機能"
[6]=>
string(42) "検索時に利用できるオプション"
[7]=>
string(79) "素晴らしいコード、Tipsはどんどんストックして役立てよう"
[8]=>
string(53) "Qiitaのシンタックスハイライトについて"
[9]=>
string(11) "Qiitaとは"
}
}
*/
リンク先だけ表示
echo "\nURL\n";
foreach ($matches[1] as $value) {
echo $value."\n";
}
/*
URL
/ja/categories/qiita/features
/ja/articles/qiita-contribution
/ja/articles/qiita-emoji
/ja/articles/qiita-feed
/ja/articles/qiita-follow
/ja/articles/qiita-mention
/ja/articles/qiita-search-options
/ja/articles/qiita-stocks
/ja/articles/qiita-syntax-highlight
/ja/articles/qiita
*/
リンク名称だけ表示
echo "\nLink_name\n";
foreach ($matches[2] as $value) {
echo $value."\n";
}
/*
Link_name
機能
Contributionとは
絵文字の利用について
フィード機能について
タグやユーザーをフォローしよう
メンション機能
検索時に利用できるオプション
素晴らしいコード、Tipsはどんどんストックして役立てよう
Qiitaのシンタックスハイライトについて
Qiitaとは
*/