Полезные коды в PHP и MySQL

9.86K
.
MARAZM
КИДАЛА!!! Дел не иметь!
Проверка включен ли JS
$browser = get_browser();
// Преобразовать $browser в массив 
$browser = (array) $browser;
if ($browser['javascript'] == 1){
echo'Javascript включен!';
}else{
echo'Включите поддержку Javascript!';
}


Отлавливаем включение AdBlock
Подключаем в шапке вашей страницы скрипт, название которого попадает под паттерн AdBlock:
<script src="advert.js"></script>

Внутри данного файла (advert.js) определяем переменную:
window.adBlock = false;

Теперь достаточно выполнить простую проверку на стороне клиента:
if ( ! ( 'adBlock' in window ) ) {
alert( 'Расширение AdBlock установлено!' );
}
.
Кадило крутится, лавэха мутится
Проверка включен ли JS

Так проще.
<noscript>Текст/код который будет виден при отключенном JS</noscript>
.
ДоХтор
Обратный отсчёт секунд
function tm() {
    $s = date('s');
    $time = array_reverse(range(0, 59));
    return $time[($s < 10 ? number_format($s) : $s)];
}

echo tm();
.
Думаю, кому-то пригодится
Алгоритм НЕ повторяющегося случайного выбора (+/-)
.
Писал для форума php.su (может быть тут тоже кому-то понадобится) ... Функция рекурсивного удаления гласных букв в конце слова
function delLastLetter($text) {
    $vowels = ['а','е','ё','и','о','у','ы','ю','я'];
    $chars = preg_split('~~u', $text, -1, PREG_SPLIT_NO_EMPTY);
    !in_array(end($chars), $vowels) ?: $bool = array_pop($chars);
    $out = ($bool ? delLastLetter(join($chars)) : $text);
    return $out;
}

echo delLastLetter('Работать'); // Работать
echo delLastLetter('Работаю');  // Работ
echo delLastLetter('Работа');   // Работ
.
(\/)____o_O____(\/)
ДоХтор, а для чего это, чисто любопытно
.
# Koenig (11.08.2016 / 17:48)
ДоХтор, а для чего это, чисто любопытно
Нужно было для поиска в базе отбрасывать все последние гласные в слове. Зачем - не знаю, мне было интересно посидеть над алгоритмом ) Ну а сегодня утром он отписался в теме, что ему не нужно было решение )) Вот ссылка на тему Обрубить окончания русских слов
.
(\/)____o_O____(\/)
ДоХтор, http://annimon.com/code/?act=v ... =1586 писал когда то
.
КИДАЛА!!! Дел не иметь!
я вот такой пользуюсь, давно довольно таки
function plural_form($number, $after) 
{
$cases = array (2, 0, 1, 1, 1, 2);
return $after[ ($number%100>4 && $number%100<20)? 2: $cases[min($number%10, 5)] ];
}



пример
$num = 103;
echo plural_form($num, array('штука','штуки','штук'));


выведет

103 штуки
.
Sitego
Enter нажат, к чему теперь рыданья…
Не совсем PHP, но может кому-то пригодится.
Задача была такая - никак не устраивал суточный бекап, вернее файлы сайтов раз в сутки это нормально, а вот с базами данных на двух сайтах была просто беда. Базы данных меняются очень быстро, к тому же один сайт имеет дело с деньгами. И если вдруг, не дай Бог, что-то случится, то потеря данных может быть весьма неприятной. Надоело бояться и начал искать решение.
Поскольку у меня ранее был уже скрипт на BASH для отправки бекапов на Яндекс.Диск, решил написать нечто такое же отдельно для баз данных. Как оказалось, в BASH всё очень просто, к тому же многое похоже на PHP. Поэтому накатал такой скрипт, который успешно проверил в действии.
# DumpBaseYandex.sh
# The screenplay was written by Sitego
# Скрипт бекапа баз данных с отправкой на Яндекс.Диск
# Скрипт написан для двух баз данных - БЛОК №1 и БЛОК №2
# Можно добавлять эти блоки в неограниченном количестве, при этом не забываем добавлять строки в самом низу для отправки баз данных на Яндекс.Диск

# Основные настройки
DBSERVER="localhost" # Сервер MySQL
USER="UserName" # Пользователь MySQL
PASS="password" # Пароль MySQL
BACKUPPATH="/home/admin/backmysql/" # Путь к папке для бекапов БД
WEBDAVURL="https://webdav.yandex.ru/Backups/mysql/" # Путь к папке на Яндекс.Диске для бекапов MySQL (папка должна существовать)
WEBDAVUSER="webmaster@yandex.ru" # Логин на Яндекс
WEBDAVPASS="password" # Пароль на Яндекс

# Удаляем старые бекапы если есть
rm ${BACKUPPATH}*.gz -r  2> /dev/null

########################## БЛОК №1 #############################
# Первая база MySQL
DATABASE="site1" # Имя базы
FILE="site1.sql" # Имя файла для сохранения дампа

# выполняем дамп базы
mysqldump --opt --user=${USER} --password=${PASS} ${DATABASE} > ${BACKUPPATH}${FILE}

# трамбуем дамп базы MySQL в gz архив
gzip ${BACKUPPATH}${FILE}

########################## БЛОК №2 #############################
# Вторая база MySQL
DATABASE="site2" # Имя базы
FILE="site2.sql" # Имя файла для сохранения дампа

# выполняем дамп базы
mysqldump --opt --user=${USER} --password=${PASS} ${DATABASE} > ${BACKUPPATH}${FILE}

# трамбуем дамп базы MySQL в gz архив
gzip ${BACKUPPATH}${FILE}

############# Отправляем бекапы БД на Яндекс.Диск ####################
curl --user $WEBDAVUSER:$WEBDAVPASS -T ${BACKUPPATH}site1.sql.gz $WEBDAVURL >/dev/null 2>&1 # Первый бекап - пошёл
curl --user $WEBDAVUSER:$WEBDAVPASS -T ${BACKUPPATH}site2.sql.gz $WEBDAVURL >/dev/null 2>&1 # Второй бекап - пошёл

Скрипт по Cron бекапит необходимые базы и отправляет их на Яндекс.Диск
Прикрепленные файлы:
Всего: 360