Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> preg_match регистронезависимый поиск php-5 и 7, preg_match php-5.6.9, php-7.0.11
xmeg.ru  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 8
Пользователь №: 43475
На форуме: 1 месяц, 28 дней
Карма:




В Apach 2.2.25, php-5.6.9 работал регистронезависимый поиск с ключом i
$pattern = "/$zapros1/i";//

echo preg_match($pattern, $homepage);


Обновился до Apach 2.4.23, php-7.0.11
ключ i не дает какого либо результата, ошибок в логах по этому ключу i нет

как заставить его производить регистронезависимый поиск ?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
N0ob  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 790
Пользователь №: 37078
На форуме: 3 года, 8 месяцев, 4 дня
Карма: 13




А содержание $pattern вы смотрели? Возможно значение $zapros просто не подставляется в $pattern
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
xmeg.ru  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 8
Пользователь №: 43475
На форуме: 1 месяц, 28 дней
Карма:




Вариант 1. на Apach 2.4.23, php-7.0.11

$homepage = "Блок питания Упор плиткореза принтер";

$zapros1 = "упор";

$pattern = "/$zapros1/i";//

echo preg_match($pattern, $homepage);

выдает 0, то есть ни найдено



Вариант 2)

$homepage = "Блок питания Упор плиткореза принтер";

$zapros1 = "Упор";

$pattern = "/$zapros1/i";//

echo preg_match($pattern, $homepage);

выдает 1, то есть найдено совпадение

PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
N0ob  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 790
Пользователь №: 37078
На форуме: 3 года, 8 месяцев, 4 дня
Карма: 13




Так ты поставил ведь модификатор i. В первом случае у тебя в переменной $zapros1 слово начинается с маленькой буквы то бишь нижний регистр а в тексте с большой. Вот оно и не находит
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
xmeg.ru  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 8
Пользователь №: 43475
На форуме: 1 месяц, 28 дней
Карма:




так i и поставлено чтоб поиск независил от регистра


провел интересный опыт


$homepage = "Mary Had A Little";

$zapros1 = "Had";

$pattern = "/$zapros1/i";//

echo preg_match($pattern, $homepage);// дает 1 то есть найдено






$homepage = "Mary Had A Little";

$zapros1 = "had";

$pattern = "/$zapros1/i";//

echo preg_match($pattern, $homepage);// дает 1 то есть найдено







$homepage = "Mary Had A Little Lamb and She LOVED It So";

echo strtolower($homepage);//mary had a little lamb and she loved it so

echo "<br/><br/>";

echo strtoupper($homepage);//MARY HAD A LITTLE LAMB AND SHE LOVED IT SO


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

возможно нужно включать что-то в настройках php

Это сообщение отредактировал xmeg.ru - 10.10.2016 - 10:49
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
T1grOK  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2703
Пользователь №: 24406
На форуме: 6 лет, 1 месяц, 21 день
Карма: 170




Цитата (xmeg.ru @ 10.10.2016 - 06:48)
пришел к выводу что функция корректно отрабатывает английские буквы, с русскими буквами при выполнении ничего не происходит

Или просто использовать модификатор u


--------------------
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
xmeg.ru  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 8
Пользователь №: 43475
На форуме: 1 месяц, 28 дней
Карма:




Попробовал, выдал ошибку в логах

PHP Warning: preg_match(): Compilation failed: invalid UTF-8 string at offset 0 in

кодировка по умолчанию windows-1251
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
xmeg.ru  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 8
Пользователь №: 43475
На форуме: 1 месяц, 28 дней
Карма:




странно если выставить charset=UTF-8
работает корректно


$homepage = "Упор";

$zapros1 = "Упор";

$pattern = "/$zapros1/iu";//

echo preg_match($pattern, $homepage);// дает 1 тоесть найдено






$homepage = "Упор";

$zapros1 = "упор";

$pattern = "/$zapros1/iu";//

echo preg_match($pattern, $homepage);// дает 1 тоесть найдено
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
xmeg.ru  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 8
Пользователь №: 43475
На форуме: 1 месяц, 28 дней
Карма:




добавил конвертер кодировки и оно заработало

$homepage = "Упор";

$zapros1 = "Упор";


$homepage = iconv("windows-1251", "utf-8", $homepage);
$zapros1 = iconv("windows-1251", "utf-8", $zapros1);


$pattern = "/$zapros1/iu";//

echo preg_match($pattern, $homepage);// дает 1 тоесть найдено








$homepage = "Упор";

$zapros1 = "упор";


$homepage = iconv("windows-1251", "utf-8", $homepage);
$zapros1 = iconv("windows-1251", "utf-8", $zapros1);


$pattern = "/$zapros1/iu";//

echo preg_match($pattern, $homepage);// дает 1 тоесть найдено


dry.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса