Можно ли использовать переменную в имени файла, включаемого в php? - PullRequest
1 голос
/ 27 июня 2011

Я пытаюсь включить разные заголовочные файлы на основе переменной, переданной с другой страницы.Переменная $ section.Вот мой код:

 <?php include("header".$section.".php"); ?>

Я пытаюсь включить headerAbout.php или headerMenu.php или .... на основе переменной $ section.Но я получаю сообщение об ошибке:

 include(header.php) [function.include]: failed to open stream: No such file or directory

Я не знаю, почему переменная не конкатенируется.кто-нибудь может уточнить это?

Ответы [ 3 ]

2 голосов
/ 27 июня 2011

Учитывая, что она не объединяется, переменная не определена в тот момент, когда вы пытаетесь использовать ее во включении. Где вы устанавливаете его значение?

1 голос
/ 27 июня 2011

Работает правильно.Вполне вероятно, что $section не содержит значения в текущей области или в тот момент выполнения.

1 голос
/ 27 июня 2011

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

причина вашей ошибки, вероятно, заключается в том, что $section не содержит ожидаемого значения.

Обратите внимание, что вы должны знать, что если вы разрешите ввод данных пользователем как часть расположения файла, вы можете быть уязвимы для путь обхода атаки .Поэтому не забудьте проверить значение.

...