Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
156 / 20 / 5
Регистрация: 21.02.2009
Сообщений: 2,792

Выделение произвольно размещенных слов

15.12.2012, 23:19. Показов 1306. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В результатах поиска получается строка, в которой требуется выделить комбинации знаков, по которым ее искали.

Например, если искали по комбинациям ЕРВЫ ТОРО, то необходимо выделить эти буквы в словах Первый Второй, причем с сохранением регистра найденного текста.

Поисковые слова размещены в массиве $m_producer. Попробовали так:

PHP
1
2
    for ($ij=0; $ij < count ($m_producer); $ij++) 
    $text = str_replace ($m_producer[$ij], "<B>$m_producer[$ij]</B>", $text);
Однако, при этом в тексте появляются слова с регистром образца, что нехорошо. Использование str_ireplace не решает проблему.
Как решить эту задачу?

(Кодировка UTF-8)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.12.2012, 23:19
Ответы с готовыми решениями:

Выделение одной строки в меню на списках (не активной, а произвольно)
Есть меню типа: &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;index_1.html&quot;&gt;1&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;index_2.html&quot;&gt;2&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a...

Как поменять выделение некоторых слов курсивом на жирное выделение
Здравствуйте. Есть вордовский документ состоящий из 1100 страниц.Подскажите пожалуйста как во всем документе заменить выделение курсивом...

Выделение слов и подсчёт слов с гласной на конце
Ввести текст, по нажатию произвольной клавиши поочередно выделяет каждое слово, оканчивающееся на гласную букву и считает количество таких...

12
18 / 18 / 4
Регистрация: 16.12.2012
Сообщений: 70
16.12.2012, 03:31
PHP
1
2
3
4
5
6
7
function myfunc($matches) {
  return "<b>".$matches[0]."</b>";
}
for ($i=0; $i<count($search); $i++) {
  $pattern = "/(".$search[$i].")/iU";
  $text = preg_replace_callback($pattern, "myfunc", $text);
}
0
156 / 20 / 5
Регистрация: 21.02.2009
Сообщений: 2,792
16.12.2012, 11:58  [ТС]
К сожалению, не работает. Сообщение:
Code
1
Fatal error: Cannot redeclare myfunc() (previously declared in /home/...
PHP Version 5.2.11

Как-то можно решить эту проблему?
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
16.12.2012, 12:08
Цитата Сообщение от vlad-55 Посмотреть сообщение
Как-то можно решить эту проблему?
Не декларировать дважды функцию с одним именем. Дважды инклудите один и тот же файл?
1
156 / 20 / 5
Регистрация: 21.02.2009
Сообщений: 2,792
16.12.2012, 12:24  [ТС]
Нет, файл не инклудится, и функции с именем myfunc, кроме этой, в нем нет.

Для достоверности изменил название функции - результат прежний.

Похоже, что тут что-то другое...
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
16.12.2012, 12:27
Цитата Сообщение от vlad-55 Посмотреть сообщение
Нет, файл не инклудится, и функции с именем myfunc, кроме этой, в нем нет.
Как это нет, когда он вот же, говорит, где именно есть:
Цитата Сообщение от vlad-55 Посмотреть сообщение
Fatal error: Cannot redeclare myfunc() (previously declared in /home/...
1
156 / 20 / 5
Регистрация: 21.02.2009
Сообщений: 2,792
16.12.2012, 12:34  [ТС]
Функция находится в файле, обрабатывающем результаты ввода в форму. По форме кликнули - обработчик открылся. Инклуда нет, да и ни к чему он тут.

А в строке, указанной в ошибке, находится function new_func($matches) {

Может быть, тут что-то с объявлением функции?
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
16.12.2012, 12:41
Цитата Сообщение от vlad-55 Посмотреть сообщение
Может быть, тут что-то с объявлением функции?
Вряд ли. Вы точно открываете тот же самый файл с того же самого компа, на который он указывает?
1
156 / 20 / 5
Регистрация: 21.02.2009
Сообщений: 2,792
16.12.2012, 13:06  [ТС]
Да, все на одном компьютере.

Где-то на форуме уже освещалась схожая проблема (объявление функции) и там все уперлось в версию РНР. Хотя я вполне могу и ошибаться в этом вопросе.
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
16.12.2012, 13:11
смотрите текст ошибки и идите по тем адресам которые в ней написаны и смотрите что происходит на этих строках
возможно что вы инклудите какой то файл который инклудит этот файл, или это происходит через несколько файлов
в ошибке явно написано что вы пытаетесь задекларировать функцию, которая уже задекларирована, и написаны строки и файлы в которых это происходит
1
156 / 20 / 5
Регистрация: 21.02.2009
Сообщений: 2,792
16.12.2012, 13:27  [ТС]
Да, Вы были правы - объявление функции оказалось в цикле!

Теперь этой ошибки нет и можно посмотреть саму работу этой функции. Так вот: она неверно обрабатывает регистр (см. скриншот - текст с заглавной буквой выделен, а текст большими буквами не выделен).
Изображения
 
0
18 / 18 / 4
Регистрация: 16.12.2012
Сообщений: 70
16.12.2012, 17:00
Пардон, я ошибся в модификаторе регулярного выражения. Нужно заменить U на u.
PHP
1
$pattern = "/(".$search[$i].")/iu";
0
156 / 20 / 5
Регистрация: 21.02.2009
Сообщений: 2,792
16.12.2012, 17:50  [ТС]
Да, действительно, в этом всё и дело!

Надо же, такой пустяк, а как важен!

Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.12.2012, 17:50
Помогаю со студенческими работами здесь

таблица рандомных слов. выделение определенных слов
Задание: Таблица с разными словами; выделить все ячейки, слова в которых начинаются и оканчиваются на одну и ту же букву (и содержащее не...

Поиск слов по букве, и выделение найденных слов
Задача такая, есть список из 1 млн слов. Необходимо найти все слова, которые содержат букву &quot;а&quot; независимо от регистра. Далее...

Бьет ли произвольно установленный ферзь произвольно установленную фигуру?
Текст задачи &quot;Положение фигуры на шахматной доске(8х8) задаётся двумя числами - номером горизонтали и номером вертикали. Ввести с...

выделение слов
я столкутся с такой проблемой дана в memo строка , её нужно разбить на слова длинной в 4 символа, и если длинна слова превышает четыре...

выделение слов
как реализовать выделение слов из предложения (речення) в С


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru