Полезные PHP скрипты для Web-разработки — PROG-TIME

Полезные PHP скрипты для Web-разработки

11.08.2021
Содержание:

Здесь я решил собрать короткие, но очень полезные скрипты на PHP, которые я использую в своей работе. Это будет простая сборка скриптов, абсолютно разного назначения. Я буду использовать данную запись для себя, чтобы не потерять найденные или разработанные куски кода, которые мне могут пригодиться.

Включение кодировки UTF-8 в PHP

header('Content-type: text/html; charset=utf-8');
setlocale(LC_ALL, 'ru_RU.UTF-8');

Вывод всех типов ошибок

ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

Вывод строки даты с русскими названиями

function date_ru($timestamp, $show_time = false)
 {
	if (empty($timestamp)) {
		return '-';
	} else {
		$now   = explode(' ', date('Y n j H i'));
		$value = explode(' ', date('Y n j H i', $timestamp));
 
		if ($now[0] == $value[0] && $now[1] == $value[1] && $now[2] == $value[2]) {
			return 'Сегодня в ' . $value[3] . ':' . $value[4];
		} else {
			$month = array(
				'', 'января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 
				'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'
			);
			$out = $value[2] . ' ' . $month[$value[1]] . ' ' . $value[0];
			if ($show_time) {
				$out .= ' в ' . $value[3] . ':' . $value[4];
			}
			return $out;
		}
	}
}

Запретить кэширование страниц (PHP)

header("Cache-Control: no-cache, no-store, must-revalidate"); // HTTP 1.1.
header("Pragma: no-cache"); // HTTP 1.0.
header("Expires: 0"); // Proxies.

Запретить кэширование страниц (.htaccess)

<IfModule mod_headers.c>
    Header set Cache-Control "no-cache, no-store, must-revalidate"
    Header set Pragma "no-cache"
    Header set Expires 0
</IfModule>

Запретить кэширование страниц (HTML)

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">

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

Я использую этот код для преобразование строки цены в числовой формат, удаляя все ненужные символы с помощью функции preg_replace

$current_price = preg_replace("/[^0-9]/", '', $current_price);            
$current_price = intval($current_price);

Получить последнюю цифру числа

В переменную $a записывается нужное число и после с помощью оператора % (деления с остатком), мы получаем последнюю цифру числа.

$a = 4235324;
echo $a%10;

Улучшенная функция var_dump

Записав вывод результата функции var_dump в тег <pre> вы получите удобочитаемую конструкцию.

function vardump($str){
    echo "<pre>";
    var_dump($str);
    echo "</pre>";
}

Проверка перед подключением файлов

if (file_exists($_SERVER["DOCUMENT_ROOT"]."/includes/file.php")) {
    require_once($_SERVER["DOCUMENT_ROOT"]."/includes/file.php");
}

Функция для транслитерации слов

function translit_path($value) {
	$converter = array(
		'а' => 'a',  'б' => 'b',  'в' => 'v',  'г' => 'g',  'д' => 'd',
		'е' => 'e',  'ё' => 'e',  'ж' => 'zh', 'з' => 'z',  'и' => 'i',
		'й' => 'y',  'к' => 'k',  'л' => 'l',  'м' => 'm',  'н' => 'n',
		'о' => 'o',  'п' => 'p',  'р' => 'r',  'с' => 's',  'т' => 't',
		'у' => 'u',  'ф' => 'f',  'х' => 'h',  'ц' => 'c',  'ч' => 'ch',
		'ш' => 'sh', 'щ' => 'sch', 'ь' => '',  'ы' => 'y',  'ъ' => '',
		'э' => 'e',  'ю' => 'yu', 'я' => 'ya',
	);
 
	$value = mb_strtolower($value);
	$value = strtr($value, $converter);
	$value = mb_ereg_replace('[^-0-9a-z\.]', '-', $value);
	$value = mb_ereg_replace('[-]+', '-', $value);
	$value = trim($value, '-');    
 
	return $value;
}

Для формирования строки для цены с добавлением символа рубля

function format_price($value, $unit = '₽') {
    if ($value > 0) {
	$value = number_format($value, 2, ',', ' ');
	$value = str_replace(',00', '', $value);
 
	if (!empty($unit)) {
	    $value .= ' ' . $unit;
	}
    }
    return $value;
}

Удаление папки (директории) и внутренних файлов на PHP

function remove_dir($dir) {
    if ($objs = glob($dir . '/*')) {
	foreach($objs as $obj) {
	    is_dir($obj) ? remove_dir($obj) : unlink($obj);
	
        }
    }
    rmdir($dir);
}

Удалить файлы из директории, но оставить главную директорию

function clearDirectory($directoryPath) {
    foreach (new DirectoryIterator($directoryPath) as $fileInfo) {
	if(!$fileInfo->isDot()) {
	    unlink($fileInfo->getPathname());
	}
    }
}

Перебрать все файлы из директории и добавить в архив

function addFileRecursion($zip, $dir, $start = '') {
    if (empty($start)) {
	$start = $dir;
    }
	
    if ($objs = glob($dir . '/*')) {
	foreach($objs as $obj) { 
	    if (is_dir($obj)) {
		addFileRecursion($zip, $obj, $start);
	    }
            else {
		$zip->addFile($obj, str_replace(dirname($start) . '/', '', $obj));
	    }
	}
    }
}

Как изменить первый кириллический символ в верхний регистр

function mb_ucfirst($str, $encoding='UTF-8') {
    $str = mb_ereg_replace('^[\ ]+', '', $str);
    $str = mb_strtoupper(mb_substr($str, 0, 1, $encoding), $encoding).
	mb_substr($str, 1, mb_strlen($str), $encoding);
    return $str;
}