Условие (if else) в PHP
Хочу в своем посте кратко рассказать об условиях в php, для чего они нужны и как с ними работать. Начну конечно же с пояснения:
Условия в php - это часть скрипта, например которое может требовать что бы переменная соответствовала текущему времени суток, или чтоб переменная показывала информацию о том, что пользователь должен зарегистрироваться или авторизоваться, если смотрит гость, а если пользователь авторизован, то отображается другая информация.
И так переходим к первому примеру условия, которое называется if и выглядит примерно так:
Этот синтаксис говорит о том, что если условие соответствует, то выполняет свою работу оператор. Для лучшего восприятия приведу простой пример:
То есть если переменная
Условия в php - это часть скрипта, например которое может требовать что бы переменная соответствовала текущему времени суток, или чтоб переменная показывала информацию о том, что пользователь должен зарегистрироваться или авторизоваться, если смотрит гость, а если пользователь авторизован, то отображается другая информация.
И так переходим к первому примеру условия, которое называется if и выглядит примерно так:
if (условие)
{
оператор
}
Этот синтаксис говорит о том, что если условие соответствует, то выполняет свою работу оператор. Для лучшего восприятия приведу простой пример:
$figure = 5;
if ($figure > 3)
{
echo "<strong>$figure</strong> больше чем 3";
}
То есть если переменная
$figure
равна пяти, а в условии стоит цифра меньше пяти, то выйдет сообщение: 5 больше чем 3
. Если же цифру три...- Жалоба
Как проверить существование метода в PHP
Последствия обращения к методу, которого не существует, могут быть - пустая страница, то есть страница не будет загружена, а при включенном дебаге появится сообщение ошибки о несуществующем методе. Чтобы такого не происходило, я прежде проверяю метод на существование, если он есть то работаю с ним, если нет, разумеется не работаю. Как это делаю рассказываю ниже.
В PHP есть функция method_exists, чьё предназначение как раз таки проверять метод на существование. Делаем так:
Если метод существует, появится сообщение:
Конечно вместо вывода сообщения, работаем с проверенным методом....
В PHP есть функция method_exists, чьё предназначение как раз таки проверять метод на существование. Делаем так:
$class = new className; # Подключаемся|Получаем класс
if (method_exists($class, 'methodName')) # Проверяем наличие метода в полученном классе
{
echo 'Метод существует.'; # Если метод существует, выводим сообщение
}
Если метод существует, появится сообщение:
Метод существует.
Конечно вместо вывода сообщения, работаем с проверенным методом....
Сделать первую букву строки заглавной на PHP
Бывает необходимым сделать первую букву строки заглавной и это легко решается при помощи функции ucfirst, предназначение данной функции - преобразовать первый символ строки в верхний регистр. Делаем так:
На экране получим:
Все просто и понятно. Но, как вы могли заметить обрабатывали мы латинские символы, а что если мы сделаем тоже самое, но с кириллическими символами:
На экране будет:
То есть преобразование не произошло... Есть вариант заменить функцию ucfirst на вот такую конструкцию:
Где используются две функции:
Делаем так:
И получаем результат на экране:
Все работает! Получается тут:
$line = 'line example';
echo ucfirst($line);
На экране получим:
Line example
Все просто и понятно. Но, как вы могли заметить обрабатывали мы латинские символы, а что если мы сделаем тоже самое, но с кириллическими символами:
$line = 'пример строки';
echo ucfirst($line);
На экране будет:
пример строки
То есть преобразование не произошло... Есть вариант заменить функцию ucfirst на вот такую конструкцию:
mb_strtoupper(mb_substr($line, 0, 1)) . mb_substr($line, 1);
Где используются две функции:
- mb_strtoupper - преобразует строку в верхний регистр.
- mb_substr - возвращает часть строки.
Делаем так:
$line = 'пример строки';
echo mb_strtoupper(mb_substr($line, 0, 1)) . mb_substr($line, 1);
И получаем результат на экране:
Пример строки
Все работает! Получается тут:
mb_strtoupper(mb_subst
...Как определить от куда пришёл пользователь на PHP
Сейчас мы с вами будем разбираться, как определить от куда пришел пользователь. Собственно тут и разбираться не в чем, для этого будем использовать элемент суперглобального массива
Значение элемента
И мы увидим адрес страницы с которой перешел пользователь. Но есть один "промах", если пользователь не перейдет на страницу по ссылке, а введет в адресную строку адрес, где мы выводи значение переменной на экран, которого на самом деле нет, так как не было "предыдущей" страницы, то получим ошибку такого вида:
Решение может быть простым, просто перед выводом на экран значения, проверять переменную на пустоту, например, так:
Ну или так:
...
$_SERVER
- HTTP_REFERER
.Значение элемента
$_SERVER['HTTP_REFERER']
- это адрес предыдущей страницы, от куда пришел пользователь по ссылке. Нам достаточно вывести значение переменной на экран:
echo $_SERVER['HTTP_REFERER'];
И мы увидим адрес страницы с которой перешел пользователь. Но есть один "промах", если пользователь не перейдет на страницу по ссылке, а введет в адресную строку адрес, где мы выводи значение переменной на экран, которого на самом деле нет, так как не было "предыдущей" страницы, то получим ошибку такого вида:
Notice: Undefined index: HTTP_REFERER in /.../.../.../
Решение может быть простым, просто перед выводом на экран значения, проверять переменную на пустоту, например, так:
echo isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : 'Адрес не определен.';
Ну или так:
if (isset($
Как получить локацию пользователя по 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
содержит в себе...