PHP

Ограничить вывод с помощью get параметров в строке адреса
              
<?if($_SERVER['QUERY_STRING'] === 'sas=1'):?>
  ...
<?endif;?>
              
            

Результат: https://example.com?sas=1

Получить текущий URL

Полный URL
            
$url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
echo $url;
            
          

Результат: https://example.com/category/page?sort=asc

URL без GET-параметров
            
$url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$url = explode('?', $url);
$url = $url[0];
echo $url;
            
          

Результат: https://example.com/category/page

Основной путь и GET-параметры
            
$url = $_SERVER['REQUEST_URI'];
echo $url;
            
          

Результат: /category/page?sort=asc

Только основной путь
            
$url = $_SERVER['REQUEST_URI'];
$url = explode('?', $url);
$url = $url[0];
echo $url;
            
          

Или

      explode('?', $_SERVER['REQUEST_URI'])[0];
    

Результат: /category/page

Только GET-параметры
      echo $_SERVER['QUERY_STRING'];
    

Результат: sort=asc

Первый каталог после домена (csm bitrix)
            
<?
  $page = $APPLICATION->GetCurPage(false);
  $DirExp = explode('/', $APPLICATION->GetCurDir());
  $pageDir = $DirExp[1];
?>

<?if($pageDir === 'catalog'):?>
  ...
<?endif;?>
            
          

URL сайта: https://vg174.dextra-test.ru/catalog/ipoteka-s-gospodderzhkoy-dlya-semey-s-detmi-po-snizhennoy-stavke/

Результат: catalog

Округление чисел

Округление к ближайшему целому

Функция round($num, $precision, $mode)

Список параметров
$num
значение, которое требуется округлить.
$precision
необязательное, количество десятичных знаков, до которых функция округлит число. Если точность положительна, то число округляется до указанного количества значащих цифр после десятичной точки. Если точность отрицательна, то число округляется до указанного количества значащих цифр перед десятичной точкой.
$mode
необязательное, режим округления, который устанавливают перечислением RoundingMode или константой.
Параметры $mode
PHP_ROUND_HALF_UP
Округляет от нуля, когда следующий знак находится посередине. То есть округляет 1.5 в 2 и −1.5 в −2.
PHP_ROUND_HALF_DOWN
Округляет к нулю, когда следующий знак находится посередине. То есть округляет 1.5 в 1 и −1.5 в −1.
PHP_ROUND_HALF_EVEN
Округляет до ближайшего чётного значения, когда следующий знак находится посередине. То есть округляет 1.5 и 2.5 в 2.
PHP_ROUND_HALF_ODD
Округляет до ближайшего нечётного значения, когда следующий знак находится посередине. То есть округляет 1.5 в 1 и 2.5 в 3.

Примеры:

      echo round(111.455);   // 111
    
      echo round(111.455, 1);  // 111.5
    
      echo round(111.455, 2);  // 111.46
    

Также функция round() может округлять целую часть числа, для этого нужно указать отрицательный $precision.

      echo round(111.455, -1); // 110
    
      echo round(111.455, -2); // 100
    
Округление к большему целому

Функция ceil($num)

Примеры:

      echo ceil(1.1);  // 2
    
      echo ceil(1.5);  // 2
    
      echo ceil(1.6);  // 2
    
Округление к меньшему целому

Функция floor($num)

Примеры:

      echo floor(1.1);  // 1
    
      echo floor(1.5);  // 1
    
      echo floor(1.6);  // 1
    
Выводить числа после запятой

Функция number_format($num, $decimals, $decimal_separator, $thousands_separator)

Список параметров
$num
Форматируемое число.
$decimals
Задаёт количество десятичных разрядов. Значение параметра decimal_separator опускается в возвращаемом значении, если в параметр передали значение 0.
$decimal_separator
Устанавливает разделитель дробной части.
$thousands_separator
Устанавливает разделитель классов многозначного числа.
      number_format("100.01", 2, ".", "");   // 100.01
    
      number_format(100", 2, ".", "");   // 100.00
    
      number_format("1234.5678", -1);   // 1,230
    
      number_format("1234.5678", -2);   // 1,200
    
      number_format("1234.5678", -3);   // 1,000
    

Преобразование строк в массив

Разделить текст по переносам строк
            
$text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.
         Proin blandit magna eu tempus ullamcorper.
         Sed porta justo sed nibh elementum condimentum.
         Quisque non eros sit amet elit commodo maximus eget a eros.";
$array = explode("\n", $text);
print_r($array);
            
          

Результат:

            
Array (
  [0] => Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  [1] => Proin blandit magna eu tempus ullamcorper.
  [2] => Sed porta justo sed nibh elementum condimentum.
  [3] => Quisque non eros sit amet elit commodo maximus eget a eros.
)
            
          
Разделить текст по предложениям
              
$text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin blandit
         magna eu tempus ullamcorper! Sed porta justo sed nibh elementum condimentum.
         Quisque non eros sit amet elit commodo maximus eget a eros?";
$text = str_replace("\n", '', $text);
$array = preg_split('/(?<=[.?!])\s+(?=[a-zа-яё])/i', $text);
print_r($array);
              
            

Результат:

            
Array (
    [0] => Lorem ipsum dolor sit amet, consectetur adipiscing elit.
    [1] => Proin blandit magna eu tempus ullamcorper!
    [2] => Sed porta justo sed nibh elementum condimentum.
    [3] => Quisque non eros sit amet elit commodo maximus eget a eros?
)
            
          
Разделить текст по словам
            
$text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin blandit magna eu tempus ullamcorper.";

$text = preg_replace("/[^a-zа-яё0-9\s]/i", '', $text);
$array = preg_split('/(\s)/', $text);
$array = array_diff($array, array(''));

print_r($array);
            
          

Результат:

            
Array (
    [0] => Lorem
    [1] => ipsum
    [2] => dolor
    [3] => sit
    [4] => amet
    [5] => consectetur
    [6] => adipiscing
    [7] => elit
    [8] => Proin
    [9] => blandit
    [10] => magna
    [11] => eu
    [12] => tempus
    [13] => ullamcorper
)
            
          
Разделить текст по буквам
            
$text = "Lorem ipsum dolor sit amet";
$array = str_split($text);
print_r($array);
            
          

Результат:

            
Array (
    [0] => L
    [1] => o
    [2] => r
    [3] => e
    [4] => m
    [5] =>
    [6] => i
    [7] => p
    [8] => s
    [9] => u
    [10] => m
    [11] =>
    [12] => d
    [13] => o
    [14] => l
    [15] => o
    [16] => r
    [17] =>
    [18] => s
    [19] => i
    [20] => t
    [21] =>
    [22] => a
    [23] => m
    [24] => e
    [25] => t
)
            
          
Разделить текст по нескольким разделителям

Разделители - и :

            
$text = "Lorem ipsum dolor sit amet-proin blandit magna eu:Sed porta justo.";
$array = preg_split('/[-|:]/u', $text, -1, PREG_SPLIT_NO_EMPTY);
print_r($array);
            
          

Результат:

            
Array (
    [0] => Lorem ipsum dolor sit amet
    [1] => proin blandit magna eu
    [2] => Sed porta justo.
)
            
          

Если разделитель из нескольких символов, например <br> и </br>:

            
$text = "Lorem ipsum dolor sit amet,<br>proin blandit magna eu.</br>Sed porta justo.";
$array = preg_split('/(<br>)|(<\/br>)/u', $text, -1, PREG_SPLIT_NO_EMPTY);
print_r($array);
            
          

Результат:

            
Array (
    [0] => Lorem ipsum dolor sit amet,
    [1] => proin blandit magna eu.
    [2] => Sed porta justo.
)
            
          
Разделить текст на равные части
            
$text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin blandit magna eu tempus ullamcorper.";

$chunks = 10;
$array = str_split($text);
$chunks = array_chunk($array, $chunks, false);
$result = array();
foreach ($chunks as $chunk) {
    $result[] = implode($chunk);
}

print_r($result);
            
          

Результат:

            
Array (
    [0] => Lorem ipsu
    [1] => m dolor si
    [2] => t amet, co
    [3] => nsectetur
    [4] => adipiscing
    [5] =>  elit. Pro
    [6] => in blandit
    [7] =>  magna eu
    [8] => tempus ull
    [9] => amcorper.
)
            
          

Как вывести PHP массив

print_r()

Функция print_r() выводит информацию о переменной в удобочитаемом виде.

Чтобы отобразить пробелы и переносы результат функции нужно обернуть в тег <pre>.

            
$array = array(
	'Andi',
	'Benny',
	'Cara',
	'Danny',
	'Emily',
);

echo '<pre>';
print_r($array);
echo '</pre>';
            
          

Результат:

            
Array (
    [0] => Andi
    [1] => Benny
    [2] => Cara
    [3] => Danny
    [4] => Emily
)
            
          
var_dump()

Функция var_dump() отображает информацию о переменной, включая тип и значение.

            
$array = array(
	'Andi',
	'Benny',
	'Cara',
	'Danny',
	'Emily',
);

echo '<pre>';
var_dump($array);
echo '</pre>';
            
          

Результат:

            
array(5) {
  [0]=>
  string(4) "Andi"
  [1]=>
  string(5) "Benny"
  [2]=>
  string(4) "Cara"
  [3]=>
  string(5) "Danny"
  [4]=>
  string(5) "Emily"
}
            
          
var_export()

Функция var_export() возвращает строковое представление переменной в виде полноценного PHP-кода.

            
$array = array(
	'Andi',
	'Benny',
	'Cara',
	'Danny',
	'Emily',
);

echo '<pre>';
echo var_export($array);
echo '</pre>';
            
          

Результат:

            
array (
	0 => 'Andi',
	1 => 'Benny',
	2 => 'Cara',
	3 => 'Danny',
	4 => 'Emily',
)
            
          

Массив

Поменять элементы местами
            
<?php
 $array = array('three','one','two','four','five');

 $tmp=array_shift($array);      # Удаляет первый элемент массива, возвращая его
 array_splice($array,2,0,$tmp); # Вставляет элемент после 2-го элемента, удалив с этой позиции 0 элементов

 echo implode(',',$array);
?>
            
          

Одной строкой без переменных

      array_splice($array,2,0,array_shift($array));
    

Циклы

foreach (без индекса)
            
foreach($array as $value) {
  // do stuff
}
            
          
foreach (c индексом)
            
foreach($array as $key => $value) {
  // do stuff
}