2009-08-19 3 views
2

Я пытаюсь создать сценарий для извлечения переменных из файла на том же сервере.PHP - Получить переменные из другого файла PHP без выполнения кода?

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

Я думал об использовании file_get_contents, а не о чем-либо вроде require или include, но я застрял ... есть способ разобрать все переменные в строке? Кроме того, существует ли «безопасный» способ включения файлов?

Большое спасибо, Джеймс

+1

Я чувствую, что вы неправильно справляетесь с проблемой. Что именно ты пытаешься сделать? – Havenard

+0

Я пытаюсь создать скрипт, который добавит функциональность пользователю существующего системного клиента. У каждого клиента есть файл, содержащий информацию, хранящуюся в переменных, которые мне нужны, но помимо необходимой мне информации есть и другие переменные (и потенциально, но вряд ли, другой PHP-код, который выполняет определенные функции). Я ищу безопасный способ извлечения данных, которые мне нужны из этих файлов. – 2009-08-19 03:07:57

ответ

2

Почему вы не положить все переменные в третий файл, а затем включить их в двух других файлов?

То, что вы пытаетесь сделать, звучит опасно, особенно если «для других людей использовать» вы имеете в виду, что другие могут писать эти файлы.

+0

Мой скрипт пытается добавить функциональность к существующим системам. Обычно эти файлы должны содержать только переменные, но я очень устал. Я также не хочу включать множество бесполезных переменных, которые мне не нужны в моем скрипте. В идеале это должно быть приложение «plug-and-play», поэтому я не могу попросить пользователей изменить их приложения. – 2009-08-19 02:14:13

1

В этом случае вы не хотите, чтобы ваши пользователи редактировали файл PHP вообще. Как вы уже указали, вы не можете сделать файл include(), если не можете доверять его содержимому. Поскольку вы не можете выполнить файл как PHP, нет никакого преимущества для файла, даже , являющегося PHP, поэтому вы можете выбрать формат, который ваш собственный скрипт может более легко прочитать. Например, с помощью функции parse_ini_file вы можете легко прочитать значения конфигурации из файла .ini.

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

3

file_get_contents + preg_match

Вам нужно немного лукавый регулярное выражение, чтобы идти вместе с ним.

Смежные вопросы