Мне нужно загрузить файл 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');
eval()
или, если вы имеете дело с более сложным кодом: github.com/nikic/PHP-Parser .
$Vdata = file_get_contents(get_template_directory_uri() . '/path/to/file/in/theme.text');
ob_start();
include "yourfile.php";
$myvar = ob_get_clean();
$myvar = ob_get_clean();
(см. Документацию ob_get_clean )
Если вы используете http: // , как было предложено eyze, вы сможете только прочитать вывод 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 не работал, когда вы указали локальный путь ....
В качестве альтернативы вы можете запустить буферизацию вывода, выполнить include / require и затем остановить буферизацию. С помощью ob_get_contents () вы можете просто получить то, что было выведено другим файлом PHP, в переменную.
Если в вашем файле есть такой оператор возврата:
<?php return array(
'AF' => 'Afeganistão',
'ZA' => 'África do Sul',
...
'ZW' => 'Zimbabué'
);
Вы можете получить это в такой переменной:
$data = include $filePath;
file_get_contents () не будет работать, если на вашем сервере отключен allow_url_fopen . На большинстве общих веб-хостов он отключен по умолчанию из-за угроз безопасности. Кроме того, в PHP6 параметр allow_url_fopen больше не будет существовать, и все функции будут действовать так, как если бы он был постоянно отключен. Так что это очень плохой метод для использования.
Если вы обращаетесь к файлу через http, лучше всего использовать cURL.