- •1.4 Варіанти тегів php
- •Конструкції мови if, for, do..While, foreach, while, switch
- •1.6 Коротка інструкція умовного оператора if
- •1.7 Інструкції include, require і інструкції однократного виключення
- •1.8 Оператори echo і print
- •2. 1 Визначення рівності однієї змінної до іншої
- •2.2 Глобальні зміні
- •2.3 Статичні зміні
- •2.4 Використання однієї змінної як посилання на іншу
- •2.4 Використання змінної для зберігання імені іншої змінної
- •Константи
- •3. 1 Одновимірні масиви
- •3.2 Багатовимірні мастви
- •3.3 Суперглобальні масиви і їх використання
- •3.4 Основні функції для роботи з масивом
- •3.5 Сортування масиву
- •4. Робота з рядками
- •4.1 Регулярні вирази
- •4.2 Видалення пробілів
- •4.3 Пошук однакових рядків
- •4.4 Об’єднання рядків
- •Функції для роботи з рядками
- •5. Робота з числами
- •6. Робота з датою
- •7. Функції
- •7.1 Оператор return
- •7.2 Рекурсія
- •7.3 Виклик функції за допомогою імені збереженого в змінній
- •7.4 Передання і повернення значення по посиланню
- •8.1 Класи і модифікатори доступу
- •8.2 Конструктори
- •8.3 Знищення об’єкту
- •8.4 Наслідування
- •9. Обробка web-форм за допомогою php
- •9.1 Отримання даних за допомогою методу post
- •9.2 Отримання даних за допомогою методу get
- •9.3 Організація завантаження даних на сервер
- •10. Робота із файлами та каталогами
- •10.1 Відкриття файлів
- •10.2 Читання файлу
- •10.3 Запис у файл
- •10.4 Копіювання файлів
- •10.5 Видалення файлу
- •10.6 Переіменування файлу
- •11. Робота із сесіями і куксі
- •12. Робота з Базами Даних MySql
- •12.1 З'єднання з бд
- •12.2 Отримання даних із бд
- •13.2 Приклад використання
9.2 Отримання даних за допомогою методу get
//створимо форму в яку користувач буде вводити дані
<form action="proc.php" method="GET">
<input type="text" name="youfirstname">
<input type="text" name="youlastname">
<input type="submit">
</form>
де action – файл в який будуть передані дані,
method – тип за допомогою якого будуть передані дані,
name – буде слугувати індексом суперглобального масиву POST за допомогою якого можливо отримати передане із форми значення.
Розглянемо файл proc.php
<?
//Виводимо отримані дані на екран
echo "Ім'я: ".$_GET['youfirstname']."<br>Прізвище: ".$_GET['youlastname'];
?>
На перший погляд ці два методи практично однакові але метод POST передає дані у невидимому для користувача вигляді, а коли дані передаємо методом пост тоді в адресному рядку в нашому випадку ми побачимо ось такий рядок:
http://namesite.ua/?youfirstname=Alexandr&youlastname=Barchuk
де youfirstname – індекс в масиві, а Alexandr – дані передані із форми
youlastname - індекс в масиві, а Barchuk - дані передані із форми
9.3 Організація завантаження даних на сервер
Великим плюсом PHP є можливість завантаження файлів на сервер.
Кожен раз при загрузці файлів з Web-сторінок автоматично створюється масив $_FILES, заповнений різноманітними даними. Наприклад якщо ви назвали поле завантаження attachment, тоді вам буде доступно наступні приклади:
$_FILES['atachment']['name'] – орігінальне ім’я файлу на машині користувача;
$_FILES['atachment']['type'] – тизмісту файлу(наприклад 'text/plain');
$_FILES['atachment']['size'] – розмір файлу в байтах;
$_FILES['atachment']['tmp_name'] – повне ім’я завантажуваємого файлу;
$_FILES['atachment']['error'] – код помилки, якщо в процесі завантаження з’явилися якісь проблеми.
Створимо приклад який буде завантажувати вайл на сервер с тим же ім’ям, що і на машині користувача:
Файл index.php
<form action="load.php" method="post" enctype="multipart/form-data" name="f1">
<input type="hidden" name="MAX_FILE_SIZE" value="8388608">
<p>Виберіть файл:<input type="file" name="attachment">
<input type="submit" value="Send"></p>
</form>
Файл load.php
<?
//якщо які-небудь файли уже були завантажені
if(count($_FILES)){
//Перевіяряємо що завантажуваємий файл присутній
if(!($_FILES['atachment']['size'])){
echo "ERROR: Не одного файлу завантажено не було!";
}else{
//Визначаємо ім’я файлу, під яким збираємось його завантажувати
$newname = dirname(__FILE__).'/'.
basename($_FILES['atachment']['name']);
//Переміщаємо завантажуємий файл в нове місце на сервері
if(!(move_uploaded_files($_FILES['atachment']['tmp_name'],
$newname))){
echo "ERROR: Проблеми при завантажені файлу!";
}else{
echo "Завантаження файлу прошло вдало!<br>
Отриманий файл: {$newname}";
}
}
}
?>
10. Робота із файлами та каталогами
10.1 Відкриття файлів
PHP надає доступ до файлів в операційних системах Windows і Unix для читання, запису або додавання вмісту. Цей розділ описує, як використовувати PHP для відкриття файлів в системах Windows. PHP містить функції fopen () і fclose () для роботи з файлами. Обидві функції визначаються нижче.
fopen(ім'я_файлу, режим) - функція використовується для відкриття файлу. Для функції потрібно задати ім'я файлу і режим роботи. Вона повертає покажчик на файл, який містить інформацію про фото і використовується в якості посилання.
fclose(указатель_ресурса) - функція використовується для закриття файлу. Для функції потрібно покажчик файлу, створений при відкритті файлу з допомогою функції fopen (). Повертає TRUE при успішній роботі або FALSE при відмові.
Файл є повним шляхом доступу до файлу, який потрібно створити або відкрити. Цей шлях доступу може бути відносним шляхом доступу до файлу: "/ Documents and Settings / Administrator / PHP / myfile.txt" або абсолютним шляхом доступу до файлу: "E: / MyFiles / PHP / myfile.txt".
Для кожного певного каталогу потрібно мати відповідні права NTFS для створення, модифікації або видалення файлів. Режим може бути одним з наступних.
Режими, які використовуються в fopen ()
Режим |
Змінні |
r |
Відкриває існуючий файл з метою читання з нього даних. Вказівник файлу поміщається на початку файлу |
r+ |
Відкриває існуючий файл з метою читання або запису даних. Вказівник файлу поміщається на початку файлу |
w |
Відкриває файл для запису. Якщо файл не існує, то він створюється. Якщо файл існує, то вказівник файлу поміщається на початку файлу і функція видаляє весь зміст існуючого файлу |
w+ |
Відкриває файл для читання та запису. Якщо файл не існує, то він створюється. Якщо файл існує, то вказівник файлу поміщається на початку файлу і функція видаляє весь зміст існуючого файлу |
a |
Відкриває файл для запису. Якщо файл не існує, то він створюється. Якщо файл існує, то вказівник файлу поміщається в кінці файлу |
a+ |
Відкриває файл для читання та запису. Якщо файл не існує, то він створюється. Якщо файл існує, то вказівник файлу поміщається в кінці файлу |
Наступний приклад показує, як відкрити файл для читання:
fileprocess.php
<?php
$filename = "C:/Documents and Settings/Administrator/MyFiles/myfile.txt";
$newfile = fopen($filename, "w+");
// код для читання або запису даних у файл розташовується тут
fclose($newfile);
?>
Перший крок полягає у створенні змінної для зберігання всього шляху доступу до файлу, який буде відкритий:
$filename = "C:/Documents and Settings/Administrators/MyFiles/myfile.txt";
Шлях доступу до текстового файлу myfile.txt зберігається в змінної з ім'ям filename. Потім створюється покажчик файлу з ім'ям $newfile і застосовується з функцією fopen () для відкриття файлу, зазначеного в попередньому розділі. Покажчик файлу є посилальної змінної PHP, використовуваної для посилання на щойно відкритий файл:
$newfile = fopen($filename, "w+");
Вказівник файлу буде використаний пізніше для читання і запису вмісту у відкритий файл. У деяких ситуаціях функція fopen() не зможе успішно відкрити файл у результаті невірного шляху доступу до файлу, повноважень безпеки або інших непередбачених проблем. У зв'язку з цим рекомендується використовувати спеціальну функцію PHP для акуратної обробки таких помилок. Ці функції можна застосовувати в поєднанні з оператором управління помилками PHP "@", для придушення створюваних PHP повідомлень про помилки, і виводу більш зрозумілого користувачеві повідомлення. Функції управління помилками PHP описані нижче:
exit(повідомленя_про_помилку) – завершує поточний сценарій і виводить повідомлення про помилку, що передається у функцію.
die(повідомленя_про_помилку) – аліас функції exit ().
Наступний сценарій демонструє використання функцій управління помилками: fileprocess.php
<?
$filename = "C:/Documents and Settings/Administrator/MyFiles/
myfile.txt";
$newfile = @fopen($filename, "w+") or exit("Неможливо відкрити або створити файл ");
fclose($newfile);
?>
Якщо файл неможливо відкрити, функція exit() виводить повідомлення "Неможливо відкрити або створити файл" та сценарій завершується. Якщо файл відкривається успішно, то вміст можна читати з файлу, записувати в файл, або додавати до файлу в залежності від використовуваного у функції fopen () режиму. Після завершення обробки всього файлу застосовується функція fclose() для закриття відкритого файлу.