微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

获取php动态生成的html代码作为字符串

这是一般的PHP问题,而不仅仅是oscommerce.

在旧版本的oscommerce中,通过创建PHP类的对象来显示列.如果我包括它,它会显示出来

new infoBox2($info_Box_contents) ;

但是在新版本中,由于很多原因,我没有这样做的自由.我必须返回通过创建上述对象生成的所有HTML代码作为字符串.这就是现在的字符串 –

$data = '<div class="ui-widget infoBoxContainer">' .'  <div class="ui-widget-header infoBoxheading">' . MODULE_BoxES_CATEGORIES_Box_TITLE . '</div>' .'  <div class="ui-widget-content infoBoxContents">' . $categories_string . '</div>' .'</div>';

您可以注意到它是预定义的HTML代码.我需要将$data值更改为创建对象时生成的动态生成HTML代码.
关于如何做到这一点的任何想法?我尝试将对象类型转换为字符串并使用var_dump

var_dump给出了这样的东西

object(infoBox2)#8 (7) { ["table_border"]=> string(1) "0" ["table_width"]=> string(4) "100%" ["table_cellspacing"]=> string(1) "0" ["table_cellpadding"]=> string(1) "0" ["table_parameters"]=> string(22) " class="infoBox_table"" ["table_row_parameters"]=> string(0) "" ["table_data_parameters"]=> string(19) " class="infoBox_td"" }

这不完全是它的HTML代码.

这里最重要的是将PHP代码生成HTML代码作为字符串.如何做到这一点?

如果我将新对象创建放在一个单独的文件中并使用file_get_contents,那么它将返回PHP代码本身,还是会返回PHP生成HTML代码.请注意,我将传递文件路径而不是URL.我无法传递URL,因为oscommerce内部我现在不会深入.我会用这样的东西: –

file_get_contents("myfile.PHP");

file_get_contents("http://mywebsite.com/myfile.PHP");

解决方法:

您可以使用称为“输出缓冲”的技术.

# start redirecting output to a buffer
ob_start();

# execute the other PHP file
include('myfile.PHP');

# grab whatever got output since ob_start() (and stop buffering)
$html = ob_get_clean();

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐