3

これは oscommerce だけでなく、一般的な PHP の質問です。

古いバージョンの 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 ではなくファイルパスを渡すことに注意してください。oscommerce の内部構造のため、ここでは詳しく説明しませんが、URL を渡すことができません。私はこのようなものを使用します:-

file_get_contents("myfile.php");

いいえ

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

1 に答える 1

6

「出力バッファリング」と呼ばれる手法を使用できます。

# 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();
于 2012-05-28T18:59:16.543 に答える