Использование строки запроса в 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 только принимает пути, было бы бессмысленно добавлять какие-либо запросы, поскольку это не делает их простыми, включая требуемый код в текущий