[Закрыть]
 
popoff.donetsk.ua
Хочешь изменить мир - измени себя!
Начало | Новости | Статьи | Форум | Опросы | Карта сайта | Обо мне
popoff.donetsk.ua - Статьи - Программирование - Модули - xmlfilter - xmlfilter_parse - Описание параметров
Я это делаю
Персональное меню
Голосование
Деньги, либо любимое занятие? Постоянный адрес этого вопроса
Деньги, но неинтересная работа и невозможность уделить время семье
Интересная работа, возможность саморазвиваться, но нищенский заработок
Ваш возраст (не обязательно)
Почему? (не обязательно)

Голосование закрыто.

Поиск по сайту
Реклама
Обмен электронных валют
money.dn.ua
Статистика

Описание параметров

Постоянный адрес статьи

Параметры разрешений и управляющие параметры библиотеки xmlfilter.parse

xml
Разрешить все теги, любые значения для всех атрибутов во всех тегах, все специальные символы и все инструкции.
xml.allow.<name>
То же самое, что и xml.tag.<name>. Разрешить тег <name>.
xml.attr
Разрешить любые значения для всех атрибутов во всех тегах.
xml.attr.<tag>
Разрешить любые значения для всех атрибутов тега <tag>. Например, если указан параметр xml.attr.b, то для тега <b> можно указать любые атрибуты и любые значения для всех атрибутов.
xml.attr.<tag>.<attr>[=value]
Разрешить атрибут <attr> в теге <tag>. Значение этого параметра определяет, какие значения может принимать этот атрибут. Если значение этого параметра не задано, то атрибут может принимать любые значения. В качестве значения можно указывать:
  • url - значение должно быть правильным URL.
  • список значений через запятую - значением атрибута может быть одна из строк из этого списка. Например, параметр xml.attr.p.align=right,left,center означает, что для тега p разрешен атрибут align. В качестве значения этого атрибута допустима одна из трех строк right, left или center.
  • другие форматы - определяются настройками пользователя.
Если для тега указан хотя бы один запрещенный атрибут, либо в качестве значения одного из атрибутов указано недопустимое значение, то и весь тег считается запрещенным.
xml.comment
Разрешить вставку комментариев. Если этот параметр задан, то в исходном xml-документе могут быть комментарии, которые будут удалены из результирующего документа. Если этот параметр не задан, то комментарий считается запрещенной сущностью, для которой производятся запрещающие преобразования.
xml.depth
Максимальный уровень вложенности тегов. Значение - целое число, определяющее максимальный уровень вложенности тегов, которые могут считаться разрешенными.
xml.debug
Включает работу в режиме отладки. Если этот параметр указан, то в случае ошибок будет вызываться функция trigger_error. Этот параметр учитывается только если включена настройка XMLFILTER_DEBUG и не указан параметр xml.error.
xml.dic
Если этот параметр определён, то в обрабатываемом тексте будут автоматически подсвечиваться определения из словаря терминов. Этот параметр учитывается только если в системе установлена служба словаря терминов.
xml.entity[=entity-list]
Разрешить специальные символы (html entities). Если значение этого параметра не указано, то разрешены все специальные символы. Если значение указано, то в нем содержится список разрешенных символов, разделенных запятой (,).
xml.entity.entityName
Разрешить специальный символ &entityName;. Особое имя - xml.entity.numeric - используется для разрешения всех специальных символов, заданных числовыми кодами (например, &#039;).

Специальные символы &amp;, &lt;, &gt; и &quot; всегда разрешены и не могут быть запрещены.
xml.error
Показывать ли сообщения об ошибках. Если этот параметр указан, то сообщения об ошибках добавляются в результирующий xml-документ. Если этот параметр не указан, то запрещенные сущности либо удаляются, либо для них производятся запрещающие преобразования, но никакие сообщения об ошибках при этом не показываются.
xml.morph
Проверять ли орфографию в результирующем документе. Этот параметр учитывается только если доступна функция проверки орфографии.
xml.nl2br
Применять ли к результирующему документу функцию nl2br(). Если этот параметр указан, то рядом с переносами строк будет дописан тег <br />
xml.pi
Разрешить все инструкции (processing instruction).
xml.pi.<name>[=property-list]
Разрешить инструкцию name. property-list - это список (элементы разделяются запятой) свойств этой инструкции. Для инструкций можно указывать следующие свойства:
  • clear - в случае ошибки эта инструкция удаляется из результирующего xml-документа. Это свойство учитывается только если не указан параметр xml.error.
Все инструкции обрабатываются функциями пользователя.
xml.pi.<name>.noparentpath=<tag-list>
Запретить эту инструкцию, если он находится внутри одного из тегов из списка tag-list. Теги из списка tag-list могут быть как непосредственнми, так и косвенными родителями тега <name>.

Если этот параметр не указан, то проверка не осуществляется.
xml.pi.<name>.parent=<tag-list>
Разрешить эту инструкцию только если она находится внутри одного из тегов, указанных в tag-list. tag-list - это список тегов, разделенных запятой. Тег верхнего уровня называется <top>.

Инструкция считается запрещенной, если она находится не в одном из тегов из списка tag-list или тег, в котором находится эта инструкция запрещен.

Это ограничение необходимо для поддержания целостности генерируемого xml-кода. Это ограничение действует всегда, даже если указан один из параметров xml, xml.pi или xml.tag.
xml.pi.<name>.parentpath=<tag-list>
Аналогичен параметру xml.pi.name.parent за тем исключением, что теги из списка <tag-list> могут быть не только непосредственными родителями, но и косвенными родителями текущей инструкции.
xml.smile
Разрешить простые смайлы.

Какие последовательности символов считать простыми смайлами и какие картинки соответствуют этим последовательностям, определяется настройками пользователя.

Почему я называю эти смайлы простыми? Потому что таким способом лучше обрабатывать небольшое количество основных смайлов, которые всегда есть и набор которых фиксирован. Если же смайлов много, их коллекция постоянно пополняется и изменяется, то лучше завести отдельный тег, в котором одним из атрибутов будет указываться имя файла смайла.
xml.style
Разрешить любые значения для всех атрибутов стиля <name>.
Смотрите также параметр xml.style.<name>
xml.style.<name>
Разрешить атрибут стиля <name>.

В качестве значения параметра может указывается список возможных значений этого атрибута. Элементы списка разделяются запятой.

Если значение параметра не указано, то значение этого атрибута может быть любым.

Например, разрешение на использование такой конструкции:
<font style="font-weight:bold">
настраивается таким параметром: xml.style.font-weight=bold

Для разрешения любых значений любых атрибутов стилей Вы можете использовать параметр xml.style.<name>
xml.tag
Разрешить все теги.
xml.tag.<name>
Разрешить тег <name>.
xml.tag.<name>.child[=<tag-list>]
Разрешить внутри тега <name> только теги, указанные в списке tag-list. tag-list - это список тегов, разделенных запятой.

Если параметр не задан, то внутри тега <name> разрешены любые теги.

Если параметр задан, но список tag-list не указан, то внутри этого тега не могут быть расположены другие теги.

Корневой тег называется <top>. Если Вы хотите указать, какие теги могут располагаться на самом верхнем уровне, то этот параметр следует указывать для тега <top>:

xml.tag.top.child=table,p

означает, что на самом верхнем уровне могут быть расположены только теги table и p. Все остальные теги не допустимы на верхнем уровне и должны располагаться внутри этих тегов.

Для тега table это ограничение можно было бы записать так:

xml.tag.table.child=tbody,tr
xml.tag.<name>.noparentpath=<tag-list>
Запретить этот тег, если он находится внутри одного из тегов из списка tag-list. Теги из списка tag-list могут быть как непосредственнми, так и косвенными родителями тега <name>.

Если этот параметр не указан, то проверка не осуществляется.
xml.tag.<name>.param[=property-list]
Разрешить тег <name>. property-list - это список свойств этого тега. Элементы списка свойств разделяются запятой. Для тегов можно указывать следующие свойства:
  • anywhere - этот тег может быть расположен где угодно, не зависимо от значений параметров child, parent и parentpath.
  • clear - если тег запрещен (указан параметр disable, указан запрещенный атрибут, в качестве значения атрибута указано недопустимое значение, тег находится в недопустимом контайнере), то он удаляется из результирующего xml-документа вместе со всем своим содержимым (вложенным текстом и всеми дочерними тегами).

    Например, если исходный xml-документ был таким:

    <a><b><c>d</c></b></a>

    тег b оказался запрещенным и для этого тега указано свойство clear, то результирующий xml-документ будет таким:

    <a />

    Это свойство учитывается только если не указан параметр xml.error.
  • disable - этот тег запрещен.

    Все теги, для которых явно не указан параметр xml.tag.<name>[=property-list], считаются запрещенными. Свойство disable используется для того, что бы указать для тега другие свойства и при этом что бы тег оставался запрещенным.
  • empty - внутри этого тега не может ничего находиться, ни другие теги, ни какой-либо текст.
  • hide - если тег запрещен, то он удаляется из результирующего xml-документа, но вложенное содержимое (вложенный текст и все дочерние теги) этого тега остается.

    Например, если исходный xml-документ был таким:

    <a><b><c>d</c></b></a>

    тег b оказался запрещенным и для этого тега указано свойство hide, то результирующий xml-документ будет таким:

    <a><c>d</c></a>

    Это свойство учитывается только если не указан параметр xml.error.
  • noclose - Этот тег должен быть отдельно открыт, отдельно закрыт, даже если внутри этого тега ничего нет. Этот тег не может закрывать сам себя.

    Например, если в исходном xml-документе записано:

    <a name=position></a>

    и для тега a не указано свойство noclose, то в результирующем xml-документе появится

    <a name=position />

    в html-документах для некоторых тегов не допустимо, что бы они закрывали сами себя (например, это теги a, textarea, script). Для таких тегов следует указать свойство noclose. Если в приведенном выше примере для тега a указано свойство noclose, то результирующий xml-документ будет таким:

    <a name=position></a>

    При чем результирующий xml-документ будет таким всегда, даже если в исходном xml-документе тег a закрывает сам себя.
  • nodepth - не учитывать для этого тега параметр xml.depth. Разрешить этот тег на любом уровне вложенности.
  • noerror - не выводить сообщение об ошибке, если этот тег запрещен свойством disable.

    Используется в случае, если Вы хотите добавить теги, которые можно вставлять в результирующий xml-документ, но при этом что бы в исходном xml-документе эти теги были записаны так же, как и все остальные теги (например, <tag>). Обычно запрещенные теги должны записываться так, что бы они вообще не воспринимались как теги: &lt;tag&gt;.
  • noempty - содержимое этого тега не может быть пустым. Если внутри этого тега ничего нет, то этот тег запрещен.
  • notext - внутри этого тега не допустим непробельный текст.
xml.tag.<name>.parent=<tag-list>
Разрешить этот тег только если он находится внутри одного из тегов, указанных в tag-list. tag-list - это список тегов, разделенных запятой. Тег верхнего уровня называется <top>.

Тег считается запрещенным, если он находится не в одном из тегов из списка tag-list или тег, в котором находится данный тег, запрещен.

Это ограничение необходимо для поддержания целостности генерируемого xml-кода. Это ограничение действует всегда, даже если указан один из параметров xml или xml.tag.

Например, если исходный xml-документ выглядит так:

<table><tr><td>&nbsp;</td></tr></table>

для тега tr указан параметр xml.tag.tr.parent=table,tbody, а для тега td указан параметр xml.tag.td.parent=tr, то в результирующем xml-документе не может появиться тег td, который находится не внутри тега tr. Тег tr в свою очередь не может появиться, если он находится не внутри одного из тегов table или tbody. Если по каким-то причинам в исходном xml-документе тег table оказался запрещенным (например, для него указано недопустимое значение атрибута), то и тег tr, и тег td тоже будут запрещенными.
xml.tag.<name>.parentpath=<tag-list>
Аналогичен параметру xml.tag.parent за тем исключением, что теги из списка <tag-list> могут быть не только непосредственными родителями, но и косвенными родителями текущего тега.

Может использоваться, например, для элементов формы - их можно располагать не только внутри самого тега <form>, но и расположить внутри формы таблицу, а внутри таблицы - этот элемент формы.
xml.tag.<name>.require=<tag-list>
Разрешить тег <name> только в случае, если у него есть хотя бы один любой ребенок из списка <tag-list>.

Может использоваться, например, для таблиц: тег <table> разрешен только в том случае, если внутри есть хотя бы один из тегов <tr> или <tbody>.
xml.text
Обработать исходный xml-документ в текстовом режиме:
  • Никакие специальные символы не запрещаются. Никакие запрещающие преобразования не производятся. Все выводится так, как это записано в исходном xml-документе.
  • Все разрешенные теги удаляются из результирующего xml-документа, если для них не указан особый способ обработки в текстовом режиме. Особый способ обработки задается функциями пользователя.
  • Все запрещенные теги выводятся так, как они записаны в исходном xml-документе.
  • Текстовый режим может влиять на обработку инструкций. Например, подсветка php-кода в текстовом режиме не осуществляется и php-код выводится «как есть».
  • Не преобразуются простые смайлы
  • Не выполняется проверка орфографии
  • Не выводятся сообщения об ошибках

Смотрите также

Управление параметрами
http://popoff.donetsk.ua/text/work/libs/a/param/

Последняя модификация: 16.03.08 21:07

Не проходите мимо! Оставьте Ваш комментарий в форуме! >>>