Від автора: мені завжди було цікаво, як працюють чужі сайти. Так і хочеться підглянути код стороннього скрипта, щоб і собі такий «замутити». Ось тільки PHP – це серверний мова, тому «списати» чужий код не вдасться. Але все-таки, як вивести файл PHP?
Про що це я?
Згоден, заголовок статті більше орієнтований на просунутих користувачів. Якщо ви таким не є (поки що), я зараз поясню, чому скрипт PHP просто так не вийде «підглянути».
Цей програмний мова є серверним. Тобто, виконується на стороні сервера (на хостингу), а не на стороні клієнта (користувача браузері). Щоб це продемонструвати, я вставлю в HTML кілька рядків коду PHP.
Тепер збережемо його у файлі з розширенням .php і відкриємо у браузері.
Поки нічого незвичайного. Але тепер давайте переглянемо розмітку сторінки в браузері:
У ній ми не побачимо код скрипта, тому вивести файл PHP стороннього ресурсу не вдасться, якщо тільки у вас немає доступу до сервера. Що ми і довели шляхом експерименту .
А якщо треба?
Ви, як власник власного ресурсу, можете надати своїм користувачам доступ до певних файлів. Для цього потрібно відобразити їх вміст у браузері. Чим ми і займемося.
Щоб реалізувати дане рішення, доведеться виконати кілька операцій:
Відкрити файл.
Вважати його вміст в буфер.
Закрити файл.
Вивести вміст на екран.
Приклад:
Так можна в PHP вивести вміст текстового файлу зображення. Але код скрипта або розмітку сторінки точно не вийде. Перевірено на собі .
Відображаємо скрипт
Трохи «подровняем» попередній приклад з допомогою функції htmlspecialchars(), яка перетворює весь програмний код в «читається» для браузера:
А можна взагалі обійтися всього декількома рядками. Для цього нам знадобиться функція file_get_contents():
Але перед тим як вивести файли з папки PHP, хотілося б зробити «допилинг» попереднього прикладу. Код скрипта відображався на екрані порядково, потрібно весь вміст файлу перетворити масив. За допомогою функції file():
«;
}
?>
Отримуємо імена файлів
Тепер з допомогою PHP виведемо список файлів. Так як я по своїй натурі особистість лінива, то використовую найкоротший метод без всяких там функцій типу opendir():
«;
}
?>
У прикладі для отримання імен файлів ми використовували функцію glob(). Вона здійснює пошук, згідно шаблону, який передається їй в якості обов’язкового параметра.
Як необов’язкових аргументів дана функція приймає різні прапори. Наприклад, з допомогою прапора GLOB_NOSORT можна вимкнути сортування за алфавітом, застосовувану функцією до елементів повертається масиву.
Ну, на цьому і закінчимо. Вивести список файлів у папці PHP ми навчилися, відображати вміст скриптів теж. Думаю, поки я задовольнив вашу цікавість .