1

このテキストから HTTP を抽出するにはどうすればよいですか?

"Text: Here's 2 free bonuses. http://blablabla.blabla/blabla "

ただし、URL は別の URL にすることもできます。

ついに

通常は URL を 1 つだけ含む配列を取得した後、それを上記のテキストの同じ位置に正確に追加するにはどうすればよいでしょうか? ただし、HTMLタグを使用<a>

結果は次のようになります。

"Text: Here's 2 free bonuses. 
<a href='http://blablabla.blabla/blabla'>http://blablabla.blabla/blabla</a> "
4

2 に答える 2

1

正規表現、より正確にはpreg_replace()を使用してそれを行うことができます。一致する式は次のようになります。

$pattern = 'http://[a-zA-Z0-9\.\-/]+';

もちろん、より正確に一致するように調整することもできますが、これでうまくいくはずです。正規表現を試してみたい場合は、regexpalをご覧ください。これはテスト用の優れたツールです。次に、置換を実行できます ($0 は、一致した文字列全体に対応します。

preg_replace($pattern, '<a href="$0">$0</a>', $yourString);
于 2009-12-18T20:41:51.330 に答える
1

この正規表現はトリックを行う必要があります:

$s= "Text: Here's 2 free bonuses. http://blablabla.blabla/blabla and some more text";
$s2= preg_replace('~(http://\S+)\b~', '<a href="$1">$1</a>', $s);
var_dump($s2);
于 2009-12-18T20:40:48.163 に答える