PHP - файл include () не работает, когда переменные помещаются в URL? - PullRequest
4 голосов
/ 28 ноября 2011

В PHP я создал веб-страницу, которая использует include () для загрузки частей сайта.Однако теперь я столкнулся с чем-то вроде проблемы: когда я использую URL-адрес вроде: data-openov-storingen.php?type=actueel Это дает мне такую ​​ошибку:

Warning: include(data-storingen.php?type=actueel): failed to open stream: No such file or directory in blablabla

Возможно ли передать переменные get в include() url?

Ответы [ 5 ]

8 голосов
/ 29 ноября 2011

include таким образом не извлекает URL, он извлекает файл из файловой системы, поэтому такой строки запроса нет.

Вы можете сделать это, хотя:

$_GET['type'] = 'actueel';
include('data-storingen.php');
5 голосов
/ 29 ноября 2011

Функция include() не обращается к файлу через HTTP, она обращается к файлу через собственную файловую систему ОС. Таким образом, переменные GET не учитываются. (поскольку они не являются частью имени файла).

С точки зрения непрофессионала, цель включения заключается в том, чтобы «скопировать / вставить» все содержимое одного файла в другой файл, чтобы у вас не было одного гигантского файла, но несколько меньших, более обслуживаемых.

3 голосов
/ 29 ноября 2011

Если у вас нет полностью определенного URL-адреса с protocol:// в адресе, PHP будет интерпретировать то, что вы передаете в include () / require (), как ЛОКАЛЬНЫЙ файл, что означает, что он ищет файл на вашем дискереальное имя которого data-storingen.php?type=actueel, тогда как у вас есть только data-storingen.php.

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

2 голосов
/ 29 ноября 2011

Нет, невозможно передать такие переменные. Вы можете использовать переменную actueel внутри data-storingen.php, если она объявлена ​​на странице, с которой вы ее включаете, до оператора include.

Подумайте о включении в текущий файл копии кода из включенного файла. Таким образом, вы можете иметь файл:

$actueel = 'abc';
include(data-storingen.php);

А потом твое в data-storingen.php:

echo $actueel;

И он выведет 'abc'.

2 голосов
/ 29 ноября 2011

Вы можете / всегда должны устанавливать переменные снаружи, так как вы не можете сделать это через URL ....

$_GET['type'] = "actueel";
include("data-storingen.php");

Тогда включенный файл может обращаться к переменным (при условии, что вы используете $_GET['type'] во включенном файле)

...