Progressive Web App (PWA) — это веб-приложение, которое сочетает возможности сайтов и мобильных приложений. Оно работает в браузере, но при этом может устанавливаться на устройство как приложение, работать офлайн, поддерживать push-уведомления и обеспечивать быстрый отклик за счёт кэширования.
Какие есть способы отслеживания подключений, как это делают соцсети?Магии не существует. «Соцсети» просто держат флаг активности ещё несколько секунд после разрыва соединения, чтобы обработать ситуацию «обновления страницы».
<?php
// Исходный текст, в котором будем искать и заменять слова
$field = "
libero bryan,
sit amet adipiscing sem neque sed ipsum.bryan
bfringilla mauris sit amet nibh. https://site.com/member/bryan.html?r=nk07w,
https://site.com/member/bryan-t.html?r=nk07w.
https://site.com/bryan/test.html?r=nk07w Donec bibendum";
// Регулярное выражение для поиска URL и слова 'bryan'
// - https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)
// Это паттерн для нахождения URL. Он включает http или https, необязательный www, и остальную часть URL.
// - (\bbryan\b)
// Это паттерн для нахождения слова 'bryan' в тексте. Используем границы слова (\b) чтобы найти точное совпадение.
// Скобки вокруг \bbryan\b создают захватывающую группу, которую мы будем использовать в функции обратного вызова.
$pattern = '/https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)|(\bbryan\b)/';
// Заменяем слово 'bryan' на 'betty', но только если оно не является частью URL
$field = preg_replace_callback(
$pattern, // Паттерн для поиска URL и слова 'bryan'
function ($matches) {
// Функция обратного вызова, которая вызывается для каждого совпадения
// $matches - массив, где:
// - $matches[0] содержит всё совпадение (URL или слово 'bryan')
// - $matches[1] содержит только слово 'bryan', если оно найдено
// Если $matches[1] существует, это значит, что найдено слово 'bryan' (вторая группа в паттерне)
// В таком случае заменяем его на 'betty'
// Иначе возвращаем оригинальное совпадение (это был URL, который не нужно изменять)
return isset($matches[1]) ? 'betty' : $matches[0];
},
$field // Исходный текст, который мы будем обрабатывать
);
// Выводим результат
echo $field;
function arraySquaring($arr)
{
- foreach ($arr as $value) {
+ foreach ($arr as &$value) {
if (is_array($value)) {
$value = arraySquaring($value);
} else {
$value **= 2;
}
}
return $arr;
}
function arraySquaring($arr)
{
- foreach ($arr as $value) {
+ foreach ($arr as $key => $value) {
if (is_array($value)) {
- $value = arraySquaring($value);
+ $arr[$key] = arraySquaring($value);
} else {
- $value **= 2;
+ $arr[$key] **= 2;
}
}
return $arr;
}
function arraySquaring($arr)
{
return array_map(function($item){
return is_array($item) ? arraySquaring($item) : $item ** 2;
}, $arr);
}
function arraySquaring($arr)
{
return array_map(fn($item) => is_array($item) ? arraySquaring($item) : $item ** 2, $arr);
}
UPDATE
не выйдет.ON DUPLICATE KEY UPDATE
, кидать в таблицу каждый раз новую строку, а потом в фоне её периодически пылесосить от мусора. Стоит ли использовать эту систему? Какие отзывы/рекомендации?
- var_dump( $str );
+ echo bin2hex($str);
Получаем cf f0 e8 e2 e5 f2 20 32 30 31 39 20 cc e8 f0 21
Привет 2019 Мир!