воскресенье, 30 апреля 2017 г.

пятница, 21 апреля 2017 г.

Загрузка файлов. Перемещение загруженных файлов

При перемещении файлов нам нужно знать:
1) какой файл мы хотим переместить:
 $tmp_file = $_FILES['file_upload']['tmp_name'];
$target_file = basename($_FILES['file_upload']['name']);

basename - дает только имя файла, которое в конце.

2) куда мы хотим его поместить: $upload_dir = "uploads"

3) переместим загруженный файл:
move_uploaded_file($tmp_file, $upload_dir."/".$target_file);

Перемещает только те файлы, которые были загружены и находятся во временной директории.

четверг, 20 апреля 2017 г.

Загрузка файлов. Ошибки загрузки

Есть 8 типов ошибок, которые можно получить.

Загрузка файлов. Инспектирование загруженных файлов

При отправке файлы не помещаются в суперглобальную $_POST, а помещаются в суперглобальныю $_FILES. В $_POST помещается все остальное содержимое.

Получить доступ к ним можно следующим образом: $_FILES['form_input']

Загрузка файлов. Отправка файлов как данных формы

В форме указываем: enctype="multipart/form-data"
В input должен стоять  type="file"
Обязательно указываем строку: <input type="hidden" name="MAX_FILE_SIZE" value="1000000"/> <!-- Размер примерно 1 МБ -->
MAX_FILE_SIZE не может быть больше максимального размера файла в настройках php.ini

Загрузка файлов. Конфигурирование PHP для загрузки (аплоада) файлов

Для загрузки файлов в php.ini 
file_uploads: On должна быть включена.
upload_tmp_dir: NULL - временная директория, в которую будут загружаться файлы. 
post_max_size: 8 M - размер запроса POST
upload_max_filesize: 2 M  - размер загружаемого файла.
max_execution_time: 30 sec - время выполнения, как долго PHP будет пытаться выполнить эту задачу, сколько времени он будет ждать получение этого файла.
max_input_time: -1 (no limit)  - время обработки
memory_limit: 128М - ограничение памяти или сколько памяти позволяет использоваться скрипту.

* Здесь указаны максимальные размеры по умолчанию.

воскресенье, 16 апреля 2017 г.

PHP. Работа с файлами. Просмотр содержимого директории

opendir() - открывает дескриптор каталога.
readdir() - получает элемент каталога по его дескриптору.
closedir() -  освобождает дескриптор каталога.

пятница, 14 апреля 2017 г.

PHP. Работа с файлами. Работа с директориями

Узнаем, как работать с директориями, которые содержат наши файлы.

getcwd — текущая рабочая директория.
mkdir — создаёт директорию в текущей папке.
chdir — изменяет каталог. Это работает, как указатель.
rmdir — удаляет директорию.

четверг, 13 апреля 2017 г.

PHP. Работа с файлами. Определение деталей файла

filemtime — возвращает время последнего изменения контента файла.
filectime — возвращает время изменения индексного дескриптора файла.
fileatime — возвращает время последнего доступа к файлу.

touch — устанавливает время доступа и модификации файла.

pathinfo — возвращает информацию о пути к файлу.

PHP. Работа с файлами. Чтение файлов

fread — бинарно-безопасное чтение файла.
string fread ( resource $handle , int $length )

nl2brвставляет HTML-код разрыва строки перед каждым переводом строки.

filesizeвозвращает размер файла.

file_get_contentsчитает содержимое файла в строку.

feof — проверяет, достигнут ли конец файла.

fgets — читает строку из файла
string fgets ( resource $handle [, int $length ] )

handle -    указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen() (и все еще не закрытым функцией fclose()).
length -  чтение заканчивается по достижении length - 1 байт, если встретилась новая строка (которая включается в возвращаемый результат) или конец файла (что встретилось первым). Если длина не указана, чтение из потока будет продолжаться до тех пор, пока не достигнет конца строки. 

PHP. Работа с файлами. Перемещение указателя в файле

ftell сообщает текущую позицию чтения/записи файла.
int ftell ( resource $handle )

fseek устанавливает смещение в файловом указателе.

rewind сбрасывает курсор у файлового указателя. Сбрасывает курсор файлового указателя handle на начало файлового потока. 

среда, 12 апреля 2017 г.

PHP. Работа с файлами. Удаление файлов

1) Нужно закрыть файлы, которые мы хотим удалить. Мы не можем удалить открытые файлы.
2) У нас должны быть разрешения записи для директории, папки, которая содержит файл.

// Удаление файла производится всего одной командой.
unlink("filetest.txt");

PHP. Работа с файлами. Запись в файлы

fwriteБинарно-безопасная запись в файл

 int fwrite ( resource $handle , string $string [, int $length ] )

fwrite() записывает содержимое string в файловый поток handle. 

PHP. Работа с файлами. Доступ к файлам

fopen — Открывает файл. Если файл не существует, то он создается.
fopen(filename, mode)

понедельник, 10 апреля 2017 г.

PHP. Работа с файлами. Понимание разрешений файлов

Одна из причин почему нужно использовать разрешение для файлов - это безопасность, которую они дают. Это дополнительный слов безопасности, который дает уверенность, что папки и файлы будут защищены от постороннего доступа.
Загружаемые файлы должны помещаться с свою отдельную от кода директорию!

PHP. Основы файловой системы

Прежде чем создать файл нужно убедиться, что он еще не существует. Или после создания файла нужно убедиться, что он существует. Или нужно проверить существование файла прежде, чем читать его. Или убедиться, что это файл, а не директория.

суббота, 1 апреля 2017 г.

PHP ООП. Сравнение объектов

Можно использовать 2 оператора:
1) оператор сравнения ==
Сравнивается имеют ли два объекта одинаковые атрибуты, одинаковы ли они по сути.

2) более строгий оператор идентичности ===
Требует, чтобы 2 сравниваемых объекта ссылались на один и тот же объект.

PHP ООП. Клонирование объектов

$c = clone $a;

Метод __clone()  работает, как конструктор.
function __clone() {
echo  "Existing beverage was cloned. <br />";
}

PHP ООП. Использование конструкторов и деструкторов

Конструкторы или деструкторы - это специальные методы, которые автоматически вызываются, когда объект создается или уничтожается.
В PHP4 конструкторы носили такое же имя, как и класс. У класса имя Table и у функции имя Table.
Сейчас: function ____construct() {}
Конструкторы могут принимать аргументы. function ____construct($leg_count=4) {}

Деструкторы function __destruct() {} используются редко, потому что объект редко нужно уничтожать.

PHP ООП. Ссылка на родительский класс

parent::modified_a();
Когда работаем со статическими методами, то используем parent::
Единственное когда это нужно использовать с методами экземпляра, когда мы пытаемся получить доступ к родительскому методу.

PHP ООП. Оператор разрешения области видимости

Оператор разрешения области видимости Student::$total_students
Оператор разрешения области видимости (также называемый "Paamayim Nekudotayim") или просто "двойное двоеточие" - это лексема, позволяющая обращаться к статическим свойствам, константам и перегруженным свойствам или методам класса. При обращении к этим элементам извне класса, необходимо использовать имя этого класса. 

Materialize-css. Футер

Сделаем футер и прижмем к низу страницы. Документация: https://materializecss.com/footer.html