Как загрузить PHP-файл в переменную?


Мне нужно загрузить PHP-файл в переменную. Как будто include();

Я загрузил простой HTML-файл, подобный этому:

$Vdata = file_get_contents("textfile.txt");

Но теперь мне нужно загрузить PHP-файл.

 76
Author: Alix Axel, 2009-08-13

8 answers

Я полагаю, вы хотите получить контент, сгенерированный PHP, если это так, используйте:

$Vdata = file_get_contents('http://YOUR_HOST/YOUR/FILE.php');

В противном случае, если вы хотите получить исходный код PHP-файла, это то же самое, что и файл .txt:

$Vdata = file_get_contents('path/to/YOUR/FILE.php');
 104
Author: Alix Axel, 2009-08-13 16:48:02
ob_start();
include "yourfile.php";
$myvar = ob_get_clean();

Ob_get_clean - Очистка()

 103
Author: neobie, 2017-02-02 16:11:43

Если вы используете http://, как предложил эйз, вы сможете прочитать только вывод PHP-скрипта. Вы можете прочитать сам PHP-скрипт только в том случае, если он находится на том же сервере, что и ваш запущенный скрипт. Затем вы могли бы использовать что-то вроде

$Vdata = file_get_contents('/path/to/your/file.php");
 6
Author: Jonathan Weiß, 2009-08-13 14:23:07

Если вы хотите загрузить файл, не запуская его через веб-сервер, должно сработать следующее.

$string = eval(file_get_contents("file.php"));

Это загрузит, а затем оценит содержимое файла. Файл PHP должен быть полностью сформирован с тегами <?php и ?> для eval, чтобы оценить его.

 6
Author: Jess, 2009-08-13 14:48:15

Теоретически вы могли бы просто использовать fopen, а затем использовать stream_get_contents.

$stream = fopen("file.php","r");
$string = stream_get_contents($stream);
fclose($stream);

, Который должен прочитать весь файл в $string для вас и не должен оценивать его. Хотя я удивлен, что file_get_contents не работал, когда вы указали локальный путь....

 4
Author: Zeroshade, 2009-08-13 14:39:42

В качестве альтернативы вы можете запустить буферизацию вывода, выполнить включение/требование, а затем остановить буферизацию. С помощью ob_get_contents() вы можете просто получить данные, которые были выведены этим другим PHP-файлом, в переменную.

 2
Author: Alex Weinstein, 2009-08-13 15:48:39

Функция File_get_contents() не будет работать, если на вашем сервере отключен параметр allow_url_fopen. Большинство общих веб-хостингов отключили его по умолчанию из-за угроз безопасности. Кроме того, в PHP6 опция allow_url_fopen больше не будет существовать, и все функции будут действовать так, как если бы она постоянно была отключена. Так что это очень плохой метод для использования.

Лучшим вариантом для использования, если вы получаете доступ к файлу через http, является cURL

 1
Author: Mark, 2009-08-13 14:44:31

Если в вашем файле есть оператор возврата, подобный этому:

<?php return array(
  'AF' => 'Afeganistão',
  'ZA' => 'África do Sul',
  ...
  'ZW' => 'Zimbabué'
);

Вы можете получить это в такой переменной:

$data = include $filePath;
 1
Author: Toni Almeida, 2018-05-18 10:30:27