Пользовательский формат значения тега - PullRequest
0 голосов
/ 28 июля 2011

Я хотел бы сделать что-то вроде этого:

<my_tag_name>
text..
any_text
</my_tag_name>

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

<my_tag_name>
text..
any_text
</my_tag_name>
</my_tag_name>

Поэтому я заменил <на <'</p>

function content($string, $tagname)
{
 $pattern = "/<$tagname>([\w\W]*?)<\/$tagname>/";
 $preg_match($pattern, $string, $matches);
 return str_replace("<'", "<", $matches[1]);
}

function replace($string)
{
  return str_replace("<", "<'", $string);  
}

Цель состоит в том, чтобы иметь пользовательские теги и любой текст в качестве содержимого.Это правильный подход?Я попробовал это, и это работает.Но опять же я вспомнил тот же принцип в html, но вы не можете поместить, скажем,

мой контент
.

Я также хотел бы получить следующее:

tag: reserved_64_characters
tag2: reserved_64_characters

Как эти вещи реализованы в XML?Есть также некоторые побег / замена.Я хотел бы сделать, чтобы любой контент мог быть вставлен, я имею в виду любые символы (также ..).

Вкл. http://www.w3schools.com/xml/xml_cdata.asp

Примечания к разделам CDATA:

Раздел CDATA не может содержать строку "]]>"

Ответы [ 3 ]

2 голосов
/ 28 июля 2011

Вы должны выйти из пользовательского ввода с htmlentities .Вот и все.

1 голос
/ 28 июля 2011

Взгляните на CDATA, это именно то, что вам нужно, если я правильно понимаю ваш вопрос (в чем я сомневаюсь, к сожалению).

<my_tag_name>
<![CDATA[text..
any_text
</my_tag_name>]]>
</my_tag_name>

так

text..
any_text
</my_tag_name>

это значение my_tag_name сейчас

0 голосов
/ 28 июля 2011

вы можете использовать php htmlentities () или strip_tags () для анализа / очистки пользовательского ввода ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...