3

PHP の include 関数を使用して、送信された電子メールにコンテンツを追加しています。問題は、ファイルもエコーしたくないことです。$message として含めたいだけです。

エコーなしで文字列を返すインクルードと同等のものは何ですか。

$message = include('email/head.php');
4

3 に答える 3

2

出力バッファリングを使用します。

ob_start();
include('email/head.php');
$message = ob_get_contents();
ob_end_clean();
于 2012-07-03T17:45:20.437 に答える
1

の目的はinclude、含まれているファイルをPHPファイルとして評価することです。つまり、<?php ?>タグの外側はすべて出力と見なされ、ブラウザに送信されます。ファイルの内容を取得したい場合は、file_get_contentsまたはfopen/を使用してファイルを読み取る必要がありますfread

インクルードされたファイルを実行可能PHPとして評価し、出力をキャプチャする場合は、出力バッファリングを使用する必要があります。

于 2012-07-03T17:42:00.457 に答える
0

file_get_contents() は、ファイルの内容全体を変数に入れます。

<?php
// grabs your file contents
$email_head = file_get_contents('email/head.php');

// do whatever you want with the variable
echo $email_head ;
?>

head.phpをファイルとして前処理しないことを考慮に入れてくださいphp。したがってfile_get_contents()、静的テキストファイル(テンプレート)に適しています。

于 2012-07-03T17:46:00.423 に答える