удалить пробел из строки в переменной PHP

Рейтинг: 0Ответов: 1Опубликовано: 06.07.2023

есть такой кусок кода

$pric = $html->find('html body div span[class=price__value]', 0); // цена товара
$pric = strip_tags($pric); // обрезаю лишние хтмл теги

$pric = preg_replace('%^\s+|\s+$%u', '', $pric); // здесь должна быть цена без пробелов (но они есть)

парсингом $html = new simple_html_dom(); вытаскиваю цену товара, но внутри цены присутствует пробел, в итоге у меня берет цифры до пробела (если тысячи) и нормально если пробела нет. для работы использую пхп 7.3

получаю 39 999

в источнике выглядит так же введите сюда описание изображения

использовал уже все известные регулярки, с различной кодировкой, без толку. не помогло ничего. может кто подскажет решение проблемы? кто сталкивался уже с таким

$pric = html_entity_decode($pric); 
echo $pric. "<br>"; 
$pric = preg_replace('%&nbsp;%u', '', $pric); 
echo $pric. "<br>"; // выводим цену 

и все остается так же как и было. пробел на месте пы.сы. из последнего, попробовал заменить пробел на "-", видит пробел в конце строки, а не в середине (между цифрами)

Ответы

▲ 2Принят
$s = '39&nbsp;999';
$v = preg_replace(
    // убираем все что НЕ цифры, 
    // так как &nbsp; декодируется 
    // НЕ в пробел, а другую сущность 
    '/\D+/',
    '',
    html_entity_decode($s)
);

echo $v;

Или

$s = '39&nbsp;999';
$v = str_replace('&nbsp;', '', $s);

echo $v;

Фидл