Перейти к содержанию
zeddy

[Решено] YML файл вытягивает описание с HTML тегами, как их убрать?

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

В описании товаров текст с HTML

Примерно такого содержания:

<p> Описание товара <br /> Особенности и размер <br /> еще кое что </p>

при формировании YML файла в <description> </description> html теги попадают в текстовом виде.

и при импорте отображаются как текст.

тоесть мой файл экспорта получается такой:

<local_delivery_cost>300</local_delivery_cost>

<vendor></vendor>

<model>ХХХ</model>

<description><p>

Описание товара<br />

Особенности и размер <br />

Особенности и размер <br />

еще кое что</p>

</description>

<manufacturer_warranty>true</manufacturer_warranty>

<country_of_origin>Китай</country_of_origin>

</offer>

Соответственно туда где импортирую получаются описания с с лишними знаками

<p> Описание товара <br /> Особенности и размер <br /> еще кое что </p>

как вообще убрать html теги из описания товара при формировании YML, или заставить их правильно отображаться

У меня ocStore Version 0.1.5

Поделиться сообщением


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

как вообще убрать html теги из описания товара при формировании YML, или заставить их правильно отображаться

/**
 * Подготовка текста в соответствии с требованиями Яндекса
 * Запрещены любые html-тэги. Стандарт XML не допускает использования в текстовых данных
 * непечатаемых символов с ASCII-кодами в диапазоне значений от 0 до 31 (за исключением
 * символов с кодами 9, 10, 13 - табуляция, перевод строки, возврат каретки). Также этот
 * стандарт требует обязательной замены некоторых символов на эквивалентные им символьные
 * примитивы.
 * @param string $text
 * @return string
 */
function ymlTextPrepare($text)
{
	$text = htmlspecialchars_decode(trim($text));
	$text = strip_tags($text);
	$search = array('"', '&', '>', '<', '\'');
	$replace = array('"', '&', '>', '<', ''');
	$text = str_replace($search, $replace, $text);
	$text = preg_replace('#[\x00-\x08\x0B-\x0C\x0E-\x1F]+#is', ' ', $text);

	return trim($text);
}
И ещё...

Элементы <description> или <name> могут содержать текст длиной не более 255 символов. Если длина описания выходит за пределы допустимого значения, то текст обрезается и в конце ставится многоточие.

  • +1 3

Поделиться сообщением


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

/**
 * Подготовка текста в соответствии с требованиями Яндекса
 * Запрещены любые html-тэги. Стандарт XML не допускает использования в текстовых данных
 * непечатаемых символов с ASCII-кодами в диапазоне значений от 0 до 31 (за исключением
 * символов с кодами 9, 10, 13 - табуляция, перевод строки, возврат каретки). Также этот
 * стандарт требует обязательной замены некоторых символов на эквивалентные им символьные
 * примитивы.
 * @param string $text
 * @return string
 */
function ymlTextPrepare($text)
{
	$text = htmlspecialchars_decode(trim($text));
	$text = strip_tags($text);
	$search = array('"', '&', '>', '<', '\'');
	$replace = array('"', '&', '>', '<', ''');
	$text = str_replace($search, $replace, $text);
	$text = preg_replace('#[\x00-\x08\x0B-\x0C\x0E-\x1F]+#is', ' ', $text);

	return trim($text);
}
И ещё...

Элементы <description> или <name> могут содержать текст длиной не более 255 символов. Если длина описания выходит за пределы допустимого значения, то текст обрезается и в конце ставится многоточие.

Большое Спасибо, Проблема решена

Поделиться сообщением


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

А можно поподробней. Куда вставлять эту функцию и что передавать в качестве переменной $text ( $product['description']? )

Поделиться сообщением


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

Поделился бы:) куда вставлять?

Поделиться сообщением


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

Поделился бы:) куда вставлять?

Уточни какую версию используеш.

Поделиться сообщением


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

Уточни какую версию используеш.

Я, например, использую ocstore v.0.2.2

Для меня можно прояснить тот же самый

вопрос? =)

Поделиться сообщением


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

Лови + =)

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.