У меня есть файл документа, содержащий разметку HTML. Я хочу назначить содержимое всего файла переменной PHP.
У меня есть эта строка кода:
$body = include('email_template.php');
Когда я делаю var_dump()
я получаю string(1) "'"
Можно ли присвоить содержимое файла переменной?
[Примечание: причина для этого заключается в том, что я хочу отделить сегмент тела почтового сообщения от сценария почтовой программы – вроде как шаблон, так что пользователь просто модифицирует разметку HTML и не должен заботиться о моем почтовом ящике скрипт. Поэтому я включаю файл как весь сегмент тела по mail($to, $subject, $body, $headers, $return_path);
Благодарю.
Если есть PHP-код, который нужно выполнить, вам действительно нужно использовать include
. Однако include
не будет возвращать выходные данные из файла; он будет отправлен в браузер. Вам нужно использовать функцию PHP, называемую выходной буферизацией: это фиксирует все выходные данные, отправленные скриптом. Затем вы можете получить доступ к этим данным и использовать их:
ob_start(); // start capturing output include('email_template.php'); // execute the file $content = ob_get_contents(); // get the contents from the buffer ob_end_clean(); // stop buffering and discard contents
вob_start(); // start capturing output include('email_template.php'); // execute the file $content = ob_get_contents(); // get the contents from the buffer ob_end_clean(); // stop buffering and discard contents
Вы должны использовать file_get_contents()
:
$body1 = file_get_contents('email_template.php');
include
включает и выполняет email_template.php
в вашем текущем файле и сохраняет возвращаемое значение include()
в $body1
.
Если вам нужно выполнить PHP-код внутри файла, вы можете использовать управление выходом :
ob_start(); include 'email_template.php'; $body1 = ob_get_clean();
file_get_contents()
$file = file_get_contents('email_template.php');
Или, если вы сумасшедшие :
ob_start(); include('email_template.php'); $file = ob_end_flush();
вob_start(); include('email_template.php'); $file = ob_end_flush();
Как и другие публикации, используйте file_get_contents
если этот файл не нужно выполнять каким-либо образом.
В качестве альтернативы вы можете включить включение возвращаемого результата с помощью оператора return.
Если вы включили обработку и выходы с помощью команд echo [ed: or leave PHP parsing mode], вы также можете буферизовать вывод.
ob_start(); include('email_template.php'); $body1 = ob_get_clean();
вob_start(); include('email_template.php'); $body1 = ob_get_clean();
TimCooper избил меня. :П
Попробуйте использовать функцию file_get_contents()
PHP.
Подробнее см. Здесь: http://php.net/manual/en/function.file-get-contents.php
Да, вы можете легко.
В файле, который вы хотите использовать переменную, поместите это
require_once '/myfile.php'; if(isset($responseBody)) { echo $responseBody; unset($responseBody); }
сrequire_once '/myfile.php'; if(isset($responseBody)) { echo $responseBody; unset($responseBody); }
В файле, который вы вызываете /myfile.php, поместите это
$responseBody = 'Hello world, I am a genius';
Ответить