Убрать пробелы и подобрать регулярное выражение

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

Уважаемое, сообщество! Прошу помочь сформировать регулярное выражение, но проблема еще не только в этом.

Поясню суть всего происходящего более подробно.

Получаю с другого сайта цену товара:

alt text

код получения цены:

//  Получение содержимого страницы
    $html = file_get_contents($url);

//  Обработка данных HTML-DOM
    $doc = \phpQuery::newDocumentHTML($html);

//  Получение в DOM цену
    $price = trim($doc['.big-price']->html());

    echo "цена - $price"; // здесь будет 5 599,00 руб

//  удаляем пробелы
    $price = preg_replace("/( )|(\s)|( )/", '', $price);

    echo "цена: $price"; // а здесь будет 5 599,00руб

Запускаю сценарий через консоль и смотрю вывод:

alt text

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

Подскажите, пожалуйста, что я делаю не так?

Ответы

▲ 1Принят

Попробуйте конвертировать из html-entities в utf-8.
У меня это работает.

$price = "цена - 5 599,00 руб"; // здесь будет 5 599,00 руб
$price = mb_convert_encoding($price, 'HTML-ENTITIES', 'UTF-8');

$price = preg_replace("/( )|(\s)|( )/", '', $price);
▲ 0

Попробуй перед $price = preg_replace("/( )|(\s)|( )/", '', $price); сделать $price=strip_tags($price);.