$source = new Imagick($_SERVER['DOCUMENT_ROOT'] . '/image2.jpg');
$text = 'Лорем Ипсум';
$width = $source->getImageWidth();
$height = $source->getImageHeight();
$image = new Imagick(); // подложка
$draw = new ImagickDraw(); // текст
$mask = new Imagick(); // рамка
$draw->setFont($_SERVER['DOCUMENT_ROOT'] . '/impact.ttf');
$draw->setFontSize(60);
$draw->setFillColor(new ImagickPixel('white')); // black , как по мне по красивее получится
$draw->setGravity(Imagick::GRAVITY_CENTER);
$metric = $source->queryFontMetrics($draw, $text);
$x = (int) $metric['textWidth'] * 1.2;
$y = (int) $metric['textHeight'] * 1.2;
$offsetX = (int) (($width - $x) / 2);
$offsetY = (int) (($height - $y) / 2);
$image->newImage($x, $y, new ImagickPixel('white'));
$mask->newImage($x, $y, new ImagickPixel('gray20'));
$mask->annotateImage($draw, 0, 0, 0, $text);
$mask->setImageMatte(false);
$image->setImageCompressionQuality(100);
$image->setImageAlpha(0.2);
$image->compositeImage($mask, Imagick::COMPOSITE_COPYOPACITY, 0, 0);
$source->compositeImage($image, Imagick::COMPOSITE_DISSOLVE, $offsetX, $offsetY);
$source->setImageCompressionQuality(100);
$source->setImageFormat('png');
header('Content-type: image/png');
echo $source;
#$source->writeImage($_SERVER['DOCUMENT_ROOT'] . '/testus.png');
<header class="site-header">
<div class="container">
<div class="header-inner">
<div class="header-logo">
<a href="/">
<img src="img/logo.svg" alt="Logo">
</a>
</div>
<div class="header-info">
<div class="header-address">Адресс</div>
<div class="header-work-time">Время работы</div>
</div>
<nav class="main-navigation">
<ul class="main-menu">
<li><a href="#1">О нас</a></li>
<li><a href="#1">Услуги</a></li>
<li><a href="#1">Гарантии</a></li>
<li><a href="#1">Контакты</a></li>
</ul>
</nav>
<div class="header-phone">
<a href="tel:0505555555">050 555 55 55</a>
</div>
</div>
</div>
</header>
<?php
$items = [
['ID' => 80433, 'post_title' => 'Консоль из нержавеющей 1'],
['ID' => 80428, 'post_title' => 'Комод из неражавеющей 2']
];
$categories = ['Консоль', 'Комод'];
$result = [];
foreach($categories as $category) {
$results[$category] = [];
foreach($items as $item) {
if (mb_strpos(mb_strtolower($item['post_title']), mb_strtolower($category)) !== false) {
$result[$category][] = $item;
}
}
}
print_r($result);
PHP, выполняемый в консоли, как правило, используется для более широкого диапазона задач, чем обычные веб-скрипты. И так как они могут выполняться очень долго, то максимальное время выполнения неограниченно.
arr.sort((a, b) => {
return Number.isNaN(+a) || Number.isNaN(+b)
? a.localeCompare(b)
: a - b;
});
// или
arr.sort((a, b) => (a - b) || a.localeCompare(b));
const sorted = (arr, keys) => arr
.map(n => [ n ].concat(keys(n)))
.sort((a, b) => {
let diff = 0;
a.find((n, i) => diff = i && ((n < b[i]) ? -1 : +(n > b[i])));
return diff;
})
.map(n => n[0]);
const sortedArr = sorted(arr, n => [ +n, n.toLowerCase() ]);
document.querySelectorAll('.other-price').forEach(n => {
n.textContent = +n.textContent +
parseInt(document.querySelector('.current-price').textContent.split(' ').join(''));
});