Здесь я решил собрать короткие, но очень полезные скрипты на 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;
}