Почему не получается с preg_match?

пытаюсь с парсить с сайтов партнеров информацию о том, в наличии ли у них товар или нет. Собственно вот код

$ch = curl_init(); 
    curl_setopt($ch,CURLOPT_URL,'http://xn----7sblaeg7cgj4a.com.ua/snyato-s-prodazh-za-mart-2017/3339-palto-frak.html');
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36');
    $out = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    if (preg_match("/продан/ui", $out)) {
      var_dump('yes');
    }else{
      var_dump('no');
    }
но получаю ответом
/var/www/html/curl/index.php:28:string 'no' (length=2)
хотя на сайте сеть следующие строки
<meta name="description" content="ПРОДАНО" />
...
<div id="short_description_content" class="rte align_justify"><p style="text-align: center;"><span style="font-size: 14pt;"><strong>ПРОДАНО</strong></span></p></div>
причемvar_dump($out);выдает страницу полностью
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
@Nc_Soft
Зачем тут регулярка?
Достаточно будет
mb_strripos($out, 'продан', 0, 'utf-8') !== false
А так да, есть такая проблема с модификаторами i + u
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
symfony.com/doc/current/components/dom_crawler.html
лучше вот так.
Чтоб не ломать мозг.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы