2015-05-28 283 views
-1

PHP代碼我想取代的PHP代碼字符串並運行來回服務器PHP:替換字符串

$x = 1; 
$string = "OK:{first}Yes{second}No"; 

我想replace if($x == 1){{first}} else {{second}

運行後和echo $string,我想造成HTML:

OK:是

回答

0
$string = str_replace("{first}","if($x == 1)",$string); 
$string = str_replace("{second}","} else {",$string); 
+0

輸出是錯誤的! – Mohammad

3

你是怎麼想出這種方法的?爲什麼不乾脆:

$string = $x == 1 ? 'OK:Yes' : 'OK:No';

這將讓你的字符串您根據$ x的值要。

此外,如果你字面上意味着你想要做的PHP代碼本身就是一個搜索正取代(如@OllyTenerife假設),那麼你打算把它寫入一個文件被執行後,或使用eval()什麼的?聽起來不像那裏的正確軌道...在這種情況下,重新編碼您的代碼。

+0

我想要replce php代碼串並運行它! ,如博客模板 – Mohammad

+0

如果您想要將PHP代碼搜索並替換爲字符串,您將不得不使用'eval()'來評估您存儲在該字符串中的代碼。對於模板引擎,使用'eval()'是一個非常糟糕的主意。你最好只使用例如在您的HTML中添加{{}},然後在您的HTML中進行搜索替換,在其中用所需的值替換{result}。使用上面的代碼,然後運行'str_replace('{result}',$ string,$ HTMLcode);',其中$ HTMLcode是您的模板文件。 –

+0

否則,如果你堅持在你的模板字符串中同時擁有這兩個選項,你將不得不使用'preg_replace()'來完成你的工作 - 並且假設你有一個以上的令牌,你將必須創建一堆正則表達式模式你打算替換。無論如何,試圖將PHP代碼替換爲字符串以進行評估並不是一個好主意。 –