Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metod_smit_1-3.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
268.8 Кб
Скачать

1.1.2 Рядки

РНР включає безліч вбудованих функцій для керування і форматування рядків. Ці функції забезпечують методи визначення довжини рядка, пошуку підрядків у рядку, видалення пробілів у рядку, заміну підрядків, зміна регістра рядка і т.д.

Функція printf() запозичена з мови програмування С. Ця функція дає можливість надрукувати рядок і змінні будь-яким образом. Розглянемо наступний приклад:

printf("This is a formatted number: %d\n", 1957 );

Виводиться число 1957 у десятковому вигляді, що визначається специфікатором %d. Існують й інші специфікатори для функції printf(), наприклад, специфікатори, що будуть друкувати значення в шістнадцятирічному вигляді, у ASCII-вигляді, вісімковому, двійковому або у вигляді числа з плаваючою крапкою.

Функція strlen() повертає довжину рядка. Ця функція корисна для перевірки помилок і форматування. У наступному прикладі розглядається використання функції і тип інформації, що повертається нею:

$Test = "This is a test string";

print strlen($Test); // виводить число 21

Функція substr() повертає частину повного рядка, обумовлену цілим числом. Це ціле число задає кількість символів, що повертаються. Позитивне значення приводить до відліку символів від початку рядка, а негативне – до відліку від кінця рядка. Наприклад:

$date = "03-0ctober-1957";

$Test = substr ( $date, 10) print $Test;

// Виводить рядок "03-October"

Функцію trim() корисно використовувати для видалення в змінній зайвих символів або пробілів. Ця функція видаляє пробіли на початку і кінці рядка, наприклад:

$Test = " A String with spaces ";

$Test = trim($Test);

print $Test; // виводить рядок без пробілів

Функції strtoupper() і strtolower() перетворюють зазначений рядок, відповідно до верхнього і нижнього регістра. Часто при порівнянні рядків складно перевірити всі можливі випадки. Оскільки ці функції перетворять рядок до одного регістра, порівняння спрощується. Приклад використання функцій strtoupper() і strtolower():

$Test = "This Is A mIxEd Up StRiNg";

$Upper = strtoupper($Test);

print $Upper;

// виводить рядок "THIS IS A MIXED UP STRING"

$Lower = strtolower($Test);

print $Lower;

// виводить рядок "this is a mixed up string"

Функція explode() описана в такий спосіб:

array explode(string separator, string s);

Дана функція повертає масив рядків, у якому кожен елемент є фрагментом рядка s, відділеним символами, обумовленими через параметр separator. Наприклад:

$Arr = explode("," , "1,2,3"); // $Arr = (1, 2, 3)

1.1.3 Файли

Безперечно, доступ до файлів є важливою функцією практично у всіх мовах, але особливо він важливий при створенні Web-додатків. Мається на увазі те, що Web не має стану – звичайно програма завершує виконання і користувачу повертається документ HTML (виключення складають аплети; вони завершуються, коли користувач залишає Web-сторінку). Файли (і бази даних, що являють собою структуровані файли) дозволяють запам'ятовувати останнє відвідування користувача, або, у деяких випадках, його останню дію.

Доступ до файлів у РНР багато в чому нагадує подібного роду операції в мові С. Спочатку файл відкривається і змінної привласнюється повернутий покажчик файлу, після чого стає можливим читання і запис у файл (у залежності від використовуваного режиму) за допомогою доступу до його покажчика. Розглянемо приклад читання файлу і порядкову печатку його вмісту:

<?php

$fp = @fopen ("Strings.txt", "r") //Відкриття файлу

or die("Cannot Open File"); //Вихід якщо помилка

while ($line = @fgets ($fp, 1024))

{ //Читання рядка з файлу

print $line; //Друк ліченого рядка

}

@fclose($fp) //Закриття файлу

or die("Cannot Close File"); //Вихід, якщо помилка

?>

Операція @ може передувати будь-якому PHP-вираженню і вказує інтерпретатору на необхідність ігнорувати будь-які помилкові повідомлення.

Мовна конструкція die() має наступний прототип:

void die(sting message);

Ця функція виводить повідомлення і припиняє аналіз сценарію. Значення при цьому не повертається.

Функція fopen() відкриває покажчик файлу у файловій системі. Перший аргумент являє собою файл, що відкривається. Це може бути локальний файл, Web-адреса (повинна починатися з запису http:// і завершуватися слешем, тобто косою рискою /), або FTP-сервер (повинен починатися з запису ftp://). Другий аргумент задає режим, у якому необхідно відкрити файл. У даному випадку файл відкривається для читання. Нижче приводиться таблиця кодів, використовуваних для відкриття файлу, і відповідних їм режимів.

Таблиця 1.1 – Таблиця кодів, використовуваних для відкриття файлу

Код

Режим

"r"

Відкриття з доступом для читання; покажчик файлу встановлюється на початок файлу.

"r+"

Відкриття з доступом для читання і запису; покажчик установлюється на початок файлу.

"w"

Відкриття з доступом для запису; покажчик установлюється на початок файлу. Якщо файл існує, його вміст видаляється. Якщо файл не існує, він створюється.

"w+"

Відкриття з доступом для читання і запису; покажчик установлюється на початок файлу. Якщо файл існує, його вміст видаляється. Якщо файл не існує, він створюється.

"a"

Відкриття з доступом для запису; покажчик встановлюється в кінець файлу. Якщо файл не існує, він створюється.

"a+"

Відкриття з доступом для читання і запису; покажчик встановлюється в кінець файлу. Якщо файл не існує, він створюється.

Приєднання символу "b" до кожного з цих кодів повідомляє РНР, що файл двійковий. Це даремно для UNIX, однак необхідно для систем, подібних Windows, де між двійковими та ASCII-файлами існують визначені розходження. Крім того, при відкритті Web-адрес, або з'єднанні з FTP-серверами можна використовувати тільки режим "r".

Функція fopen() служить лише одним із засобів відкриття файлів. Для відкриття файлу і порядкового друкування його вмісту можна звернутися до функції file():

<?php

$f_contents = file("somefile.src");

foreach ($f_contents as $line)

{

print $line;

}

?>

Щоб уникнути деяких помилок при роботі з файловою системою, можна використовувати функцію file_exists(), що перевіряє існування файлу.

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