Проверка включен ли 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();
Думаю, кому-то пригодится
Алгоритм НЕ повторяющегося случайного выбора (+/-)
/**
* В этом примере скрипт перенаправляет браузер на случайную ссылку.
* При необходимости можно переписать на простой вывод в браузер.
*/
if (!session_id()) session_start();
// Массив случайных фраз или ссылок
$links = [
'johncms.com/forum/index.php?type=topic&id=10633',
'johncms.com/forum/index.php?id=317269',
'johncms.com/forum/index.php?id=960374',
'johncms.com/forum/index.php?id=247650',
'johncms.com/forum/index.php'
];
if (!isset($_SESSION['arr'])) {
$_SESSION['arr'] = $links;
} elseif (sizeof($_SESSION['arr']) == 0) {
$_SESSION['arr'] = $links;
}
$key = array_rand($_SESSION['arr']);
if ($_SERVER['QUERY_STRING']) {
header('Location: http://'. $_SESSION['arr'][$key]);
unset($_SESSION['arr'][$key]);
exit;
} else {
echo '<a href="'. $_SERVER['PHP_SELF'] .'?go">Кликни меня</a>';
}
Писал для форума 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('Работа'); // Работ
ДоХтор, а для чего это, чисто любопытно
# Koenig (11.08.2016 / 17:48)
ДоХтор, а для чего это, чисто любопытно
Нужно было для поиска в базе отбрасывать все последние гласные в слове. Зачем - не знаю, мне было интересно
посидеть над алгоритмом ) Ну а сегодня утром он отписался в теме, что ему не нужно было решение )) Вот ссылка на тему
Обрубить окончания русских слов
я вот такой пользуюсь, давно довольно таки
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 штуки
Не совсем 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 бекапит необходимые базы и отправляет их на Яндекс.Диск