Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


zeddy

Recommended Posts

В описании товаров текст с 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 символов. Если длина описания выходит за пределы допустимого значения, то текст обрезается и в конце ставится многоточие.

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

Надіслати
Поділитися на інших сайтах


  • 2 months later...
  • 2 months later...
Yesvik, в точку, спасибо тебе большое, всё замечательно работает :rolleyes:

Лови + =)

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.