我想呼應裏面包括($)與變量的字符串,像這樣:PHP的preg_replace文本變量
echo "$string";
我不希望它反映了對字符串變量,我希望它回聲「$字符串「本身,而不是變量的內容。我知道我可以通過在($)前添加一個'\'來完成此操作,但我想使用preg_replace來完成此操作。我想這和它不工作:
$new = preg_replace("/\$/","\\$",$text);
我想呼應裏面包括($)與變量的字符串,像這樣:PHP的preg_replace文本變量
echo "$string";
我不希望它反映了對字符串變量,我希望它回聲「$字符串「本身,而不是變量的內容。我知道我可以通過在($)前添加一個'\'來完成此操作,但我想使用preg_replace來完成此操作。我想這和它不工作:
$new = preg_replace("/\$/","\\$",$text);
使用single quotes爲您的字符串聲明:
echo '$string';
單引號內的變量沒有得到擴大:
另一個解決方案是爲了躲避$
像你已經在preg_replace
調用中所做的:
echo "\$string";
如果我正確理解你的問題,你不能使用preg_replace
做你想做什麼。 preg_replace
在變量替換髮生後獲取它的參數。
因此,無論有沒有什麼爲preg_replace
更換(因爲替代已經發生),或者沒有必要preg_replace
做任何事情(因爲美元符號已經逃走)。
正如您所看到的那樣,$
在雙引號字符串內部進行了可變插值處理。所以你的正則表達式模式也應該使用單引號字符串來構建。此外,$
是正則表達式替換字符串內使用特殊字符,所以你需要額外的轉義:
preg_replace('/\$/', '\\\\$', $text)
但有沒有必要在這裏參看preg_功能。 str_replace函數應該這樣做:
str_replace('$', '\\$', $text)
這可能明確的事情了你,但濃湯建議:爲什麼不使用單引號來呼應?
嗯,我想你想刪除一些變量中存在的文本。然後你就可以像
$foo = '123';
$bar = 'bqwe';
$str= preg_replace("/".$foo ."/", '', $str, 1);
$str= preg_replace("/".$bar ."/", '', $str, 1);
哈哈哇謝謝 – David 2009-11-14 21:14:38