Как добавить функцию удаления найденного текста в строке?

Илья_2712

Добрый день!
Ребята, подскажите, пожалуйста, как я могу изменить свою функцию, чтобы она удаляла найденный текст из строки.
Есть такой код:

PHP:
  1. <?php echo apply_filters(‘premmerce_filter_render_checkbox_title’, $term->name, $term); ?>

Он выводит категорию товара, т.е. «Мужские куртки» или «Куртки для детей».
Мне нужно добавить функцию, чтобы убрать гендерное название, чтобы в итоге получилось — «Куртки».

Пробовал

PHP:
  1. str_replace (array(‘Мужские’, ‘для детей’), array(», »)

, но конечно же это неверно. Так как перезаписывать строку не нужно, а лишь только удалить указанный текст. mb_strpos думаю тоже не подойдет. А с остальными функциями я еще не сталкивался.

Как решить данную задачу ну и самое главное — куда именно вставить это решение в моем коде.

Спасибо за любую помощь или подсказки!
— Добавлено —
Вот записал с str_replace, все работает. Но нужна другая функция)

PHP:
  1. <?php echo apply_filters(‘premmerce_filter_render_checkbox_title’, str_replace (array(‘Мужские’, ‘для детей’), array(», »), $term->name), $term); ?>

— Добавлено —
Вот пробую с str_replace, все работает.

PHP:
  1. <?php echo apply_filters(‘premmerce_filter_render_checkbox_title’, str_replace (array(‘Мужские’, ‘для детей’), array(», »), $term->name), $term); ?>

Но нужна другая функция)

Ступил, этот код как раз и работает правильно.

PHP:
  1. <?php echo apply_filters(‘premmerce_filter_render_checkbox_title’, str_replace (array(‘Мужские’, ‘для детей’), array(», »), $term->name), $term); ?>

— Добавлено —
В

PHP:
  1. <?php echo apply_filters(‘premmerce_filter_render_checkbox_title’, str_replace (array(‘Мужские слипоны’, ‘Застежка’), array(‘Проверка’, »), $term->name), $term); ?>

от пробую с str_replace, все работает. Но нужна другая функция)

Ступил, этот код как раз и работает правильно.

PHP:
  1. <?php echo apply_filters(‘premmerce_filter_render_checkbox_title’, str_replace (array(‘Мужские’, ‘для детей’, ‘для детей’, ‘для малчиков’), array(», »), $term->name), $term); ?>

Остался только один вопрос — для более корректного сравнения нужно сначала привести всё к строчным буквам с помощью mb_strtolower. Как это можно сделать? Куда это прописать?

 

Drunkenmunky

Попробуйте описать проблему в нескольких словах.
Чта на что и где нужно заменить?

 

Илья_2712

В

PHP:
  1. <?php echo apply_filters(‘premmerce_filter_render_checkbox_title’, str_replace (array(‘Мужские слипоны’, ‘Застежка’), array(‘Проверка’, »), $term->name), $term); ?>

от пробую с str_replace, все работает. Но нужна другая функция)

Ступил, этот код как раз и работает правильно.

PHP:
  1. <?php echo apply_filters(‘premmerce_filter_render_checkbox_title’, str_replace (array(‘Мужские’, ‘для детей’, ‘для детей’, ‘для малчиков’), array(», »), $term->name), $term); ?>

Остался только один вопрос — для более корректного сравнения нужно сначала привести всё к строчным буквам с помощ mb_strtolower

Постараюсь)

У меня есть вот это:

PHP:
  1. <?php echo apply_filters(‘premmerce_filter_render_checkbox_title’, $term->name, $term); ?>

Это формула выводит название категории. Пример — «Женские куртки»

Надо удалить женские, Женские и т.д.
Для этого нужно, как я понимаю сначала привести к нижнему регистру функцией mb_strtolower, а затем перезаписать нужные значения функцией str_replace.

 

Drunkenmunky

Сдаюсь.

 

Илья_2712

Не надо))
Давай попробуем вместе разобраться.
Вот если вызвать функцию str_replace перед значением $term->name, то все получается.

PHP:
  1. <?php echo apply_filters(‘premmerce_filter_render_checkbox_title’, str_replace (array(‘Женские’), array(»), $term->name), $term); ?>

Но чтобы не плодить значения, которые я указываю, типа «Женские», «женские» — надо сначала привести всю эту историю к нижнему регистру.
В другом случае я использую это $data = mb_strtolower ($data); Работает отлично, осталось только прикрутить к моему примеру))

 

Drunkenmunky

Попробуйте использовать str_ireplace() вместо str_replace()
Это её регистронезависимая версия.
Единственно что, возможно, я не уверен, придется перекодировать в однобайтную кодировку.

 

Илья_2712

Изменил на ireplace — не помогло. А как перекодировать? Я про такое даже не слышал)

 

Drunkenmunky

На пробу можно в обычном Блокноте.
Скрипт и обрабатываемый текст сохраните как ANSI.
Потом почитайте про iconv()

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *