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

Пример 8 Открытие и запись в файл с контролем ошибок

<?php

if (!$handle = fopen($filename, 'a')) {

echo "Неудается отрыть файл ($filename)";

exit;

}

// Записываем $somecontent в открытый файл.

if (fwrite($handle, $somecontent) === FALSE) {

echo "Неудается записать в файл ($filename)";

exit;

}

echo "Успешная запись ($somecontent) в файл ($filename)";

fclose($handle);

?>

Чтение строки из файла fgets.

string fgets (resource handle [, int length])

Возвращает строку длиной не больше, чем length – 1 байт, прочитанную из файла, на который указывает handle. Чтение прекращается когда прочитано length – 1 байт или прочитан символ новой строки (который включается в возвращаемое значение), или достигнут конец файла. Значение length по умолчанию равно 1024 байт.

Пример 9 Вывод содержимого файла

<?php

//симовол @ используется для подавления вывода сообщений об ошибках

$handle = @fopen("/tmp/inputfile.txt", "r");

if ($handle) {

while (!feof($handle)) {

$buffer = fgets($handle, 4096);

echo $buffer;

}

fclose($handle);

}

?>

Запись строки в файл – fputs.

fputs() – псевдоним к функции fwrite().

Чтение файла в массив – file.

array file (string filename)

Возвращает массив, заполненный содержимым файла filename. Каждый элемент массива соответствует строке файла. В случае ошибки возвращается false.

Пример 10 Вывод пронумерованного HTML-кода

<?php

// Заносим файл, который выдается сервером exmple.com по умолчанию // в массив $lines.

$lines = file('http://www.example.com/');

// Заменяем в каждой строке массива тэги HTML, на специальные

// символы HMTL, чтобы браузер отображал код страницы; нумеруем

// строки

foreach ($lines as $line_num => $line) {

echo "Строка #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";

}

?>

Чтение строки из файла и разбор CSV-полей fgetcsv

Файл CSV – обычный файл, в котором каждая строка представляет собой набор полей отделяющихся друг от друга каким-либо символом-разделителем.

array fgetcsv (resource handle [, int length [, string delimiter]])

handle указатель на открытый файл. Значение length должно быть больше, чем самая длинная строка в файле, отсутствие этого параметра или установка в 0 снимают ограничение на максимальную длину строки (этот вариант работает намного медленнее). Разделитель полей задается в delimiter (один символ, либо первый символ, если строка), по умолчанию – запятая ','.

Пример11 Чтение и вывод содержимого CSV-файла в виде таблицы

<?php

$row = 1;

$handle = fopen("test.csv", "r");

echo '<table>';

while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {

// размер массива соответствует количеству полей

// в прочитанной строке

$num = count($data);

$row++;

echo '<tr>'; // формируем строку таблицы

for ($c=0; $c < $num; $c++) {

// выводим каждое поле в ячейку таблицы

echo '<td>' . $data[$c] . "</td>\n";

}

echo '</tr>';

}

echo '</table>';

fclose($handle);

?>

Достигнут ли конец файла – feof.

bool feof (resource handle)

Возвращает true, если указатель позиции чтения/записи установлен на конец файла, либо возникла чтения/записи, в противном случае возвращает false.

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