2013.
11.
09
03:47:13
結論から言えば
でOKです。
それでは経緯と詳細を以下につらつらっと書いていきまする。
「PHP、テキストからURLを抽出する」の記事でテキスト内のURL抽出について書いたのですが、
よくよく話を聞いたらまだ先がありました。
実際にはテキスト内のURL記述部分をリンク(アンカータグ)化したいのだそうです。
だったら最初からそう言えよ、ぶ~ぶ~(-ε-)
という呟きは心の中にしまい、ほれ、サンプルφ(--)
サンプルの実行結果はこちらφ(--)
「mb_ereg_replace」を使って、テキストから抽出したURLにアンカータグを付与しています。
の正規表現はURL抽出のときと同じです。
の「\1」はパターンマッチした文字列が入ります。
そんな感じ(--)ノ
変更後テキスト = mb_ereg_replace('(https?://[-_.!~*\'()a-zA-Z0-9;/?:@&=+$,%#]+)', '<a href="\1" target="_blank">\1</a>', 元テキスト);
でOKです。
それでは経緯と詳細を以下につらつらっと書いていきまする。
「PHP、テキストからURLを抽出する」の記事でテキスト内の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置換
$pattern = '(https?://[-_.!~*\'()a-zA-Z0-9;/?:@&=+$,%#]+)';
$replacement = '<a href="\1" target="_blank">\1</a>';
$text = mb_ereg_replace($pattern, $replacement, htmlspecialchars($text));
//変更後テキスト表示
print "■■■変更後テキスト■■■<br>";
print mb_ereg_replace('\r\n', '<br>', $text);
print '<br><br>';
print "■■■変更後テキストのソースコード■■■<br>";
$text = mb_ereg_replace('<', '<', $text);
$text = mb_ereg_replace('>', '>', $text);
print mb_ereg_replace('\r\n', '<br>', $text);
print '<br><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置換
$pattern = '(https?://[-_.!~*\'()a-zA-Z0-9;/?:@&=+$,%#]+)';
$replacement = '<a href="\1" target="_blank">\1</a>';
$text = mb_ereg_replace($pattern, $replacement, htmlspecialchars($text));
//変更後テキスト表示
print "■■■変更後テキスト■■■<br>";
print mb_ereg_replace('\r\n', '<br>', $text);
print '<br><br>';
print "■■■変更後テキストのソースコード■■■<br>";
$text = mb_ereg_replace('<', '<', $text);
$text = mb_ereg_replace('>', '>', $text);
print mb_ereg_replace('\r\n', '<br>', $text);
print '<br><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/ほげほげ
うんちゃらかんちゃら
■■■変更後テキスト■■■
■マコトのおもちゃ箱 ~ぼへぼへ自営業者の技術メモ~:
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/ほげほげ
うんちゃらかんちゃら
■■■変更後テキストのソースコード■■■
■マコトのおもちゃ箱 ~ぼへぼへ自営業者の技術メモ~:
<a href="http://piyopiyocs.blog115.fc2.com/" target="_blank">http://piyopiyocs.blog115.fc2.com/</a>
■ITの万屋 PCS - Piyopiyo Create Service 【基本情報】
ぴよぴよ<a href="http://i-3-i.info/index.html?mode=c02&hoge=hoge" target="_blank">http://i-3-i.info/index.html?mode=c02&hoge=hoge</a>ぴよぴよ
■「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
ほげほげ<a href="http://wa3.i-3-i.info:80/" target="_blank">http://wa3.i-3-i.info:80/</a>ほげほげ
うんちゃらかんちゃら
■マコトのおもちゃ箱 ~ぼへぼへ自営業者の技術メモ~:
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/ほげほげ
うんちゃらかんちゃら
■■■変更後テキスト■■■
■マコトのおもちゃ箱 ~ぼへぼへ自営業者の技術メモ~:
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/ほげほげ
うんちゃらかんちゃら
■■■変更後テキストのソースコード■■■
■マコトのおもちゃ箱 ~ぼへぼへ自営業者の技術メモ~:
<a href="http://piyopiyocs.blog115.fc2.com/" target="_blank">http://piyopiyocs.blog115.fc2.com/</a>
■ITの万屋 PCS - Piyopiyo Create Service 【基本情報】
ぴよぴよ<a href="http://i-3-i.info/index.html?mode=c02&hoge=hoge" target="_blank">http://i-3-i.info/index.html?mode=c02&hoge=hoge</a>ぴよぴよ
■「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
ほげほげ<a href="http://wa3.i-3-i.info:80/" target="_blank">http://wa3.i-3-i.info:80/</a>ほげほげ
うんちゃらかんちゃら
「mb_ereg_replace」を使って、テキストから抽出したURLにアンカータグを付与しています。
$pattern = '(https?://[-_.!~*\'()a-zA-Z0-9;/?:@&=+$,%#]+)';
の正規表現はURL抽出のときと同じです。
$replacement = '<a href="\1" target="_blank">\1</a>';
の「\1」はパターンマッチした文字列が入ります。
そんな感じ(--)ノ