-2

重複の可能性:
phpregex<b>から<b>

管理パネル内には、スタッフが顧客にメッセージを挿入できるテキストエリアがあります。

[[p=304_red]]リターン内で2つの一致に変換して検出したいと思います。str_replaceを考えていましたが、2回はできません。また、str_replaceは1つに制限され、スタッフが2回追加する場合があります。誰もがより良い解決策をお勧めします(preg_replaceはトリッキーで厄介なようです)

[[p=304_red]] 

戻る必要があります

<a href="http://site.com/jump?go=304_red">
<img src="http://cdn.com/304_red/large/1.jpg" />
</a>

私のコードはURLのみを返します。

$question = $_GET['replyBoxField'];
$question = str_replace("[[p=", "<a href='http://site.com/jump?go='>", $question);
$question = str_replace("]]", "</a>", $question);
4

3 に答える 3

3

ここでは、単純な正規表現が機能するはずです。

$question = preg_replace('@\[\[p=([^\]]+)\]\]@i', '<a href="http://site.com/jump?go=$1"><img src= "http://cdn.com/$1/large/1.jpg" ></a>', $question);

=)

于 2012-05-23T13:01:29.817 に答える
0

正規表現はより良いアプローチではありませんか?

$filter = "/\[\[p=([^\]\s]+)\]\]/";
$transform = "<a href='http://site.com/jump?go=$1'><img src='http://cdn.com/$1/large/1.jpg' /></a>";

$string = preg_replace($filter, $transform, $string);
于 2012-05-23T13:02:19.520 に答える
-1

他のすべての答えが間違っています。これを参照してください。

BBコードをこれに変更します[[p=304_sapphire]#[304_sapphire]]

$question = str_replace("[[p=", "<a href='http://domain.com/jump?go=", $question);
$question = str_replace("]#[", "'><img src='http://cdn.com/files/", $question);
$question = str_replace("]]", "/1/small.jpg'/></a>", $question);
于 2012-05-23T13:03:56.337 に答える