$var1 = 'abc';
$var2 = '123';
如何從這樣的字符串替換%var1
和%var2%
字符串:替換變量
aaaaaaaa%var1%bbbbbbbbb%var2%ffffffff
與$var1
和$var2
價值?
$var1 = 'abc';
$var2 = '123';
如何從這樣的字符串替換%var1
和%var2%
字符串:替換變量
aaaaaaaa%var1%bbbbbbbbb%var2%ffffffff
與$var1
和$var2
價值?
假設> = PHP 5.3 ...
preg_replace_callback('%(\w+?)%', function($matches) use ($var1, $var2) {
return $$matches[1][0];
}, $str);
正如你可以看到,需要一個參考傳遞到各外部變量來封閉的。
你可能會更好地構建陣列的替代變量,剛好路過該數組中,然後下標吧...
preg_replace_callback('%(\w+?)%', function($matches) use ($vars) {
return isset($vars[$matches[1][0]]) ? $vars[$matches[1][0]] : $matches[0][0];
}, $str);
我還沒有機會測試此代碼現在,但我認爲,總的原則是聲音:)
如果我正確地讀你的問題,你想利用字符串文字
'aaaaaaaa%var1%bbbbbbbbb%var2%ffffffff'
並更換子var1
和var2
分別與'abc'
和'123'
對嗎?在這種情況下,preg_replace應該做的伎倆。
$var1 = 'abc';
$var2 = '123';
$subject = 'aaaaaaaa%var1%bbbbbbbbb%var2%ffffffff';
echo str_replace(array('%var1%', '%var2%'), array($var1, $var2), $subject);
// output: aaaaaaaaabcbbbbbbbbb123ffffffff
我喜歡這個。 – Mattis
whaaaaaaat -2 ?? fuuuuuuuuuuu – foo