Перейти к содержанию
Официальный форум поддержки Simpla

Удаление спецсимволов в annotation из yandex.php


Перейти к решению Решено Kors,

Рекомендуемые сообщения

Здравствуйте. 

 

Подскажите пожалуйста, каким образом автоматически отфильтровать спец символы   – ® и т.д 

 

из <description>".htmlspecialchars(strip_tags($p->annotation))."</description>

 

Спецсимволы присутствуют в описании к товару, но Яндекс-Маркет их не разрешает использовать.

 

На друпале как то так фильтруют.

($id == 'description' ? str_replace(' ', ' ', $v) : $v) 

 

 

Ссылка на сообщение
Поделиться на другие сайты

Пока отфильтровал так: 

 

$p->annotation = preg_replace("/ /", " ", $p->annotation);
$p->annotation = preg_replace("/–/", " ", $p->annotation);
$p->annotation = preg_replace("/®/", " ", $p->annotation);

но, наверное это просто костыль

Ссылка на сообщение
Поделиться на другие сайты
  • 4 месяца спустя...

Добрый день, правильно ли я понимаю, что вместо

 

<description>".htmlspecialchars(strip_tags($p->annotation))."</description>

 

необходимо в yandex.php прописать

 

<description>".htmlspecialchars(strip_tags($p->annotation = preg_replace("/&[#a-z0-9]+;/", " ", $p->annotation);))."</description>

Ссылка на сообщение
Поделиться на другие сайты

Добрый день, правильно ли я понимаю, что вместо

 

<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 строке.

Ссылка на сообщение
Поделиться на другие сайты
  • 5 лет спустя...

Доброго дня!

Уважаемые специалисты, подскажите, пожалуйста, как избавиться от "&nbsp", который вываливается в тексте описания товара на яндекс маркете вместо пробела. Вышеописанный метод убирает эти кракозябры из описания на маркете, но пробел на его месте после этого отсутствует и на стыке предложений слова идут слитно. Соответственно вопрос - что в методе доработать и как добавить пробел вместо "&nbsp"?

Заранее благодарен, хорошего настроения!

Ссылка на сообщение
Поделиться на другие сайты

 "&nbsp" - такого изначально быть НЕ должно, смысла это не имеет.

Часто встречается  "&nbsp;" - это осмысленно.

Если у Вас встречается именно "&nbsp",  то есть смысл поменять в текстах на "&nbsp;".

Иначе, если надо убирать в точности "&nbsp", то используйте прием типа

$p->annotation = preg_replace("/&[#a-z0-9]+/", " ", $p->annotation);

 

Ссылка на сообщение
Поделиться на другие сайты
В 27.05.2022 в 21:30, phukortsin сказал:

 "&nbsp" - такого изначально быть НЕ должно, смысла это не имеет.

Часто встречается  "&nbsp;" - это осмысленно.

Если у Вас встречается именно "&nbsp",  то есть смысл поменять в текстах на "&nbsp;".

Иначе, если надо убирать в точности "&nbsp", то используйте прием типа





$p->annotation = preg_replace("/&[#a-z0-9]+/", " ", $p->annotation);

 

Доброго времени суток! Да, конечно, встречается, "&nbsp;", опечатался, точку с запятой не написал. "&nbsp" без ";" не было ни разу. Было необходимо убрать из выдачи в маркет именно "&nbsp;" (что я уже сделал по вышеописанному методу, все работает, &nbsp; исчезает из выдачи, (за это уже огромное спасибо)), но хотелось бы вместо него добавить пробел, поскольку "&nbsp;" у меня почему-то стоит вместо пробелов в описании товара в маркете и после удаления "&nbsp;" по методу который написал выше Kors, пробел между абзацами теряется. Затрудняюсь сказать откуда у меня появилось в текстах описания столько non-breaking space'ов, хотел бы их заменить просто пробелом. Конфуз, однако. Буду благодарен если подскажете!

?

Изменено пользователем apophis
Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, apophis сказал:

Доброго времени суток! Да, конечно, встречается, "&nbsp;", опечатался, точку с запятой не написал. "&nbsp" без ";" не было ни разу. Было необходимо убрать из выдачи в маркет именно "&nbsp;" (что я уже сделал по вышеописанному методу, все работает, &nbsp; исчезает из выдачи, (за это уже огромное спасибо)), но хотелось бы вместо него добавить пробел, поскольку "&nbsp;" у меня почему-то стоит вместо пробелов в описании товара в маркете и после удаления "&nbsp;" по методу который написал выше Kors, пробел между абзацами теряется. Затрудняюсь сказать откуда у меня появилось в текстах описания столько non-breaking space'ов, хотел бы их заменить просто пробелом. Конфуз, однако. Буду благодарен если подскажете!

?

функция постом выше как раз заменяет "&nbsp;" на пробел

Ссылка на сообщение
Поделиться на другие сайты
В 27.05.2022 в 21:30, phukortsin сказал:
1 час назад, shooroop сказал:

функция постом выше как раз заменяет "&nbsp;" на пробел


$p->annotation = preg_replace("/&[#a-z0-9]+/", " ", $p->annotation);

 

Большущее спасибо, ушёл тестить! )

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...