这是通用的 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.ini 生成的 HTML 代码。请注意,我将传递文件路径而不是 URL。由于 oscommerce 内部结构,我无法传递 URL,我现在不会深入探讨。我会使用这样的东西:-
file_get_contents("myfile.php");
不是
file_get_contents("http://mywebsite.com/myfile.php");