Ситуация следующая: есть скрипт create_gallery.php Он создает из каталога с jpg-ами табличку с превьюшками и т.д. Если его напрямую открыть в окне браузера все отлично работает. Загвоздка в том, что я не могу его подключить к другому файлу .php include возвращает что файл не найден. Хотя если к примеру попробовать scandir'ом тот каталог прозвонить - файл присутствует. Пробовал и абсолютный путь задавать и относительный... Не видит файла и все... Инклуд так делал: include "create_gallery.php?dir=./gallery001&rows=3"; (для пробы положил в том же каталоге что и index.php, который его вызывает) include "../scripts/create_gallery.php?dir=./gallery001&rows=3"; (тут он по задумке должен лежать) Права менял на 0755 для обоих файлов. Подскажите где я ошибся...
-=Р@Ф=- Здесь явная ошибка. При подключении другого файла нельзя передавать ему параметры подобным образом, это не HTTP протокол, а файловая система. Вместо этого должно быть что-то наподобие: PHP: <?php $_GET["dir"]="./gallery001"; $_GET["rows"]=3; include "create_gallery.php"; И еще одно: всегда используйте require, а не include, если не требуется обратное.
Может, я давно не спал, но... Но в чём, блин, разница? Ты хотел написать, что не нужно передавть директорию/файл через GET таким похабным ообразом - не проверяя? Опять таки, может, я давно не спал, но... Но нафига? В случае require скрипт "умрёт" не найдя ничего, в случае с include - нет. Но нафига? Смайлик дружбы - . Я не выкапываю тамогавг холовара.
lexa 1. Разница в том, что первый способ не работает, а второй - должен. 2. Действительно, нафига скрипту работать дальше, если части скрипта не хватает? Этакая бегающая курица с отрубленной головой
использование require вместо includ'a имеет ещё одно приемущество: если я не ошибаюсь, то при рекваире подключаемый файл компилируется сразу, по ходу компиляции основного файла. При инклюдах же, заинклюженные файлы компилируются после всей компиляции основного файла. В этом случае использование require даёт прирост производительности. Если я не прав - прошу меня поправить.
Нет. Разница лишь в типе генерируемой ошибки - если файла нет, require выдаст Fatal Error и остановит выполнение скрипта.
+Sten+ Хочу такой же травы, пусть Котеров поделится! eduha прав. Разница только в реакции на отсутствующий файл. Пример у меня не работает (точнее, работает как надо )
Dagdamor Действительно, в книге о 5 версии PHP Котеров пишет: Учился я по книге о 4 PHP (моя первая книга), затем и запомнил это. Видно, в 5 версии изменили include. Добавлено: В мануале о инклуде нашел такую строчку:
По моему скромному мнению, все же стоит Просто, для себя. Что бы вспомнить спустя месяц, где тут необходимый кусок скрипта, а где - вторичный.