我希望鏈接目標(biāo)在鏈接地址中的單詞之間使用下劃線而不是空格。我的代碼如下所示:preg_replace("/\[\[(.+?)\]\]/", '<a href="/XLab/?document=$1">$1</a>', $document->content)第一次出現(xiàn)的 $1 應(yīng)該包含下劃線而不是空格。謝謝你!
1 回答

寶慕林4294392
TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊
您可以使用preg_replace_callback,因?yàn)槟赡軣o(wú)法操作字符串替換模式中的反向引用preg_replace:
$text = "[[Some text]] and [[one more here]]";
echo preg_replace_callback("/\[\[(.+?)]]/", function($m) {
return '<a href="/XLab/?document=' . str_replace(' ', '_', $m[1]) . '">' . $m[1] . '</a>';
}, $text);
請(qǐng)參閱PHP 演示。
這里,
$m
是匹配對(duì)象,包含$m[0]
,整個(gè)匹配,以及,和$m[1]
之間的內(nèi)容[[
]]
str_replace(' ', '_', $m[1])
將每個(gè)空格替換為_
. 替換為preg_replace('~\s+~u', '_', $m[1])
將任何 1+ 空白塊替換為單個(gè)_
.
- 1 回答
- 0 關(guān)注
- 104 瀏覽
添加回答
舉報(bào)
0/150
提交
取消