Конструкція включає в себе
Вставляє на сторінку інший текстовий файл або скрипт. Підтримує звичайні/текстові файли.
| Підтримка | PHP 4, PHP 5, PHP 7 |
|---|---|
| Короткий опис | Додає до сценарію інший текстовий файл або скрипт. |
| Вимоги | Інший текстовий файл або скрипт, який необхідно вставити. |
| Примітка | Неможливо завантажити зовнішні файли. |
Oпис
Вставляє на сторінку інший текстовий файл або скрипт. Підтримує звичайні/текстові файли.
Вбудовані файли поводяться так, ніби вони знаходяться безпосередньо на сторінці.
Вбудовані скрипти виконуються автоматично.
Вбудований скрипт передає значення змінних.
Неможливо завантажити з зовнішнього накопичувача. Може читати тільки звичайний неформатований текст і PHP-файли.
Допустимі формати шляхів:
- script.php - файл в тому ж каталозі, буде виконуватися
script.html- файл в тому ж каталозі, виконуватися не буде./file.php- файл в тому ж каталозі, буде виконуватися../page.html.folder\file\file.php- запис в Windowsaddress/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(), а краще дозволити тільки значення білого списку.