jonny008 Опубликовано 3 августа, 2016 Жалоба Поделиться Опубликовано 3 августа, 2016 Здравствуйте. Подскажите пожалуйста, каким образом автоматически отфильтровать спец символы – ® и т.д из <description>".htmlspecialchars(strip_tags($p->annotation))."</description> Спецсимволы присутствуют в описании к товару, но Яндекс-Маркет их не разрешает использовать. На друпале как то так фильтруют. ($id == 'description' ? str_replace(' ', ' ', $v) : $v) Цитата Ссылка на сообщение Поделиться на другие сайты
jonny008 Опубликовано 3 августа, 2016 Автор Жалоба Поделиться Опубликовано 3 августа, 2016 Пока отфильтровал так: $p->annotation = preg_replace("/ /", " ", $p->annotation); $p->annotation = preg_replace("/–/", " ", $p->annotation); $p->annotation = preg_replace("/®/", " ", $p->annotation); но, наверное это просто костыль Цитата Ссылка на сообщение Поделиться на другие сайты
Решение Kors Опубликовано 3 августа, 2016 Решение Жалоба Поделиться Опубликовано 3 августа, 2016 Более общим образом:$p->annotation = preg_replace("/&[#a-z0-9]+;/", " ", $p->annotation); Цитата Ссылка на сообщение Поделиться на другие сайты
jonny008 Опубликовано 3 августа, 2016 Автор Жалоба Поделиться Опубликовано 3 августа, 2016 Более общим образом:$p->annotation = preg_replace("/&[#a-z0-9]+;/", " ", $p->annotation);Спасибо Kors, сработало. Цитата Ссылка на сообщение Поделиться на другие сайты
Sharfik Опубликовано 12 декабря, 2016 Жалоба Поделиться Опубликовано 12 декабря, 2016 Добрый день, правильно ли я понимаю, что вместо <description>".htmlspecialchars(strip_tags($p->annotation))."</description> необходимо в yandex.php прописать <description>".htmlspecialchars(strip_tags($p->annotation = preg_replace("/&[#a-z0-9]+;/", " ", $p->annotation);))."</description> Цитата Ссылка на сообщение Поделиться на другие сайты
jonny008 Опубликовано 12 декабря, 2016 Автор Жалоба Поделиться Опубликовано 12 декабря, 2016 Добрый день, правильно ли я понимаю, что вместо <description>".htmlspecialchars(strip_tags($p->annotation))."</description> необходимо в yandex.php прописать <description>".htmlspecialchars(strip_tags($p->annotation = preg_replace("/&[#a-z0-9]+;/", " ", $p->annotation))."</description>Нет, где нибудь перед "print" у меня где то на 150 строке. Цитата Ссылка на сообщение Поделиться на другие сайты
Sharfik Опубликовано 12 декабря, 2016 Жалоба Поделиться Опубликовано 12 декабря, 2016 Спасибо jonny008 за разъяснение и kors за решение! Все работает! Цитата Ссылка на сообщение Поделиться на другие сайты
apophis Опубликовано 27 мая, 2022 Жалоба Поделиться Опубликовано 27 мая, 2022 Доброго дня! Уважаемые специалисты, подскажите, пожалуйста, как избавиться от " ", который вываливается в тексте описания товара на яндекс маркете вместо пробела. Вышеописанный метод убирает эти кракозябры из описания на маркете, но пробел на его месте после этого отсутствует и на стыке предложений слова идут слитно. Соответственно вопрос - что в методе доработать и как добавить пробел вместо " "? Заранее благодарен, хорошего настроения! Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 27 мая, 2022 Жалоба Поделиться Опубликовано 27 мая, 2022 " " - такого изначально быть НЕ должно, смысла это не имеет. Часто встречается " " - это осмысленно. Если у Вас встречается именно " ", то есть смысл поменять в текстах на " ". Иначе, если надо убирать в точности " ", то используйте прием типа $p->annotation = preg_replace("/&[#a-z0-9]+/", " ", $p->annotation); Цитата Ссылка на сообщение Поделиться на другие сайты
apophis Опубликовано 29 мая, 2022 Жалоба Поделиться Опубликовано 29 мая, 2022 (изменено) В 27.05.2022 в 21:30, phukortsin сказал: " " - такого изначально быть НЕ должно, смысла это не имеет. Часто встречается " " - это осмысленно. Если у Вас встречается именно " ", то есть смысл поменять в текстах на " ". Иначе, если надо убирать в точности " ", то используйте прием типа $p->annotation = preg_replace("/&[#a-z0-9]+/", " ", $p->annotation); Доброго времени суток! Да, конечно, встречается, " ", опечатался, точку с запятой не написал. " " без ";" не было ни разу. Было необходимо убрать из выдачи в маркет именно " " (что я уже сделал по вышеописанному методу, все работает, исчезает из выдачи, (за это уже огромное спасибо)), но хотелось бы вместо него добавить пробел, поскольку " " у меня почему-то стоит вместо пробелов в описании товара в маркете и после удаления " " по методу который написал выше Kors, пробел между абзацами теряется. Затрудняюсь сказать откуда у меня появилось в текстах описания столько non-breaking space'ов, хотел бы их заменить просто пробелом. Конфуз, однако. Буду благодарен если подскажете! Изменено 29 мая, 2022 пользователем apophis Цитата Ссылка на сообщение Поделиться на другие сайты
shooroop Опубликовано 29 мая, 2022 Жалоба Поделиться Опубликовано 29 мая, 2022 2 часа назад, apophis сказал: Доброго времени суток! Да, конечно, встречается, " ", опечатался, точку с запятой не написал. " " без ";" не было ни разу. Было необходимо убрать из выдачи в маркет именно " " (что я уже сделал по вышеописанному методу, все работает, исчезает из выдачи, (за это уже огромное спасибо)), но хотелось бы вместо него добавить пробел, поскольку " " у меня почему-то стоит вместо пробелов в описании товара в маркете и после удаления " " по методу который написал выше Kors, пробел между абзацами теряется. Затрудняюсь сказать откуда у меня появилось в текстах описания столько non-breaking space'ов, хотел бы их заменить просто пробелом. Конфуз, однако. Буду благодарен если подскажете! функция постом выше как раз заменяет " " на пробел Цитата Ссылка на сообщение Поделиться на другие сайты
apophis Опубликовано 30 мая, 2022 Жалоба Поделиться Опубликовано 30 мая, 2022 В 27.05.2022 в 21:30, phukortsin сказал: 1 час назад, shooroop сказал: функция постом выше как раз заменяет " " на пробел $p->annotation = preg_replace("/&[#a-z0-9]+/", " ", $p->annotation); Большущее спасибо, ушёл тестить! ) Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.