PHP


http:// を含むワードが入力されたら自動的にそのリンクを作成するfunctionを作成してください。

例:
http://www.yahoo.com/が入力されたら <a href="http://www.yahoo.com/" target="_blank">http://www.yahoo.com/</a> というリンクを作成する。

回答の条件
  • 1人2回まで
  • 登録:2006/08/15 13:54:42
  • 終了:2006/08/18 14:14:00

回答(3件)

id:k6nch6n No.1

k6nch6n回答回数171ベストアンサー獲得回数112006/08/15 14:14:25

ポイント10pt

PHPのドキュメントにもサンプルがあります。24-May-2006 10:58のSune Rievers氏のサンプルなどが参考になるのでは?

http://www.php.net/manual/ja/function.preg-replace.php

id:esecua

時間がないのです、参考にしている。

2006/08/15 14:29:41
id:k6nch6n No.2

k6nch6n回答回数171ベストアンサー獲得回数112006/08/15 14:39:01

ポイント60pt

基本的にはそのまま使えますよ。

function make_links_blank($text)
{
  return  preg_replace(
     array(
       '/(?(?=<a[^>]*>.+<\/a>)
             (?:<a[^>]*>.+<\/a>)
             |
             ([^="\']?)((?:https?|ftp|bf2|):\/\/[^<> \n\r]+)
         )/iex',
       '/<a([^>]*)target="?[^"\']+"?/i',
       '/<a([^>]+)>/i',
       '/(^|\s)(www.[^<> \n\r]+)/iex',
       '/(([_A-Za-z0-9-]+)(\\.[_A-Za-z0-9-]+)*@([A-Za-z0-9-]+)
       (\\.[A-Za-z0-9-]+)*)/iex'
       ),
     array(
       "stripslashes((strlen('\\2')>0?'\\1<a href=\"\\2\">\\2</a>\\3':'\\0'))",
       '<a\\1',
       '<a\\1 target="_blank">',
       "stripslashes((strlen('\\2')>0?'\\1<a href=\"http://\\2\">\\2</a>\\3':'\\0'))",
       "stripslashes((strlen('\\2')>0?'<a href=\"mailto:\\0\">\\0</a>':'\\0'))"
       ),
       $text
   );
}
id:chankaz No.3

chankaz回答回数53ベストアンサー獲得回数32006/08/16 19:02:46

ポイント10pt
<?php

function auto_link ($text) {
	return preg_replace('/([^="\'>]|^)(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&amp;=+\$,%#]+)/', '$1<a href="$2$3" target="_blank">$2$3</a>', $text);
}

$example = '例文:http://www.yahoo.com/が入力されたら<a href="http://www.yahoo.com/">http://www.yahoo.com/</a>にする。';

echo auto_link ($example);

?>

既にリンクになっているものは無視して、タグのついていないURIのみをリンクに変換します。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません