http://またはwwwのいずれかで始まる文字列を作成します。http:// clickableで始まる文字列を作成します。
str_replace("http://", "$string", "<a href='$string'>");
str_replace("www", "$string", "<a href='$string'>");
そうでないはずですか?
http://またはwwwのいずれかで始まる文字列を作成します。http:// clickableで始まる文字列を作成します。
str_replace("http://", "$string", "<a href='$string'>");
str_replace("www", "$string", "<a href='$string'>");
そうでないはずですか?
アンカータグの中にテキストが表示されていないので、見えなくなります。
このようなものをお探しですか?問題を指摘するためにmacbirdieする
<?php
$content = 'this is a test http://www.test.net www.nice.com hi!';
$regex[0] = '|(http://[^\s]+)|i';
$replace[0] = '<a href="${1}">${1}</a>';
$regex[1] = '| (www[^\s]+)|i';
$replace[1] = ' <a href="http://${1}">${1}</a>';
echo preg_replace($regex, $replace, $content);
?>
更新 ありがとう!私はそれを修正しようとしました。しかし、wwwの前にスペースがある限り動作します。たぶん、誰かがもっと巧妙でエレガントなものを考え出すでしょう。
おそらく、www.test.comとしてちょっとした調整が必要ですが、間違ったURLを作成します。 – macbirdie
あなたが探しているのは正規表現です。このような何か...
$link = preg_replace('/(http:\/\/[^ ]+)/', '<a href="$1">$1</a>', $text);
str_replaceが異なる引数の順序(バージョンが$string
と<a href='$string'>
にhttp://
のすべての出現箇所を置き換えます)があります。
preg_replace('/(http:\/\/\S+/)', '<a href="\1">\1</a>', $subject_text);
function clicky($text) {
$text = eregi_replace('(((f|ht){1}tp://)[[email protected]:%_+.~#?&//=]+)', '<a href="$1">$1</a>', $text);
$text = eregi_replace('([[:space:]()[{}])(www.[[email protected]:%_+.~#?&//=]+)', '$1<a href="http://$2">$2</a>', $text);
$text = eregi_replace('([_.0-9a-z-][email protected]([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})', '<a href="mailto:$1">$1</a>', $text);
return $text;
}
Merkuroのソリューションをいくつかの調整を:あなたは、いくつかの他のテキスト内のHTMLリンクを作成したい場合は
は、その後、あなたは交換する代わりに、正規の本のための正規表現を必要とします。
<?php
$content = 'this is a test http://www.test.net www.nice.com hi!';
$regex[0] = '`(|\s)(http://[^\s\'\"<]+)`i';
$replace[0] = '<a href="${2}">${2}</a>';
$regex[1] = '`(|\s)(www\.[^\s\'\"<]+)`i';
$replace[1] = ' <a href="http://${2}">${2}</a>';
echo preg_replace($regex, $replace, $content);
?>
パターン:
(|\s)
は、文字列、またはスペースの始まりにマッチします。単語境界を使用することもできます。
\b
私は、URLを終了夫婦他の文字、」、」、<を追加しました私が使用
何か:。。
function linkify_text($text) {
$url_re = '@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@';
$url_replacement = "<a href='$1' target='_blank'>$1</a>";
return preg_replace($url_re, $url_replacement, $text);
}
・ホープこのことができますを
あなたを忘れないでくださいリンクテキストとクローズ – balpha
また、Jeffのブログ記事でURLの最後を見つけることに興味があります:http://www.codinghorror.com/blog/archives/001181.html – balpha