Intereting Posts
разница между выполнением curl_close () один или несколько раз? Не удалось подключиться к IMAP-связи php SimpleXml для строки Проблемы с установкой XAMPP v1.7.4, локальный хост не работает Каковы риски безопасности, позволяющие всем символам URL-адреса веб-сайта? Как создать определенное количество эскизов из PDF с помощью Imagick, ImageMagick и PHP? Предупреждение: mysqli_fetch_array () ожидает, что параметр 1 будет mysqli_result, строка задана Как найти только «новые» сообщения при использовании функций IMAP PHP для почтового ящика POP3? Отключение выполнения Javascript при входе в систему Блок Magento Приходит с пустым выходом Медленные ответы с использованием API-интерфейса Asana Я имею зашифрованный пароль md5, как дать пароль пользователю, когда он использует «Забыли пароль»? Загрузка HTTP и FTP Могу ли я разработать отдельные API-вызовы с помощью php для мобильного приложения, используя сайт wordpress? Любой способ получить все строки таблицы, где внешний ключ совпадает с первичным ключом, используя только модели, а не напрямую обращаться к базе данных?

Как вы определяете PHP как строку?

Я пытался:

$test = include 'test.php'; 

Но это только что включало файл обычно

Вы хотите посмотреть на функции буферизации вывода.

 //get anything that's in the output buffer, and empty the buffer $oldContent = ob_get_clean(); //start buffering again ob_start(); //include file, capturing output into the output buffer include "test.php"; //get current output buffer (output from test.php) $myContent = ob_get_clean(); //start output buffering again. ob_start(); //put the old contents of the output buffer back echo $oldContent; 

РЕДАКТИРОВАТЬ:

Как указывает Джереми, стек буферов вывода. Таким образом, вы могли бы теоретически просто сделать что-то вроде:

 <?PHP function return_output($file){ ob_start(); include $file; return ob_get_clean(); } $content = return_output('some/file.php'); 

Это должно быть эквивалентно моему более подробному оригинальному решению.

Но я не потрудился проверить это.

Попробуйте что-нибудь вроде:

 ob_start(); include('test.php'); $content = ob_get_clean(); в ob_start(); include('test.php'); $content = ob_get_clean(); 

Попробуйте file_get_contents() .

Эта функция похожа на file() , за исключением того, что file_get_contents() возвращает файл в строке.

Решение № 1: Используйте include (работает как функция): [Мое лучшее решение]

Файл index.php:

 <?php $bar = 'BAR'; $php_file = include 'included.php'; print $php_file; ?> 

Файл included.php:

 <?php $foo = 'FOO'; return $foo.' '.$bar; ?> <p>test HTML</p> 

Это приведет к выводу FOO BAR , но Примечание : работает как функция, поэтому RETURN передает содержимое обратно переменной ( <p>test HTML</p> будет потерян в приведенном выше)


Решение №2: op_buffer ():

Файл index.php:

 <?php $bar = 'BAR'; ob_start(); include 'included.php'; $test_file = ob_get_clean(); //note on ob_get_contents below print $test_file; ?> 

Файл included.php:

 <?php $foo = 'FOO'; print $foo.' '.$bar; ?> <p>test HTML</p> 

Если вы используете ob_get_contents() он выведет FOO BAR<p>test HTML</p> TWICE , убедитесь, что вы используете ob_get_clean()


Решение №3: file_get_contents ():

Файл index.php:

 <?php $bar = 'BAR'; $test_file = eval(file_get_contents('included.php')); print $test_file; ?> 

Файл included.php:

 $foo = 'FOO'; print $foo.' '.$bar; 

Это приведет к выводу FOO BAR , но Примечание . Include.php не должен иметь теги открытия и закрытия <?php поскольку вы запускаете его через eval ()

Другие ответы по неизвестным мне причинам не вполне соответствуют правильному решению.

Я предлагаю использовать буфер, но вы должны получить содержимое, а затем очистить буфер до конца страницы, иначе он будет выведен. Если вы хотите использовать вывод из включенного файла, вы должны использовать op_get_contents() , который вернет строку содержимого буфера.

Вам также не нужно зацикливаться на включениях, поскольку каждый будет просто добавлять в буфер (если вы не очистите его в первую очередь).

Поэтому вы можете использовать следующее:

 ob_start(); include_once('test.php'); include_once('test2.php'); $contents = ob_get_contents(); ob_end_clean(); 

Надеюсь это поможет.

Вы можете использовать функцию file_get_contents .