Добрый день! Ребята, подскажите, пожалуйста, как я могу изменить свою функцию, чтобы она удаляла найденный текст из строки. Есть такой код: PHP: <?php echo apply_filters('premmerce_filter_render_checkbox_title', $term->name, $term); ?> Он выводит категорию товара, т.е. "Мужские куртки" или "Куртки для детей". Мне нужно добавить функцию, чтобы убрать гендерное название, чтобы в итоге получилось - "Куртки". Пробовал PHP: str_replace (array('Мужские', 'для детей'), array('', '') , но конечно же это неверно. Так как перезаписывать строку не нужно, а лишь только удалить указанный текст. mb_strpos думаю тоже не подойдет. А с остальными функциями я еще не сталкивался. Как решить данную задачу ну и самое главное - куда именно вставить это решение в моем коде. Спасибо за любую помощь или подсказки! --- Добавлено --- Вот записал с str_replace, все работает. Но нужна другая функция) PHP: <?php echo apply_filters('premmerce_filter_render_checkbox_title', str_replace (array('Мужские', 'для детей'), array('', ''), $term->name), $term); ?> --- Добавлено --- Вот пробую с str_replace, все работает. PHP: <?php echo apply_filters('premmerce_filter_render_checkbox_title', str_replace (array('Мужские', 'для детей'), array('', ''), $term->name), $term); ?> Но нужна другая функция) Ступил, этот код как раз и работает правильно. PHP: <?php echo apply_filters('premmerce_filter_render_checkbox_title', str_replace (array('Мужские', 'для детей'), array('', ''), $term->name), $term); ?> --- Добавлено --- В PHP: <?php echo apply_filters('premmerce_filter_render_checkbox_title', str_replace (array('Мужские слипоны', 'Застежка'), array('Проверка', ''), $term->name), $term); ?> от пробую с str_replace, все работает. Но нужна другая функция) Ступил, этот код как раз и работает правильно. PHP: <?php echo apply_filters('premmerce_filter_render_checkbox_title', str_replace (array('Мужские', 'для детей', 'для детей', 'для малчиков'), array('', ''), $term->name), $term); ?> Остался только один вопрос - для более корректного сравнения нужно сначала привести всё к строчным буквам с помощью mb_strtolower. Как это можно сделать? Куда это прописать?
В PHP: <?php echo apply_filters('premmerce_filter_render_checkbox_title', str_replace (array('Мужские слипоны', 'Застежка'), array('Проверка', ''), $term->name), $term); ?> от пробую с str_replace, все работает. Но нужна другая функция) Ступил, этот код как раз и работает правильно. PHP: <?php echo apply_filters('premmerce_filter_render_checkbox_title', str_replace (array('Мужские', 'для детей', 'для детей', 'для малчиков'), array('', ''), $term->name), $term); ?> Остался только один вопрос - для более корректного сравнения нужно сначала привести всё к строчным буквам с помощ mb_strtolower Постараюсь) У меня есть вот это: PHP: <?php echo apply_filters('premmerce_filter_render_checkbox_title', $term->name, $term); ?> Это формула выводит название категории. Пример - "Женские куртки" Надо удалить женские, Женские и т.д. Для этого нужно, как я понимаю сначала привести к нижнему регистру функцией mb_strtolower, а затем перезаписать нужные значения функцией str_replace.
Не надо)) Давай попробуем вместе разобраться. Вот если вызвать функцию str_replace перед значением $term->name, то все получается. PHP: <?php echo apply_filters('premmerce_filter_render_checkbox_title', str_replace (array('Женские'), array(''), $term->name), $term); ?> Но чтобы не плодить значения, которые я указываю, типа "Женские", "женские" - надо сначала привести всю эту историю к нижнему регистру. В другом случае я использую это $data = mb_strtolower ($data); Работает отлично, осталось только прикрутить к моему примеру))
Попробуйте использовать str_ireplace() вместо str_replace() Это её регистронезависимая версия. Единственно что, возможно, я не уверен, придется перекодировать в однобайтную кодировку.
На пробу можно в обычном Блокноте. Скрипт и обрабатываемый текст сохраните как ANSI. Потом почитайте про iconv()