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


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

Я загрузил простой HTML-файл, как это:

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

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

8 76

8 ответов:

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

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

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

$Vdata = file_get_contents('path/to/YOUR/FILE.php');
ob_start();
include "yourfile.php";
$myvar = ob_get_clean();

ob_get_clean ()

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

$Vdata = file_get_contents('/path/to/your/file.php");

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

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

это загрузит затем оценить содержимое файла. PHP-файл должен быть полностью сформирован с помощью <?php и ?> теги eval оценить его.

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

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

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

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

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

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

Если ваш файл имеет оператор return следующим образом:

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

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

$data = include $filePath;