От нех делать набросал функцию, столь популярную среди новичков. Из-за своей неопытности они очень часто спрашивают об этом, а буквально сегодня встретился ещё один перл. Ну, в связи с этим решил вот написать функцию, которая расширяет функционал, предоставляемый include. Идею можно развить, но мне кажется, что такого функционала хватит выше крыши. Сначала примеры: PHP: <?php // Обычная загрузка множества файлов __include("main.php", "incl.php", "third.php", "somefile.php"); // Передача в качестве аргумента массива __include(array("first.php", "second.php")); // Самое главное - загрузка файлов с параметрами __include("main.php?mod=main"); // Загрузка множества файлов с параметрами __include("main.php?mod=main", "template.php?name=file&id=2"); ?> Впечатляет? Конечно же нет =)) А теперь, собственно, код: PHP: <?php // Copyright (c) Arthur Andersen function __include() { static $incl = array(); if(func_num_args()) { if((func_num_args() == 1) && (is_array(func_get_arg(0)))) { $argv = func_get_arg(0); } else $argv = func_get_args(); for($i = 0; $i < sizeof($argv); $i++) { // DUMP $incl[] = $argv[$i]; if(($pos = strpos($argv[$i], '?')) !== false) { parse_str(substr($argv[$i], ($pos+1), strlen($argv[$i]) - $pos), $_GET); } else $pos = strlen($argv[$i]); include substr($argv[$i], 0, $pos); } } else return $incl; }; ?> Юзайте на здоровье =) Кстати, в случае некорректной работы предназначен отладочный режим. Для этого функция записывает все имена проинклюживаемых файлов при каждом своём вызове. Для того, чтобы увидеть все загруженные файлы, следует вызвать функцию без параметров. Она вернет массив, который можно передать в "var_dump" или "print_r" для более подробной информации.
Опять мистер-мит тыкнул пальцем в небо ... ну или во что-то теплое =) Увы, МИТ, твой комментарий абсолютно не касается темы) autoload не для этого делали, и передачу параметров он, увы, тоже не реализовывает. Или может все новички с ООП начинают))
вообще-то там оно результат уже отработанных скриптов возвращает, а не просто инклюдит файлы может при PHP: <?php echo file_get_contents('http://site.ru/cms2/block.php?g=menu'); ?> ещё и кэширование какое прикручено. А что? И аккуратней с двойным подчёркиванием а ещё про include_path, auto_prepend_file, auto_append_file
Luge, не пишите больше ничего - у Вас 3500 постов, красивое число 4all, какой ерундой приходится заниматься... =(
4000 будет ещё лучше. А потом уломать 440hz вернуть подписи и исполнить мечту ГО и продавать ссылки в подписях
Вот если бы он написал - "потому что хочу, прикольно и ниибет" - то было бы ладно. Если бы написал, почему так делать не нужно, вредно, и глупо - это было бы прекрасно.
наверно новички не знают что инклуд возвращает резалт скрипта и тычит варнинг с фолсе если при ошибке..