@maksim2099

Как задать две кодировки в php парсере?

Доброго времени суток, думаю проблема банальная, но вот что то решения никак найти не могу. Дело в том что при изменения кодировки документа методом
<?php  header("Content-Type: text/html; charset=utf-8")?>

При использования поиска по строке (preg_match()) выдает непонятные символы. Если не менять кодировку то значения полученные после парсинга =="&&???:a/", в общем проблемы с кодировкой.
<?php  header("Content-Type: text/html; charset=utf-8")?>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        *{
            font-size: 14px;
            font-family: 'Times New Roman';
        }
    </style>
    
</head>
<body>
<div><a href="http://ovego.3dn.ru/"><div>Web page находим  something solution</div><div>and somerthing else</div></a></div>
<?php
require_once 'simple_html_dom.php';
$data=file_get_html('http://ovego.3dn.ru/');
if($data->innertext!='' and count($data->find('div'))){
    foreach($data->find('div') as $a){

            $patern="Фильм"; <b>// здесь проблема в кодировке</b>
          if(preg_match($patern,$a->plaintext)) {
                echo  $a.'Привет <br>';
              }

    }}
?>
<?php

?>

</body>
</html>

На страницу выводится
Warning: preg_match() [function.preg-match]: Unknown modifier '�' in Z:\home\test1.ru\www\Index.php on line 23
  • Вопрос задан
  • 332 просмотра
Решения вопроса 1
27cm
@27cm
TODO: Написать статус
$patern = '/Фильм/u';
if (preg_match($patern, $a->plaintext)) {
    echo  $a->plaintext . 'Привет <br>';
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
elevenelven
@elevenelven
Php Dev @ Amadeus
А в какой кодировке сохранен сам файл .php?

Замечу что у вас не совсем корректно в коде описан паттерн. Он задается с делимитером в начале и конце.
<?php
$subject = "abcdef";
$pattern = '/^def/';
preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3);
print_r($matches);
?>


ru2.php.net/manual/ru/reference.pcre.pattern.syntax.php
php.net/manual/ru/function.preg-match.php
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы