2013.
11.
09
02:46:38
結論から言えば
で抽出できます。
それでは経緯と詳細を以下につらつらっと書いていきまする。
とあるテキスト群からURLを抽出したいという要望が出てきました。
「りょうかいで~す。さくさくっと作っちゃいま~す。」と
ゆるい感じで作ったサンプルがこちらφ(--)
サンプルの実行結果がこちらφ(--)
「preg_match_all」を使って、テキストを正規表現で検索しているだけです。
URL抽出で悩むのは正規表現の書き方でしょうかね。
今回は……と言うか、今まで
な正規表現で抽出してトラブル報告を受けたことがないので、そのまま使い続けています。
でも同じ結果になりますけどね。
もし「このパターンのURLだとおかしくならね?」のような不具合があれば
メールででも教えてくださいm(__)m
そんな感じ(--)ノ
URLの正規表現以外は特に悩むところ無いですよね(--?
preg_match_all('(https?://[-_.!~*\'()a-zA-Z0-9;/?:@&=+$,%#]+)', 元テキスト, 結果(抽出URL)配列)
で抽出できます。
それでは経緯と詳細を以下につらつらっと書いていきまする。
とあるテキスト群からURLを抽出したいという要望が出てきました。
「りょうかいで~す。さくさくっと作っちゃいま~す。」と
ゆるい感じで作ったサンプルがこちらφ(--)
<?php
//元テキスト
$text = <<< EOT
■マコトのおもちゃ箱 ~ぼへぼへ自営業者の技術メモ~:
http://piyopiyocs.blog115.fc2.com/
■ITの万屋 PCS - Piyopiyo Create Service 【基本情報】
ぴよぴよhttp://i-3-i.info/index.html?mode=c02&hoge=hogeぴよぴよ
■「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
ほげほげhttp://wa3.i-3-i.info:80/ほげほげ
うんちゃらかんちゃら
EOT;
//元テキスト表示
print "■■■元テキスト■■■<br>";
print mb_ereg_replace('\r\n', '<br>', $text);
print '<br><br>';
//URL抽出
print "■■■抽出URL■■■<br>";
if(preg_match_all('(https?://[-_.!~*\'()a-zA-Z0-9;/?:@&=+$,%#]+)', $text, $result) !== false){
foreach ($result[0] as $value){
//URL表示
print $value . '<br>';
}
}
?>
//元テキスト
$text = <<< EOT
■マコトのおもちゃ箱 ~ぼへぼへ自営業者の技術メモ~:
http://piyopiyocs.blog115.fc2.com/
■ITの万屋 PCS - Piyopiyo Create Service 【基本情報】
ぴよぴよhttp://i-3-i.info/index.html?mode=c02&hoge=hogeぴよぴよ
■「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
ほげほげhttp://wa3.i-3-i.info:80/ほげほげ
うんちゃらかんちゃら
EOT;
//元テキスト表示
print "■■■元テキスト■■■<br>";
print mb_ereg_replace('\r\n', '<br>', $text);
print '<br><br>';
//URL抽出
print "■■■抽出URL■■■<br>";
if(preg_match_all('(https?://[-_.!~*\'()a-zA-Z0-9;/?:@&=+$,%#]+)', $text, $result) !== false){
foreach ($result[0] as $value){
//URL表示
print $value . '<br>';
}
}
?>
サンプルの実行結果がこちらφ(--)
■■■元テキスト■■■
■マコトのおもちゃ箱 ~ぼへぼへ自営業者の技術メモ~:
http://piyopiyocs.blog115.fc2.com/
■ITの万屋 PCS - Piyopiyo Create Service 【基本情報】
ぴよぴよhttp://i-3-i.info/index.html?mode=c02&hoge=hogeぴよぴよ
■「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
ほげほげhttp://wa3.i-3-i.info:80/ほげほげ
うんちゃらかんちゃら
■■■抽出URL■■■
http://piyopiyocs.blog115.fc2.com/
http://i-3-i.info/index.html?mode=c02&hoge=hoge
http://wa3.i-3-i.info:80/
■マコトのおもちゃ箱 ~ぼへぼへ自営業者の技術メモ~:
http://piyopiyocs.blog115.fc2.com/
■ITの万屋 PCS - Piyopiyo Create Service 【基本情報】
ぴよぴよhttp://i-3-i.info/index.html?mode=c02&hoge=hogeぴよぴよ
■「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
ほげほげhttp://wa3.i-3-i.info:80/ほげほげ
うんちゃらかんちゃら
■■■抽出URL■■■
http://piyopiyocs.blog115.fc2.com/
http://i-3-i.info/index.html?mode=c02&hoge=hoge
http://wa3.i-3-i.info:80/
「preg_match_all」を使って、テキストを正規表現で検索しているだけです。
URL抽出で悩むのは正規表現の書き方でしょうかね。
今回は……と言うか、今まで
'(https?://[-_.!~*\'()a-zA-Z0-9;/?:@&=+$,%#]+)'
な正規表現で抽出してトラブル報告を受けたことがないので、そのまま使い続けています。
'/https?:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:@&=+$,%#]+/'
でも同じ結果になりますけどね。
もし「このパターンのURLだとおかしくならね?」のような不具合があれば
メールででも教えてくださいm(__)m
そんな感じ(--)ノ
URLの正規表現以外は特に悩むところ無いですよね(--?