关于php中str_replace的问题
程序员文章站
2024-02-01 11:27:52
...
public function display(){
ob_start();
if(preg_match_all('/(?)/s',$this->content,$match)){
$find = $match[1];
$_replace = array();
foreach($match[2] as $_match){
eval($_match);
$_replace[] = ob_get_contents();
ob_clean();
}
ob_flush();
str_replace($find,$_replace,$this->content,$i);
}
header('Content-type:text/html;charset=UTF-8');
var_dump($this->content);
var_dump($match[1]);
var_dump($i);
ob_end_flush();
}
我写了一段解析模板的代码,如上;现在执行之后出现了像下面图片上显示的结果, ,看图上显示应该是已经匹配到了字符串,但是为什么之后显示的结果却不是replace数组中的值呢
ob_start();
if(preg_match_all('/(?)/s',$this->content,$match)){
$find = $match[1];
$_replace = array();
foreach($match[2] as $_match){
eval($_match);
$_replace[] = ob_get_contents();
ob_clean();
}
ob_flush();
str_replace($find,$_replace,$this->content,$i);
}
header('Content-type:text/html;charset=UTF-8');
var_dump($this->content);
var_dump($match[1]);
var_dump($i);
ob_end_flush();
}
我写了一段解析模板的代码,如上;现在执行之后出现了像下面图片上显示的结果, ,看图上显示应该是已经匹配到了字符串,但是为什么之后显示的结果却不是replace数组中的值呢
回复讨论(解决方案)
如果你希望我们帮你调试,那么请给出测试数据
你的这段代码只需这样就可以了
public function display() { ob_start(); eval('?>' . $this->content); $this->content = ob_get_clean();}
谢谢,我照着改了之后直接就显示了,原理还没怎么明白,我再研究研究
上一篇: Ubuntu下MySQL重装问题
推荐阅读
-
关于php中str_replace的问题
-
mysql-关于QT4.8.6连接Mysql5.6中文数据库名异常的问题
-
php中print(),print_r(),echo()的区别详解
-
关于压缩的一个有关问题,ZipArchive在PHP5.2和PHP5.3用法不一样吗
-
PHP中round()函数对浮点数进行四舍五入的方法
-
关于SQL注入的一些有关问题.URL注入.
-
php shmop_open的有关问题
-
批量去除PHP文件中bom的PHP代码
-
is_uploaded_file函数引发的不能上传文件问题_PHP教程
-
在PHP中,http_post_data和http_put_data的用法(实例)?解决思路