2015-05-28 180 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代码替换为字符串以进行评估并不是一个好主意。 –