DANFA

Как получить локацию пользователя по IP адресу

Стояла задача получить локацию пользователя по его IP адресу. Для решения задачи, надо определить IP адрес посетителя, для этого я использую переменную из суперглобального массива $_SERVER['REMOTE_ADDR']. Дальше, используя полученный IP составить URL файла, который необходимо прочесть, читать файл будет функция file_get_contents. Читаемый файл находится на сайте http://ipinfo.io/ именно туда будем посылать запрос. Код читаемого файла написан в JSON, поэтому придется декодировать полученную строку в массив, для этого использую функцию json_decode. С решением разобрались, переходим к самому коду, код прокомментировал, для лучшего понимания, что происходит:
$ip   = $_SERVER['REMOTE_ADDR'];             # Получаем IP адрес пользователя
$url  = 'http://ipinfo.io/' . $ip . '/json'; # Составляем адрес для чтения 
$info = file_get_contents($url);             # Читаем файл
$info = json_decode($info, true);            # Декодируем JSON строку в массив

Теперь массив $info содержит в...

Проверка корректности адреса электронной почты на PHP

При регистрации нового пользователя или при подписки на рассылку, пользователь вводит адрес своей электронной почты, который необходимо проверить на корректность, дабы избежать возможных ошибок при вводе адреса. Делать это лучше при помощи регулярного выражения. Давно, в интернете я нашел одно регулярное выражение (где именно, я не помню), которое мне понравилось и я им пользуюсь до сих пор, сама регулярка выглядит так:
^[a-zA-Z0-9_\.\-]+@([a-zA-Z0-9\-]+\.)+[a-zA-Z]{2,6}$

Тут проверяется весь адрес:
  • Первая часть (логин), до собаки, он может состоять из букв латинского алфавита, цифр, дефиса и нижнего подчеркивания.
  • Собака (@), собака должна присутствовать сразу после логина.
  • Адрес почтового сервиса, что следует после символа собаки. Он может состоять из букв латинского алфавита, цифр и дефиса. Обязательно должна быть точка, после точки следуют буквы латинского алфавита, в количестве от двух до шести.

Использовать это регулярное выражение надо функцией preg_match, данная функция...

Как найти наименьшее и наибольшее число в PHP (min | max)

PHP
Может потребоваться найти наименьшее или наибольшее число при написании, какого ни будь сценария, сейчас расскажу, как это можно сделать.
Допустим у нас есть массив чисел, вот такой:
$array = array(700, 255, 333, 667, 888, 1200, 512);

Массив состоит из семи чисел в хаотичном порядке, но порядок и количество чисел не имеет значения. Из этого массива нам надо получить наименьшее число, для этого в PHP существует функция min, ее предназначение находить самое маленькое число из представленных. делаем так:
$min = min($array); 

Теперь переменная $min содержит в себе самое маленькое число из массива, то есть 255.

Теперь давайте попробуем найти самое большое число из массива. Для этого будем использовать функцию max - эта функция противоположная функции min, в отличии от min, функция max находит наибольшее число. Делаем так:
$max = max($array);

И переменная $max содержит в себе самое большое число массива, это число - 1200.

В эти две функции (min | max) можно вставлять...

Функции соединения с сервером MySQLi

mysqli_connect() - является основной функцией соединения с сервером Базы Данных MySQLi, функция выполняет авторизацию пользователя БД. Пример соединения с БД:
$db = mysqli_connect('хост', 'имя пользователя', 'пароль', 'Имя БД'); 

Тут естественно меняем 'хост', 'имя пользователя', 'пароль', 'Имя БД' на свои данные от базы.

Теперь соединение с БД полностью установлено и можно записать в БД любую информацию, например так:
$query = "INSERT INTO `user` (`login`, `email`, `password`) 
VALUES('$login', '$email', '$password')"; 

И достать инфу таким образом:
$res = mysqli_query("SELECT * FROM `user` WHERE `login` = '$user' ");
...

Поля и их типы (MySQLi)

SQL
Многие Базы Данных, как и MySQLi - это обычный каталог с двоичными файлами определенного формата, так называемого - таблицы, которые собраны из различных записей, а записи собраны из полей (поле - имя и тип поля).
Имя у поля может быть каким угодно, а вот типы бывают такими (представлены не все):

Дата и время:
DATE - дата: год-месяц-день.
TIME - время: часы:минуты:секунды.
DATETIME - дата и время: год-месяц-день часы:минуты:секунды.

Строки:
TINYTEXT - максимальное количество символов 255.
TEXT - максимальное количество символов 65535.
MEDIUMTEXT - максимальное количество символов 16 777 215.
LONGTEXT - максимальное количество символов 4 294 967 295.

Бинарные
TINYBLOB - максимальное количество символов 255.
BLOB - максимальное количество символов 65535.
MEDIUMBLOB - максимальное количество символов 16 777 215.
LONGBLOB - максимальное количество символов 4 294 967 295....