• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Include и ему подобная функция

  • Автор темы Froex
  • Дата начала
F

Froex

На странице происходит подключение кода с помощью php-функции include. Как избежать случая, когда файл может подключиться больше одного раза?
Например, в начале есть код:
Код:
<?php include "myfile.php"; ?>
как запретить подключение этого же файла в другом месте документа?

p.s. кажется, я где-то видел функцию, аналогичную include, только проверяющую, подключался ли файл или нет... может она и правда есть?
 
G

GOsha

Вместо include и include_once, где можно, лучше использовать require и require_once
 
N

Noel

Да require_once и incluce_once это функции которые проверяют чтобы функция подключалась только 1 раз
и не даст вам несколько раз подключать эту функцию.
 
G

GOsha

Подключается не функция, а файл.
 
N

Noel

Подключается не функция, а файл.
Прошу прощения за необдуманный ответ.
Да эти 2 функции которые подключают файлы другие хоть html хоть php или же вообще без расширения
пишется это дело обычным способом
<?php
include_once("имя_файла.расширение");
require_once("имя_файла.расширение");
?>
чтобы работали инструкции php в этих файлах то надо теги <?php и ?> тоже писать
иначе будут все данные обработаны как обычный HTML
короче include отличается от require тем что requre более строг к ошибкам и будут все ошибки показываться на странице
а инклуд все ошибки заныкает и не покажет пользователям сайта
 
G

GOsha

Опять неверно... )))
Показ ошибок определяется функцией error_reporting().

Смысл такой:
<?php
error_reporting(0);
?>
Отключает показ ошибок

<?php
error_reporting(15);
?>
Показывает все ошибки с нотисами.
Лучше писать скрипты на error_reporting(15); описанном в одном единственном месте, например файлах конфига.
Это обеспечивает безглючность и полноценную работу. Потом где-нить в конфиге меняем его на 0 перед загрузкой на сервер.

Теперь разница между include и require:

Эти две конструкции идентичны во всём, кроме обработки облома. include() выводит Warning!, а require() выдаёт Fatal Error. Иначе говоря, используйте require(), если вы хотите, чтобы отсутствие файла останавливало процессинг страницы. include() не работает таким образом, скрипт продолжит выполнение. Не забудьте также о соответствующей установке include_path.

Когда файл подключён/included, содержащийся в нём код наследует область видимости переменной строки, на которой возникло подключение. Любые переменные, доступные на этой строке в вызывающем файле, будут доступны в вызываемом файле, вперёд от этой точки.

Проще говоря - require остановит дальнейшуб работу скрипта, если возникнет косяк. include - продолжит. Оч удобно, если какой-то файл должен в любом случае присоединяться иначе дальше работать нет смысла. например конфиг с настройками сайта.
 
F

Froex

Всем спасибо за ответы. Премного благодарен.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!