Мне нужно загрузить файл PHP в переменную. Как include();
Я загрузил простой HTML файл следующим образом:
$Vdata = file_get_contents("textfile.txt");
Но теперь мне нужно загрузить файл PHP.
Мне нужно загрузить файл PHP в переменную. Как include();
Я загрузил простой HTML файл следующим образом:
$Vdata = file_get_contents("textfile.txt");
Но теперь мне нужно загрузить файл PHP.
Я предполагаю, что вы хотите получить контент, сгенерированный PHP, если это так:
$Vdata = file_get_contents('http://YOUR_HOST/YOUR/FILE.php');
В противном случае, если вы хотите получить исходный код файла PHP, он будет таким же, как файл .txt:
$Vdata = file_get_contents('path/to/YOUR/FILE.php');
ob_start();
include "yourfile.php";
$myvar = ob_get_clean();
Если вы используете http://, как было предложено ослепительно, вы сможете прочитать только вывод PHP скрипт. Вы можете читать только PHP скрипт, если он находится на том же сервере, что и ваш запуск script. Затем вы можете использовать что-то вроде
$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 не работает, когда вы указали локальный путь....
В качестве альтернативы вы можете начать буферизацию вывода, включить include/require и затем остановить буферизацию. С ob_get_contents() вы можете просто получить материал, который был выдан другим файлом PHP в переменную.
file_get_contents() не будет работать, если ваш сервер allow_url_fopen отключен. Большинство общих веб-хостов отключено по умолчанию из-за рисков безопасности. Кроме того, в PHP6 опция allow_url_fopen больше не будет существовать, и все функции будут действовать так, как если бы она постоянно была отключена. Так что это очень плохой метод для использования.
Ваш лучший вариант использования, если вы просматриваете файл через http, - cURL