PHP SDK: Текст, цены и числа
Методы доступны через $ctx->text(). Они преобразуют уже полученные значения и не отправляют запросы к сайту.
Методы
clean
clean(?string $value): string
Убрать HTML-теги, повторяющиеся пробелы и пробелы по краям.
$name = $ctx->text()->clean(' <b>Ремень</b> приводной ');
Результат и особенности. Возвращает «Ремень приводной». Для null возвращается пустая строка.
money
money(?string $value): ?float
Превратить строку с ценой в число, учитывая пробелы, запятую и символ валюты.
$price = $ctx->text()->money('1 500,50 ₽');
Результат и особенности. Возвращает 1500.5 или null, если число не удалось распознать. Валюту метод не конвертирует.
digits
digits(?string $value): string
Оставить только цифры.
$number = $ctx->text()->digits('арт. 001-42');
Результат и особенности. Возвращает строку «00142». Ведущие нули сохраняются, буквы удаляются: для буквенного артикула этот метод не подходит.
between
between(string $subject, string $start, string $end): ?string
Взять текст между первым вхождением start и последующим end.
$sku = $ctx->text()->between('Артикул: A-1; наличие: есть', 'Артикул: ', ';');
Результат и особенности. Возвращает «A-1» или null, если одна из границ не найдена.
extract
extract(string $pattern, string $subject, int $group = 1): ?string
Взять одну группу первого совпадения регулярного выражения.
$sku = $ctx->text()->extract('/Артикул:\s*([A-Z0-9-]+)/u', 'Артикул: A-1');
Результат и особенности. Возвращает «A-1» или null. group=1 по умолчанию; group=0 возвращает совпадение целиком.