PHP Manual

Конструкція включає в себе

2019-09-11T08:14:16.000Z

Підтримка PHP 4, PHP 5, PHP 7
Короткий опис Додає до сценарію інший текстовий файл або скрипт.
Вимоги Інший текстовий файл або скрипт, який необхідно вставити.
Примітка Неможливо завантажити зовнішні файли.

Oпис

Вставляє на сторінку інший текстовий файл або скрипт. Підтримує звичайні/текстові файли.

Вбудовані файли поводяться так, ніби вони знаходяться безпосередньо на сторінці.

Вбудовані скрипти виконуються автоматично.

Вбудований скрипт передає значення змінних.

Неможливо завантажити з зовнішнього накопичувача. Може читати тільки звичайний неформатований текст і PHP-файли.

Допустимі формати шляхів:

  • script.php - файл в тому ж каталозі, буде виконуватися
  • script.html - файл в тому ж каталозі, виконуватися не буде
  • ./file.php - файл в тому ж каталозі, буде виконуватися
  • ../page.html.
  • folder\file\file.php - запис в Windows
  • address/DalsiAddress/file.php - запис на Unix системах

Косі риски типу **** і **/** можуть взаємоперетворюватися, тому вам не доведеться мати з цим справу.

Нелегальний вхід в систему: https://domena.pripona/slozka/soubor.php.

Aналогічні функції

Приклад

include 'file.php';

Він вставляє на сторінку скрипт file.php і запускає його на виконання.

`vars.php

$color = 'зелений';
$fruit = 'яблуко';

test.php

$color = '';
$fruit = '';
echo 'A' . $color . '' . $fruit; // A
include 'vars.php';
echo 'A' . $color . '' . $fruit; // Зелене яблуко

УВAГA: Наведені нижче позначення неможливі, передавайте вміст змінних шляхом їх визначення!

include 'file.php?parameter=neco';

Значення, що повертаються

Ні, просто ставить файл.

ПРИМІТКA: Дозволяє порівнювати вміст файлів, але це є ризиком для безпеки. Порядок дужок має значення! Приклад:

if ((include 'file.php') == 'ГAРAЗД.') {
echo 'Значення "OК"';
}

Це потенційна загроза безпеці!

Може бути вирішена за допомогою file_get_contents(), readfile() або fopen(). Fopen() слід використовувати тільки для файлів .txt та .html.

Безпечне читання файлу можна вирішити, визначивши спеціальну функцію.

Приклад:

$string = get_include_contents('somefile.php');
function get_include_contents(string $filename): ?string
{
if (is_file($filename)) {
ob_start();
include (string) $filename;
return ob_get_clean();
}
return null;
}

Зауваження та поради від інших розробників

**Якуб Врана написав мені електронною поштою:

include 'статті/' . $_GET['Стаття'] . '.html';

Це вкрай небезпечно.

Зловмисник може передати посилання на інший каталог, використовуючи в якості назви статті ../ або щось подібне, а іноді вдається позбутися закінчення, передавши в кінці нульовий байт.

Ви повинні як мінімум використовувати функцію basename(), а краще дозволити тільки значення білого списку.

Jan Barášek   Více o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Související články

1.
4.
Status:
All systems normal.
2025