PHP の include 関数を使用して、送信された電子メールにコンテンツを追加しています。問題は、ファイルもエコーしたくないことです。$message として含めたいだけです。
エコーなしで文字列を返すインクルードと同等のものは何ですか。
$message = include('email/head.php');
出力バッファリングを使用します。
ob_start();
include('email/head.php');
$message = ob_get_contents();
ob_end_clean();
の目的はinclude
、含まれているファイルをPHPファイルとして評価することです。つまり、<?php ?>
タグの外側はすべて出力と見なされ、ブラウザに送信されます。ファイルの内容を取得したい場合は、file_get_contents
またはfopen
/を使用してファイルを読み取る必要がありますfread
。
インクルードされたファイルを実行可能PHPとして評価し、出力をキャプチャする場合は、出力バッファリングを使用する必要があります。
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()
、静的テキストファイル(テンプレート)に適しています。