0

次のような変数があります。

text1 http://www.server.com/10characters text2 http://www.server.com/10characters text3

すべての「http://www.server.com/10characters」を preg_replace して「Click」にリンクしたいのですが、「http://www.server.com/」は必ず発生する定数であり、「10characters」は常に任意です。 10 文字 (それ以下でもそれ以上でもない)

例のために。交換

text1 http://www.server.com/d19d2aj53f text2 http://www.server.com/a49ds5j3ax text3
http://www.otherserver.com/a49ds5j3ax text3

text1 <a href="http://www.server.com/d19d2aj53f">Click</a> text2
<a href="http://www.server.com/a49ds5j3ax">Click</a>
text3 http://www.otherserver.com/xt92s5sfa2 text3

方法がわかりません:/ いくつかの方法を試しましたが、良い結果は得られませんでした。

4

3 に答える 3

0

ドメインの後に常に10文字ある場合は、preg_replaceは必要ありません。

$url1 = substr($url,0,35); //length of http://www.server.com/10characters is 35 chars
echo "text1 <a href=\"$url1\">click</a><br>";
/// etc
于 2012-08-16T22:21:52.820 に答える
0

おもう

preg_replace("http://www\.server\.com/[0-9a-zA-Z]{10}", " Click!", $myLink)

動作するはずです。

于 2012-08-16T22:25:52.060 に答える
0
$str = 'text1 http://www.server.com/d19d2aj53f text2 http://www.server.com/a49ds5j3ax text3 http://www.otherserver.com/a49ds5j3ax text3';

echo preg_replace('~http://www\.server\.com/.{10}~i', '<a href="$0">click</a>', $str);

パターンで.は、「任意の文字」なので、.{10}任意の 10 文字を意味します。

置換で$0は、パターン全体 (この場合は完全な URL) によって一致したものを表します。

これが実際の例です。

于 2012-08-16T23:59:25.860 に答える