Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: поиск и подсветка регистронезависимы

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
mstdmstd
Отправлено: 27 Декабря, 2016 - 10:58:37
Post Id


Частый гость


Покинул форум
Сообщений всего: 170
Дата рег-ции: Авг. 2014  


Помог: 0 раз(а)




Всем привет,
В php7 нужно подсветить найденный текст для чего делаю:
PHP:
скопировать код в буфер обмена
  1. $ret= str_ireplace($search_text, '<span class="searched_text">'.$search_text.'</span>', $content);
  2.  
Работает но поиск и подсветка регистронезависимы а код вверху менять найденную строку в регистре строки поиска.
А как правильно?

Спасибо!
 
 Top
Строитель Модератор
Отправлено: 27 Декабря, 2016 - 11:10:42
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




Используйте str_replace()
 
 Top
mstdmstd
Отправлено: 27 Декабря, 2016 - 12:42:48
Post Id


Частый гость


Покинул форум
Сообщений всего: 170
Дата рег-ции: Авг. 2014  


Помог: 0 раз(а)




Если использовать str_replace - то не будет находить текст если строка поиска задана в другом регистре...
 
 Top
Sail
Отправлено: 27 Декабря, 2016 - 13:12:04
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




mstdmstd, для поиска - stripos(), для определённости с регистром - substr(), ну и для замены - str_replace().
А если ещё вспомнить кодировки и mb_* функции...
 
 Top
mstdmstd
Отправлено: 28 Декабря, 2016 - 07:49:58
Post Id


Частый гость


Покинул форум
Сообщений всего: 170
Дата рег-ции: Авг. 2014  


Помог: 0 раз(а)




Получилось так :
PHP:
скопировать код в буфер обмена
  1.     function selectSearchedText(string $str, string $search, string $span_class) : string
  2.     {
  3.             $offset= 1;
  4.             $pos = stripos( $str, $search, $offset );
  5.             while ( $pos ) {
  6.                     $found_string= '<span class="'.$span_class.'">' . substr( $str, $pos, strlen($search) ) . '</span>';
  7.                     $offset= $pos + strlen($found_string);
  8.                     $str= substr( $str, 0,$pos ). $found_string . substr( $str, $pos+strlen($search) );
  9.                     $pos = stripos( $str, $search, $offset );
  10.             }
  11.         return $str;
  12.     }
  13.  

с вызовом :
CODE (php):
скопировать код в буфер обмена
  1.             $ret= selectSearchedText( $content, $search_text, 'searched_text');


Тетируя вроде работает ...
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB