PHP4の質問です。http://ではじまる文字列を<a>タグで囲んで自動的にリンクを貼り付けてあげたいのですが、うまいやり方を教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:bru No.1

回答回数8ベストアンサー獲得回数0

ポイント15pt

URLはダミーです。

間違ってたらすいません。

$test = ”

http://yahoo.co.jp

Yahoo! JAPAN

”;

$pat = ”^http://”;

if(ereg($pat,$test)){

print ”<a href=¥”$test¥”>test</a>”;

}else{

print $test;

}

id:Tariq

これだけだとhttp://にだけリンクがくっつくような。。。

2004/07/15 16:07:11
id:ke-zi No.2

回答回数95ベストアンサー獲得回数0

ポイント25pt

URLはダミーです

function urlEncode( $str )

{

$str = nl2br( htmlspecialchars( $str ) );

//$str内のURLをリンク$pattern = ”/([^=^¥”]|^)((http|https|ftp)¥:¥/¥/([¥w¥.¥-¥+]+)¥/([¥w¥.¥~¥-¥?¥&¥+¥=¥:¥@¥%¥;¥#¥/]*))/”;

$replace = ”¥¥1<a href=¥”¥¥2¥” target=_blank>http://¥¥4</a>”;

//urlをリンク

$str = preg_replace( $pattern, $replace, $str );

return $str;

}

id:Tariq

大変参考になりました!

2004/07/15 16:07:24
id:fm315 No.3

回答回数30ベストアンサー獲得回数0

ポイント15pt

phpだと、ereg_replace()という関数を使って、正規表現で文中のURLを抜き出した上で、その部分の前後にタグをつけて入れ替える、という方法がよいようです。

id:aki73ix No.4

回答回数5224ベストアンサー獲得回数27

ポイント15pt

http://www.hatena.ne.jp/1088730692

テキストのURLを自動的にリンクさせるようにしたいのですが、Dreamweaverや正規表現を使ってできるでしょうか? よろしくお願いします。 http://www.aaa/aaa.htm を <a hr.. - 人力検索はてな

過去に正規化による自動リンク生成の質問があるので、そちらを参考にされてみてはいかがでしょうか

(注:回答内容の¥と”が全角に化けています)

参考までに過去の質問の検索例です

  • id:JULY
    2 番の回答

    基本的には 2 番の回答と同じで正規表現の部分を詰めていたら終わっちゃった(^^;

    で、2 番の回答をじーと見ていると、ホスト名(ドメイン名)の部分は、
    ちょっと違いますね。DNS 上で使える名前はアルファベット、数字、
    ハイフン(-)だけなので、「+」は使えません。また、¥w としてい
    るので、アンダースコア(_)も含まれてしまいます。それからピリオド
    が連続しているものとか。

    ちなみに私が考えたホスト名の部分は下記のとおりでした。

    [a-zA-Z0-9-]+(¥.[a-zA-Z0-9-]+)*


    http://www5d.biglobe.ne.jp/~stssk/rfc1034j.html#00

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

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

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

回答リクエストを送信したユーザーはいません