Использование строки запроса в require_once в PHP

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

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

4 ответа

Решение

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

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

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

пример

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

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

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

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

Другие вопросы по тегам