Ваш первый Сайт С использованием РНР-скриптов

CSV-ФАЙЛЫ

Гостевая книга является чуть ли не обязательным атрибутом современ­ных сайтов. Посетители сайта могут оставлять в гостевой книге свои сооб­щения или пожелания. Если помните, в прошлой главе мы делали книгу от­зывов. Гостевая книга представляет собой нечто похожее, но есть и различия. В книге отзывов вы не могли отвечать на отзывы посетителей, вернее, могли, но как посетитель, а не администратор. Мы сделаем гостевую книгу, которая вам позволяла бы отвечать каждому посетителю, оставившему свою запись в этой книге. Помимо имени и e-mail, предоставим посетителю указывать URL своего сайта. Программа выведет данные посетителя, ссылки на его сайт и e-mail, дату и время появления сообщения, и, естественно, сам текст сообщения. Прежде чем приступить к созданию гостевой книги, мы, как обычно, продолжим изучение других возможностей php-языка.

До сих пор мы использовали простые текстовые файлы для хранения и считывания каких-либо данных. Для работоспособности, например, счет­чика, этого вполне достаточно. Мы обходились несколькими строками. Ана­логично в текстовом файле для книги отзывов мы записывали в одну строку и данные посетителя, и его отзыв. В текстовом файле для гостевой книги мы должны, помимо данных посетителя и его записи, добавлять при необходи­мости свой ответ этому посетителю. Записывать все это в одну строку в тек­стовом файле нежелательно, да и не удобно при ручном редактировании за­писей. В данном случае нужно применять текстовые файлы с табличной структурой, называемые CSV-файлами. Данные в таком файле записываются в виде двумерной таблицы, отделяясь друг от друга в строке некоторым раз­делительным символом. Для чтения данных, разделенных каким-либо симво­лом, применяется функция:

Fgetcsv($descr, line, razd, ogran). Первый аргумент является дескриптором или идентификатором открытого файла. Его, как вы помните, возвращает функ­ция fopen. Второй необязательный аргумент задает длину строки в байтах. Длину можно и не указывать, но тогда снизится быстродействие функции. Вообще желательно этот параметр указывать всегда для корректной работы функции. Третий необязательный аргумент задает тип разделителя между данными в строке. По умолчанию это запятая, но можно задать свой раздели­тель, например «*» или «|». Четвертый необязательный параметр является символом, влияющим на объединение строк в файле. По умолчанию это двойные кавычки. Если вы в CSV-файле заключите в двойные кавычки ка­кую-либо фразу, то данная фраза полностью станет отдельным элементом


Массива, возвращаемого рассматриваемой функцией. Функция Fgetcsv воз­вращает, как вы уже, наверное, догадались, массив данных строки, отделен­ных друг от друга указанным разделителем. При достижении конца файла данная функция возвратит False.

Посмотрим, как работает рассмотренная выше функция. Создайте в ра­бочей папке htdocs подпапку gostevaja, а в этой подпапке простой текстовый файл CSVfde.txt. Запишите туда две строки. Слова каждой строки разделите символом «|». Я, например, записал следующее: Один | два | три | четыре пять кол | пара | троякхорогио | отлично

После этого в РНР-редакторе создайте новый файл. Назовите его, напри­мер, csv.php и сохраните его тоже в подпапке gostevaja. Наберите между те­гами <?php и?> следующие строчки: $open=fopen("CSVfde.txt", "г"); $dan =fgetcsv(Sopen, 2048, ""); print_r($dan);

Сначала мы открываем файл и присваиваем ему дескриптор $ореп. Далее переменной $dan мы присваиваем результат действия функции fgetcsv. Раз­мер строки мы установили 2 кб, хотя в данном случае хватило бы и 100 байт. Разделитель указываем тот, который использовали в текстовом файле. И, на­конец, при помощи php-функции print Г выводим полученный массив в брау­зер. Сохраните и запустите программу. В браузере вы увидите следующее, если, конечно, вы записали в текстовый файл то же самое, что и я: Array ([0]=>один [1]->два [2]=>три [3]=>четыре [4]=>пять)

А увидите вы массив элементов первой строки (нумерация элементов в массиве, напомню, начинается с нуля). Если вы хотите, чтобы вывелись все строки, т. е. массив строк, каждая из которых представляет массив элементов (слов), удалите прошлый код и наберите немного другой: $ореп =fopen("CSVfde.txt", "г");

While(($dan =fgetcsv(Sopen, 2048, "")) !==false)

{

$rec[]=$dan; }

Print_r($rec);

В отличие от прошлой программы, функция fgetcsv выполняется, пока не будет достигнут конец файла, т. е. цикл while будет выполняться (в нашем случае два раза), пока функция fgetcsv не возвратит значение false. При каж­дом выполнении цикла, переменной $dan будет присваиваться массив слов очередной строки. Этот массив строки мы записываем в массив $гес. Таким образом, у нас получается двумерный массив $гес, элементом которого явля­ется строка, которая, в свою очередь, тоже является массивом слов, разде­ленных символом «|». Запустив данную программу, вы увидите следующее: Array ([0]=>Array ([0]=>один [1]=>два [2]=>три [3]=> четыре [4]=>пять) [1]=> Array ([0]=>кол [1]=>пара [2]=>трояк [3]=>хорошо [4]=> отлично)).

Это уже двумерный массив, 2 строки по 5 элементов в каждой. Вообще для чтения файлов с данными в виде двумерных массивов, удобно было бы использовать отдельную функцию, которую мы создадим в разд. 7.2.

Ваш первый Сайт С использованием РНР-скриптов

Создание сайта

Итак, при помощи данной книги вы создали сайт. Конечно, сайт в таком виде не очень привлекателен, так как он создавался исключительно для при­мера. Но используя полученные знания в этой книге, …

ИСПОЛЬЗОВАНИЕ СЕРВИСА ROBOXCHANGE ДЛЯ ОПЛАТЫ

Если у вас нет никакой возможности получить персональный аттестат, или просто лень это делать, то для оплаты товаров со своего сайта вы можете воспользоваться сервисом Roboxchange. Этот сервис дает возможность …

ИСПОЛЬЗОВАНИЕ СЕРВИСА WEB MERCHANT INTERFACE ДЛЯ ОПЛАТЫ

Сервис Web Merchant Interface позволяет получать денежные средства на свои электронные кошельки от клиентов при оплате ими электронных товаров на вашем сайте. Электронные кошельки WebMoney и Yandex мы с вами …

Как с нами связаться:

Украина:
г.Александрия
тел./факс +38 05235  77193 Бухгалтерия

+38 050 457 13 30 — Рашид - продажи новинок
e-mail: msd@msd.com.ua
Схема проезда к производственному офису:
Схема проезда к МСД

Партнеры МСД

Контакты для заказов оборудования:

Внимание! На этом сайте большинство материалов - техническая литература в помощь предпринимателю. Так же большинство производственного оборудования сегодня не актуально. Уточнить можно по почте: Эл. почта: msd@msd.com.ua

+38 050 512 1194 Александр
- телефон для консультаций и заказов спец.оборудования, дробилок, уловителей, дражираторов, гереторных насосов и инженерных решений.