PHP: полезные функции

http://www.w3schools.com/  – очень хороший сайт по WEB-программированию. Охватывает огромное количество языков и технологий – HTML, CSS, JS, SQL, PHP, JSON, AJAX, etc

REGEXP
preg_grep – для поиска в array по regexp
preg_match – для поиска в string по regexp
$matches = preg_grep (“/Комментарий/”, $comments) – Поиск по regexp в array и вывод value.
$first_value = reset($match) – первый элемент
Array
reset($yourArray) – первый элемент
end($yourArray) – последний элемент
reverse($yourArray) – переворачиваем массив
count($yourArray) – количество элементов
SORT

sort в отличии от asort/ksort не сохраняет значение key после сортировки. Поэтому лучше использовать asort/ksort.

krsort($arr_to_sort) for descending order

ksort($arr_to_sort) for ascending order

$matches = preg_grep (“/Комментарий/”, $comments) – Поиск по regexp в array и вывод value.

$first_value = reset($match) – первый элемент

STR

Длина строки

 strlen ($phone) != 11

Конкатенация делается через точку

$var_name = $arr_access_weekdays_hash["$day"] . "_to"
INTEGER

Проверка является ли переменная INTEGER

!filter_var($phone, FILTER_VALIDATE_INT)
DATE

Получаем дату относительно текущей на основе шаблонов:

$two_week_ago = date(‘d.m.Y’, strtotime(‘-2 week’));

$one_month_ago = date(‘d.m.Y’, strtotime(‘-1 months’));

$three_month_ago = date(‘d.m.Y’, strtotime(‘-3 months’));

$six_month_ago = date(‘d.m.Y’, strtotime(‘-6 months’));

Изменение формата даты в php для strtotime, который не умеет работать с форматом Y.m.d.
$outage_time = “2018.03.19 21:14:01”;
$outage_time = DateTime::createFromFormat(“Y.m.d H:i:s”, “$outage_time”) ->format(“d.m.Y H:i:s”); // create date object and change format representation
 
Далее можно уже вызывать strtotime, например для расчета количества часов между двумя датами.
$hourdiff = round((strtotime("now") - strtotime("$outage_time"))/3600, 1);
Сравнение дат.
 $day = '2018.04.01';
 $cur_date = date('d.m.Y');
 $day = DateTime::createFromFormat("Y.m.d", "$day") ->format("d.m.Y");
 if (strtotime($day) > strtotime($cur_date))
 {
 echo "$day > $cur_date";
 }
 else
 {
 echo "$day < $cur_date";
 }

Leave a Reply