Модератор форума: Yuri_G |
Сообщество uCoz Мастерская uCoz Дизайн: управление шаблонами Запрос по слову (Если в тексте есть слово то выводится текст) |
Запрос по слову |
Подскажите плиз если в $ENTRY_TITLE$ есть определенное слово, но в $ENTRY_TITLE$ содержится текст. И если слово допустим "коша" есть в этом тексте, то нужно вывести рыжая
<?if ($ENTRY_TITLE$ = 'кошка' ) ?>рыжая<?endif?> так вот не работает Гугл это конечно хорошая операционная система, но и яндекс ни чего :)
|
Цитата (cps) рыжаятак вот не работает Конечно так работать не будет Вы задаёте не верное условие, вы пишите Код <?if ($ENTRY_TITLE$ = 'кошка' ) ?>рыжая<?endif?> Это значить что: Если $ENTRY_TITLE$ (название материала) равно (один в один совпадает) со словом кошка, тогда выводим рыжая. А у вас $ENTRY_TITLE$ не может один в один совпадать со словом кошка. Так как в $ENTRY_TITLE$ есть ещё другие слова. Это равносильно тому, что мы будем пытаться задать такое условие <?if (2=3 ) ?>истина<?endif?> Два ни как не может равняться трём. Два есть два. И по этому условие не работает. Что бы оно заработало, нам нужно из названия обрезать все лишние слова до слова Кошка и после слова кошка. К примеру, если у вас такое название "Жила-была на свете кошка, ну короче такие дела" Значить нам в начале нужно обрезать "Жила-была на свете " а в конце ", ну короче такие дела" и тогда у нас останется только слова кошка. И тогда мы сможем задать условие А выглядеть оно будет так Код <?if (substr($ENTRY_TITLE$,19,5)='кошка') ?>рыжая<?endif?> Тоесть мы сейчас задали такое условие: Если обрезное название материала (в начале обрезаем 19 символов и оставляем 5 символов, так как в слове кошка 5 символов) равняется кошка, то выводим рыжая. В общем смотри <?if (substr($ENTRY_TITLE$,19,5)='кошка') ?> 19 - это сколько символов нужно обрезать до нужного слова (пробелы тоже учитываем) 5 - это длинна нужного слова Сообщение отредактировал Rad_van_Cor - Понедельник, 13 Май 2013, 22:28:37
|
Так то я знаю как сделать, а если $ENTRY_TITLE$ постоянно меняется и слово кошка может стоять в разных местах, как тогда быть?
Гугл это конечно хорошая операционная система, но и яндекс ни чего :)
Сообщение отредактировал cps - Понедельник, 13 Май 2013, 22:33:47
|
|
Цитата Rad_van_Corcps, я уже подсказал. я просто наверное вопрос не корректно задал, поправил предыдущее сообщение
Добавлено (13 Май 2013, 22:41:50) Гугл это конечно хорошая операционная система, но и яндекс ни чего :)
|
Цитата (cps) Так то я знаю как сделать, а если $ENTRY_TITLE$ постоянно меняется и слово кошка может стоять в разных местах, как тогда быть? Если бы знали как так сделать, то не писали бы глупых условий типа этого Код <?if ($ENTRY_TITLE$ = 'кошка' ) ?>рыжая<?endif?> Цитата (cps) Вот допустим в один текст:Кошка приятная на внешность Другой текст: Фотографии с кошкой (склоняемость слова "кошка" я так понимаю можно будет задать ||) Третий: Хорошее провождение времени с кошками и т.д. Слово "кошка" в разных $ENTRY_TITLE$ стоит в разных местах! Вот Код <?if(substr($ENTRY_NAME$, strrpos($ENTRY_NAME$,'Ко')+0, strpos($ENTRY_NAME$,'ка') - (strrpos($ENTRY_NAME$,'Ко')-2))='Кошка')?>рыжая<?endif?> <?if(substr($ENTRY_NAME$, strrpos($ENTRY_NAME$,'ко')+0, strpos($ENTRY_NAME$,'ка') - (strrpos($ENTRY_NAME$,'ко')-2))='кошка')?>рыжая<?endif?> Тут сразу два условия, на случай если слово кошка с большой буквы будет в названии и если с маленькой. |
|
Rad_van_Cor, а не проще:
Код <?if(strpos($ENTRY_TITLE$,"кошка")!= -1 || strpos($ENTRY_TITLE$,"Кошка")!= -1)?>рыжая<?endif?> |
|
Вот опять призадумался!!! У меня в тексте встречается кошка, а есть русская кошка и нужно, что бы выводило где кошка "кошка", а где русская кошка "русская кошка".
Мой мозг не догоняет как это реализовать, помогите решить задачу. Использую вот этот скрипт. Код <?if(strpos($ENTRY_TITLE$,"кошка")!= -1 || strpos($ENTRY_TITLE$,"Кошка")!= -1)?>рыжая<?endif?> Добавлено (14 Май 2013, 22:42:06) Гугл это конечно хорошая операционная система, но и яндекс ни чего :)
|
Цитата (cps) У меня в тексте встречается кошка, а есть русская кошка и нужно, что бы выводило где кошка "кошка", а где русская кошка "русская кошка". Код <?if(strpos($ENTRY_TITLE$,"русская кошка")!=-1 || strpos($ENTRY_TITLE$,"Русская кошка")!=-1)?>русская кошка<?else?> <?if(strpos($ENTRY_TITLE$,"кошка")!=-1 || strpos($ENTRY_TITLE$,"Кошка")!=-1)?>кошка<?endif?> <?endif?> Absit invidia verbo
Сообщение отредактировал Вансан - Вторник, 14 Май 2013, 23:19:56
|
| |||