Удалить теги из выводимых строк

  • Автор темы Автор темы aNt1
  • Дата начала Дата начала

aNt1

Новичок
Удалить теги из выводимых строк

Здравствуйте, есть сайт, на котором установлена коммерческая CMS - HostCMS, при создании подразделов и разделов использовались не только буквы, но и в некоторых местах теги, в частности <img src="...">, я сделал скрипт на XSL чтобы он выводил мне названия разделов в title страницы, всё выводится, только с кодом <img src="...">, который в title не нужен. Так вот в чём вопрос: XSL шаблон, формирующийся из структуры сайта для title (показ раздела, в котором Вы находитесь) вызывается через php:
PHP:
<?php  $Structure = new Structure();    $Structure->ShowStructure(false, "Title", array('show_items' => true, 'show_groups' => true)); ?>
вот таким несложным кодом, вопрос как убрать эти теги, средствами php (т.к. он вызывает шаблон XSL), ну или если есть знатоки XSL, то его средствами, заранее благодарю.
 
есть готовая функция, удаляющая из строки все теги
предоставляю тебе уникальный шанс найти ее в доке .-)
 
она 100 пудово есть, я уже вставлял всевозможные примеры, но мб я просто не туда ставлю?
вот код, отвечающий за вывод XSL шаблона "Title"
Код:
<?php
 $Structure = new Structure();
   $Structure->ShowStructure(false, "Title", array('show_items' => true, 'show_groups' => true));
?>
Пробовал, но всё убивается, может быть потому что $Structure используется ещё далее в сайте и он убивает и там коды и сразу фатал еррор?
PHP:
string strip_tags (string str [, string allowable_tags])
PHP:
string fgetss  ( resource $handle  [, int $length  [, string $allowable_tags  ]] )
 
Думаю, что стоит просто изменить XSLT шаблон, но когда шаблона здесь нету, что менять, не понятно.
Вообщем, пиши подробней, что есть, откуда берется и чем обрабатывается и какой результат хочется.
 
Автор оригинала: FB3
Думаю, что стоит просто изменить XSLT шаблон, но когда шаблона здесь нету, что менять, не понятно.
Вообщем, пиши подробней, что есть, откуда берется и чем обрабатывается и какой результат хочется.
PHP:
<xsl:template match="BR">
<xsl:text>&#xA;</xsl:text>
</xsl:template>
<xsl:template match="/document">	
<!-- Запишем в константу ID структуры, данные для которой будут выводиться пользователю -->
<xsl:variable name="current_structure_id">
<xsl:choose>
<xsl:when test="item/node()">item_<xsl:value-of select="item"/></xsl:when>
<xsl:when test="group/node()">group_<xsl:value-of select="group"/></xsl:when>
<xsl:otherwise>
<xsl:value-of select="structure/current_structure_id"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>	
<xsl:if test="count(//structure[@id = $current_structure_id]) &gt; 0">
<xsl:apply-templates select="//structure[@id = $current_structure_id]">
<xsl:with-param name="is_last_item" select="1"/>
</xsl:apply-templates>
</xsl:if>
</xsl:template>
<xsl:template match="structure">
<xsl:param name="is_last_item" select="0"/>
<!-- Выбираем все узлы структуры всех уровней вложенности -->
<xsl:apply-templates select="parent::structure"/>
<!-- Определяем адрес ссылки -->
<xsl:variable name="link">
<xsl:choose>
<!-- Если внешняя ссылка -->
<xsl:when test="is_external_link=1">
<xsl:value-of disable-output-escaping="yes" select="is_external_link"/>
</xsl:when>
<!-- Иначе если внутренняя ссылка -->
<xsl:otherwise>
<xsl:value-of disable-output-escaping="yes" select="link"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
/
<!-- Показывать ссылку, или нет -->
<xsl:choose>
<xsl:when test="show_link = 0 and $is_last_item = 0">	
<a href="{$link}">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</a>
</xsl:when>
<!-- Если не показывать ссылку - выводим просто имя ссылки -->
<xsl:otherwise>
<xsl:value-of disable-output-escaping="yes" select="name"/>
</xsl:otherwise>
</xsl:choose>
		
</xsl:template>
Вот XSl код, который работает так: определяет в каком разделе ты сейчас находишься и выводит тебе полный путь до главной страницы, но самая засада в том, что в CMS в названии разделов сайта прописана пара кодов для дизайна кнопок меню(img и br), так вот он их и выводит мне в title страницы, меню тоже не хочется менять, слишком много сил потрачено. А надо чтобы он из имён структуры сайта вырезал коды <br> и <img src="/imgA/nav-arrow-right.png">, блин, если сможешь помочь буду очень благодарен, даже пива бы поставил с удовольствием :)
 
Че-то парсер кода навставлял смайликов там, правда это ничего не меняет. Нету тут кода, который навигацию вставляет. Вообщем, ищи в коде XSLT шаблонов "nav-arrow-right.png", разбирайся, как его удалить и удаляй.
А еще лучше, переделать генерацию Title в этих шаблонах, а не заменять тэги потом в PHP.
 
Автор оригинала: FB3
Че-то парсер кода навставлял смайликов там, правда это ничего не меняет. Нету тут кода, который навигацию вставляет. Вообщем, ищи в коде XSLT шаблонов "nav-arrow-right.png", разбирайся, как его удалить и удаляй.
А еще лучше, переделать генерацию Title в этих шаблонах, а не заменять тэги потом в PHP.
он то и показывает, 100% (переменные structure), а картинка прописана в названии разделов некоторых, т.е. она уже содержится точно там и выводятся они через Structure эту
 
upd: йес сделал всё просто через php, спасибо всем за помощь и этому ресурсу за теоретические вопросы
кому интересно или понадобится для HostCMS:
PHP:
<title>
 <?php ob_start();  
$Structure = new Structure();   
 $Structure->ShowStructure(false, "Title", array('show_items' => true, 'show_groups' => true)); 
echo strip_tags(ob_get_clean()); ?> 
</title>
 
Сверху