Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PHP_Барчук_довідник.doc
Скачиваний:
3
Добавлен:
31.08.2019
Размер:
1.14 Mб
Скачать

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() для закриття відкритого файлу.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]