Web Мастерская»Блог

Сообщество Web Мастеров. Тут собрано всё, чтобы написать свой первый сайт, запустить его в Интернет и поддерживать его в течении всей его работы.

Переход на PHP 7

PHP
Решил написать о переходе на PHP 7, так как сам сейчас занять переводом кода одного движка по PHP 7. И так для начала включаем дебаг или отладчик в админ панели сайта, если такого нет у вас, то можно сделать так, как написано в теме: Поиск ошибок в PHP, теперь на экране монитора, мы можем видеть сообщения ошибках, например, такое:
Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead - dir/file.php (номер строки)

Это сообщение говорит о том, что модификатор e не существует в PHP 7, следует избавляться от него, но если просто удалить данный модификатор, сценарий может выполнятся неправильно, непросто же так его туда писали. Я покажу на примере кода из PHPFOX 3 (как я переписывал код: PHPFOX 3 переход на PHP 7), делаем так:
Например, у нас сообщение ошибки указывает на такую строчку:
        $sStr = preg_replace('/\[x=(\d+)\].+?\[\/x\]/ise', "''.stripslashes(\$this->_parseUserTagged('$1')).''", $sStr); 

Её следует изменить так:
...

Условие (if else) в PHP

PHP
Хочу в своем посте кратко рассказать об условиях в php, для чего они нужны и как с ними работать. Начну конечно же с пояснения:
Условия в php - это часть скрипта, например которое может требовать что бы переменная соответствовала текущему времени суток, или чтоб переменная показывала информацию о том, что пользователь должен зарегистрироваться или авторизоваться, если смотрит гость, а если пользователь авторизован, то отображается другая информация.
И так переходим к первому примеру условия, которое называется if и выглядит примерно так:
    if (условие)
       {
          оператор
       }

Этот синтаксис говорит о том, что если условие соответствует, то выполняет свою работу оператор. Для лучшего восприятия приведу простой пример:
    $figure = 5;

    if ($figure > 3)
       {
           echo "<strong>$figure</strong> больше чем 3"; 
       } 

То есть если переменная $figure равна пяти, а в условии стоит цифра меньше пяти, то выйдет сообщение: 5 больше чем 3. Ес...

Как проверить существование метода в PHP

PHP
Последствия обращения к методу, которого не существует, могут быть - пустая страница, то есть страница не будет загружена, а при включенном дебаге появится сообщение ошибки о несуществующем методе. Чтобы такого не происходило, я прежде проверяю метод на существование, если он есть то работаю с ним, если нет, разумеется не работаю. Как это делаю рассказываю ниже.

В PHP есть функция method_exists, чьё предназначение как раз таки проверять метод на существование. Делаем так:
$class = new className;                  # Подключаемся|Получаем класс
if (method_exists($class, 'methodName')) # Проверяем наличие метода в полученном классе
{
    echo 'Метод существует.';            # Если метод существует, выводим сообщение
}

Если метод существует, появится сообщение:
Метод существует.

Конечно вместо вывода сообщения, работаем с проверенным методом....

Как определить от куда пришёл пользователь на PHP

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'] : 'Адрес не определен.';

Ну или...

Как найти наименьшее и наибольшее число в 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) можно вставлять...