我只是做一個升級腳本替換所有鏌鋣片段標記爲較新的格式preg_replace_all (當然,123 - 這是一個例子 - 有很多不同的數字)如何在大數據量
此外,我想要替換所有自定義舊片段到一個新的:
老摘錄格式:
[!MySnippetName? ¶m1=`value1` ¶m2=`value2` !]
新:
[[!MySnippetName? ¶m1=`value1` ¶m2=`value2` ]]
(當然,¶m1=value1 ¶m2=value2
僅僅是一個例子,它在現實片斷是不同的)
如何使用preg_replace函數使全局替換? 我應該創造這樣的:
$doc[ 'content' ] = $this->preg_replace_all(
array(
'/\[~([0-9]+)~\]/',
'\[!LatestUpdates(.*)!\]',
'\[!ArticleSummary(.*)!\]',
), array(
'[[~\1]]',
'[[!LatestUpdates\1]]',
'[[!ArticleSummary\1]]',
),
$doc[ 'content' ]
);
preg_replace_all功能:
private function preg_replace_all($find, $replacement, $s)
{
while(preg_match($find, $s)) {
$s = preg_replace($find, $replacement, $s);
}
return $s;
}
但它不工作。請幫忙解決問題。提前致謝。
默認情況下,preg_replace執行全局替換。你不需要編寫一個新的函數或使用preg_match。 – 2014-11-02 17:45:49