
Работа с файлами в php
Работа с файлами разделяется на 3 этапа:
Открытие файла.
Манипуляции с данными.
Закрытие файла.
Открытие файла
Для того чтобы открыть файл в среде PHP используется функция fopen(). Обязательными параметрами этой функции является имя файла и режим файла.
$fp = fopen('counter.txt', 'r');
Согласно документации PHP выделяют следующие виды режимов файлов:
r – открытие файла только для чтения.
r+ - открытие файла одновременно на чтение и запись.
w – создание нового пустого файла. Если на момент вызова уже существует такой файл, то он уничтожается.
w+ - аналогичен r+, только если на момент вызова фай такой существует, его содержимое удаляется.
a – открывает существующий файл в режиме записи, при этом указатель сдвигается на последний байт файла (на конец файла).
a+ - открывает файл в режиме чтения и записи при этом указатель сдвигается на последний байт файла (на конец файла). Содержимое файла не удаляется.
Манипуляции с данными файла
Записывать данные в файл при помощи PHP можно при помощи функции fwrite(). Это функция принимает 2 обязательных параметра и 1 необязательный. В качестве обязательных параметров выступает дескриптор файла и режим файла:
<?php
$fp = fopen("counter.txt", "a"); // Открываем файл в режиме записи
$mytext = "Это строку необходимо нам записать\r\n";
// Исходная строка
$test = fwrite($fp, $mytext); // Запись в файл
if ($test) echo 'Данные в файл успешно занесены.';
else echo 'Ошибка при записи в файл.';
fclose($fp); //Закрытие файла
?>
Для построчного считывания файла используют функцию fgets(). Функция принимает 2 обязательных параметра:
<?php
// Открываем файл в режиме чтения
$fp = fopen("counter.txt", "r");
if ($fp)
{
while (!feof($fp))
{
$mytext = fgets($fp, 999);
echo $mytext."<br />";
}
}
else echo "Ошибка при открытии файла";
fclose($fp);
?>
Закрытие файла
Закрытие файла происходить с помощью функции fclose(), которая принимает 1 обязательный параметр.
<?php
$fp = fopen("counter.txt", "r");
if ($fp)
{
echo 'Файл открыт';
fclose($fp); // Закрытие файла
}
?>
Если нужно просто читать и писать блоки текста, то проще всего воспользоваться парой функций file_get_contents() и file_put_contents(). Первая функция считывает и возвращает данные из файла в виде строки, а вторая - записывает блок текста в указанный файл. Пользоваться этими функциями очень просто:
<?php
$content = file_get_contents('myfile.txt');
$content = str_replace('{user_name}', 'Иван Петрович', $content);
file_put_contents('myfile.txt', $content);
?>
Работа с базой данных mysql
mysqli_connect
Эта функция устанавливает соединение с сервером server MySQL и возвращает дескриптор соединения с базой данных, по которому все другие функции, принимающие этот дескриптор в качестве аргумента, будут однозначно определять выбранную базу данных. Вторым и третьим аргументами этой функции являются имя пользователя username и его пароль password соответственно:
/* Подключение к серверу MySQL */
$link = mysqli_connect(
'localhost', /* Хост, к которому мы подключаемся */
'user', /* Имя пользователя */
'password', /* Используемый пароль */
'world'); /* База данных для запросов по умолчанию */
if (!$link) {
printf("Невозможно подключиться к базе данных. Код ошибки: %s\n", mysqli_connect_error());
exit;
}
mysqli_close
Эта функция разрывает соединение с сервером MySQL, и возвращает true при успешном выполнении операции и false в противном случае. Функция принимает в качестве аргумента дескриптор соединения с базой данных, возвращаемый функцией mysqli_connect
/* Закрываем соединение */
mysqli_close($link);
mysqli_query
Эта функция применяется для отправки серверу SQL-запросов. Функция возвращает дескриптор запроса в случае успеха и false в случае неудачного выполнения запроса.
/* Посылаем запрос серверу */
if ($result = mysqli_query($link, 'SELECT Name, Population FROM City ORDER BY Population DESC LIMIT 5')) {
print("Очень крупные города:\n");
/* Выборка результатов запроса */
while( $row = mysqli_fetch_assoc($result) ){
printf("%s (%s)\n", $row['Name'], $row['Population']);
}
/* Освобождаем используемую память */
mysqli_free_result($result);
}
mysqli_insert_id
Возвращает автоматически генерируемый ID, используя последний запрос.
$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
mysqli_query($link,$query);
printf ("ID новой записи: %d.\n", $mysqli->insert_id);
Если последний запрос не был INSERT или UPDATE или в модифицируемой таблице отсутствует колонка с атрибутом AUTO_INCREMENT, данная функция вернет ноль.
mysqli_set_charset
Задает набор символов по умолчанию (кодировку).
/* изменение набора символов на utf8 */
if (! mysqli_set_charset($link,"utf8")) {
printf("Ошибка при загрузке набора символов utf8: %s\n", mysqli_error());
} else {
printf("Текущий набор символов: %s\n", mysqli_character_set_name());
}