Использование строки запроса в require_once в PHP - PullRequest
8 голосов
/ 20 декабря 2010

На одной из моих страниц у меня есть require_once('../path/to/url/page.php');, который работает без проблем. Как только я добавлю строку запроса require_once('../path/to/url/page.php?var=test');, он больше не будет включать файл. Это просто пусто. У кого-нибудь есть идеи почему? Разве вы не можете использовать строку запроса в требовании?

Спасибо, Райан

Ответы [ 4 ]

17 голосов
/ 20 декабря 2010

Используя require_once('../path/to/url/page.php?var=test');, php не будет делать новый запрос к page.php, он будет фактически искать файл с именем page.php?var=test и включать его, потому что в unix вам разрешено иметь такое имя файла.Если вы хотите передать переменную этому сценарию, просто определите ее: $var="test", и она будет доступна для использования в этом сценарии.

1 голос
/ 20 декабря 2010

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

Если вам нужно передать данные в файл, вы можете просто определить стандартную переменную php.

Пример

<?php $a_variable = "data"; require_once('../path/to/url/page.php'); ?>

Обратите внимание, что переменная должна быть установлена ​​до вызова include / require, иначе она будет недоступна.

0 голосов
/ 20 декабря 2010

Все ответы верны.Но самое главное: поскольку $_GET является глобальным, он присутствует также и во всех включаемых файлах, поэтому абсолютно бесполезно передавать эти параметры с помощью include.

0 голосов
/ 20 декабря 2010

require принимает только пути, было бы бессмысленно добавлять какие-либо запросы, поскольку это просто не делает, просто включает требуемый код в текущий

...