Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> preg_match_all и русские буквы 
:(
    Опции темы
supercelt
Дата 17.2.2013, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 25.8.2005

Репутация: нет
Всего: 1



Здравствуйте.
Не могу разобраться с кодировками. 
Есть 2 файла php, содержание которых:
Код

<?php
_ = (''));
?>
<?php
_limit(0);
$);
$777']);
$gular']);
_eplace__777']);
$type_files'])));
$type = ']);
if(i)
    $catalog = '..';
el
    $catalog = $_POST['catalog'];
$txt = 'Заданная строка найдена в файлах:<br /><br />';
$inc = 0;
_ = (''));
?>


Это просто файлы в которых я ищу строки. Только 1 файл сохранён в кодировке ANSI, другой в UTF-8 Это видно по note pad++

Есть скрипт

Код

header ('Content-type: text/html; charset=utf-8');
$string_regular = 'Заданная строка'; //Эту строку надо найти
$content = file_get_contents($file_name); //подставляю сюда сначала файл с кодировкой ANSI потом с UTF-8
preg_match_all('/'.$string_regular.'/', $content, $found);
foreach($found[0] as $value){
echo '<div class="show-item">'.htmlentities($value).'</div>';
}


Смысл в том что когда сам файл в кодировке UTF-8, то выводится искомая строка, но коряво, а когда файл в ANSI функция вообще не может найти строку. Я пробовал ставить модификаторы u, i,.. Не помогало, пробовал типа этого
Код

$data = iconv("Windows-1251", "UTF-8", "$data");


Не помогает. Надо вот сделать так что бы строка искалась когда файлы в разных кодировках и что самое главное  - выводилась на экран не криво

PM   Вверх
krundetz
Дата 18.2.2013, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 1
Всего: 69



Цитата(supercelt @  17.2.2013,  00:23 Найти цитируемый пост)
Я пробовал ставить модификаторы u, i,.. Не помогало, пробовал типа этого

один модификатор u не помогает там нужно использовать больше модификаторов

Код

preg_match('/[^\w]/u', 'русский'); //становится таким:
preg_match('/[^\pL]/u', 'русский'); //или
preg_match('/[^\p{L}]/u', 'русский');


Это сообщение отредактировал(а) krundetz - 18.2.2013, 10:50


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
supercelt
Дата 20.2.2013, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 25.8.2005

Репутация: нет
Всего: 1



Ничего не помогает.
Если взять файл, и сделать ему кодировку ANSI в np++, потом прочитать его file_get_contents, то mb_detect_encoding покажет что кодировка UTF-8.
Если сделать тоже самое с файлом, кодировка которого ANSI as UTF-8, то при проверке тоже даст UTF-8/ Странно что в обоих случаях показывает одно и тоже
PM   Вверх
krundetz
Дата 21.2.2013, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 1
Всего: 69



supercelt, а что отдает mb_detect_order


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
supercelt
Дата 21.2.2013, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 25.8.2005

Репутация: нет
Всего: 1



krundetz,  отдаёт вот что - ASCII,UTF-8

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0659 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.