<?php
// Получаем значение даты из ACF
$date = get_field('data_cont_front');
// Разделяем дату на число и месяц
$date_parts = explode(' ', $date);
$day = $date_parts[0]; // Число
$month = $date_parts[1]; // Месяц
// Выводим с нужной разметкой
?>
<div class="new-front-cart__span">
<span class="new-date__number"><?php echo $day; ?></span>
<span class="new-date__month"><?php echo $month; ?></span>
</div>
<?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;
export default function App() {
const [originalItems, setOriginalItems] = React.useState([
{ name: "Valerka", id: 1 },
{ name: "Vasya", id: 2 },
]);
const [items, setItems] = React.useState(originalItems);
const [search, setSearch] = React.useState("");
const [name, setName] = React.useState("");
const createNewItem = () => {
const user = {
name,
id: Date.now(),
};
setOriginalItems([...originalItems, user]);
setItems([...originalItems, user]);
setName("");
};
const deleteItem = (id) => {
setOriginalItems(originalItems.filter((item) => item.id !== id));
setItems(items.filter((item) => item.id !== id));
};
const searchItems = (searchText, users) => {
if (!searchText) {
return users;
}
return users.filter(({ name }) =>
name.toLowerCase().includes(searchText.toLowerCase())
);
};
React.useEffect(() => {
const debouncedSearch = setTimeout(() => {
const filteredItems = searchItems(search, originalItems);
setItems(filteredItems);
}, 500);
return () => {
clearTimeout(debouncedSearch);
};
}, [search, originalItems]);
return (
<div className="App">
<input
value={search}
onChange={(e) => setSearch(e.target.value)}
type="text"
placeholder="Find item by name"
></input>
<input
value={name}
onChange={(e) => setName(e.target.value)}
type="text"
placeholder="Enter your name"
></input>
<button onClick={createNewItem}>Submit</button>
{items.map((item) => (
<div key={`${item.id} + ${item.name}`} className="block">
<div className="information">
<div>{item.name}</div>
<div>{item.id}</div>
</div>
<button onClick={() => deleteItem(item.id)}>Delete</button>
</div>
))}
</div>
);
}
// Функция для конвертации валюты
function сonvertCurrency() {
fetch('https://v6.exchangerate-api.com/v6/353aabff81d47df9512e9535/latest/RUB')
.then(function (response) {
return response.json();
})
.then(function (data) {
console.log(data);
// Получение значения из поля ввода и преобразование его в число
let inputValue = parseFloat(document.querySelector('.value').value);
// Получение выбранной валюты из селектора
let currency = document.querySelector('.currency-selector').value;
// Проверка на NaN (не число)
if (!isNaN(inputValue)) {
// Умножение числа на соответствующий курс конвертации
let result;
if (currency === 'USD') {
result = inputValue * data.conversion_rates.USD;
} else if (currency === 'EUR') {
result = inputValue * data.conversion_rates.EUR;
}
// Вывод результата с двумя знаками после запятой
document.querySelector('.dollar').innerHTML = result.toFixed(2);
} else {
// Вывод сообщения об ошибке в случае некорректного ввода
document.querySelector('.dollar').innerHTML = "Некорректное значение";
}
})
.catch(function (error) {
// Обработка ошибок fetch
console.log("Ошибка при получении данных:", error);
});
}
// Обработчик изменения значения селектора
document.querySelector('.currency-selector').addEventListener('change', сonvertCurrency);
if( $categories ){
foreach( $categories as $category ){
}
}