Как назначить содержимое файла переменной в PHP

У меня есть файл документа, содержащий разметку HTML. Я хочу назначить содержимое всего файла переменной PHP.

У меня есть эта строка кода:

$body = include('email_template.php');

Когда я делаю var_dump() я получаю string(1) "'"

Можно ли присвоить содержимое файла переменной?

[Примечание: причина для этого заключается в том, что я хочу отделить сегмент тела почтового сообщения от сценария почтовой программы – вроде как шаблон, так что пользователь просто модифицирует разметку HTML и не должен заботиться о моем почтовом ящике скрипт. Поэтому я включаю файл как весь сегмент тела по mail($to, $subject, $body, $headers, $return_path);

Благодарю.

Solutions Collecting From Web of "Как назначить содержимое файла переменной в PHP"

Если есть 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'; 

Ответить