Илья_2712
Добрый день!
Ребята, подскажите, пожалуйста, как я могу изменить свою функцию, чтобы она удаляла найденный текст из строки.
Есть такой код:PHP:
<?php echo apply_filters(‘premmerce_filter_render_checkbox_title’, $term->name, $term); ?>Он выводит категорию товара, т.е. «Мужские куртки» или «Куртки для детей».
Мне нужно добавить функцию, чтобы убрать гендерное название, чтобы в итоге получилось — «Куртки».Пробовал
PHP:
, но конечно же это неверно. Так как перезаписывать строку не нужно, а лишь только удалить указанный текст. 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. Как это можно сделать? Куда это прописать?
Drunkenmunky
Попробуйте описать проблему в нескольких словах.
Чта на что и где нужно заменить?
Илья_2712
В
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.
Drunkenmunky
Сдаюсь.
Илья_2712
Не надо))
Давай попробуем вместе разобраться.
Вот если вызвать функцию 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); Работает отлично, осталось только прикрутить к моему примеру))
Drunkenmunky
Попробуйте использовать str_ireplace() вместо str_replace()
Это её регистронезависимая версия.
Единственно что, возможно, я не уверен, придется перекодировать в однобайтную кодировку.
Илья_2712
Изменил на ireplace — не помогло. А как перекодировать? Я про такое даже не слышал)
Drunkenmunky
На пробу можно в обычном Блокноте.
Скрипт и обрабатываемый текст сохраните как ANSI.
Потом почитайте про iconv()