【发布时间】:2014-10-16 13:40:09
【问题描述】:
我有大量数据作为字符串,其中包括文本和大量图像。
字符串包括如下的特殊标签以及普通文本+图像。
{{ title }}
我有一个函数可以检查该字符串是否包含任何 php 标签?> 或 <?php
功能是
protected function parseTxt($text){
echo $text; //Gives me correct string
ob_start();
$result = eval('?>'.$text.'<?php ');
if ($result === false){
echo '<br />You have a syntax error.The snippet of text that contains
the error has been output below:<br />';
exit(str_replace(array('?>', '<?php '), '', $text));
}
return ob_get_clean();
}
我将 str 设为 null。
我有 php 5.5,我已将内存限制增加到 512
请提出建议,因为我没有任何替代线索。非常感谢任何帮助。
【问题讨论】:
-
我认为没有任何缓冲区输出,请检查您的 if()
-
谢谢,但问题是 echo $text 输出正确的数据。
-
试试 echo $text; ob_start 之后需要一个输出来缓冲你的所有输出条件出错
-
您的
eval可能返回 false。实际上,您没有将任何内容放入缓冲区。如果结果是假的,你有回声,但在下一行退出而不点击ob_get_clean(),如果是真的echo $text;在ob_start();之前 -
你意识到你正在做的事情非常危险,对吧? eval() 是邪恶的!