немогу понять в чём качественное отличие

predator

web designer
немогу понять в чём качественное отличие

вот кусок кода из одного класса:
PHP:
	Function escapedata($data)
	{
		$position=0;
		$length=strlen($data);
		$escapeddata="";
		for(;$position<$length;)
		{
			$character=substr($data,$position,1);
			$code=Ord($character);
			switch($code)
			{
				case 34:
					$character="&quot;";
					break;
				case 38:
					$character="&amp;";
					break;
				case 39:
					$character="&apos;";
					break;
				case 60:
					$character="&lt;";
					break;
				case 62:
					$character="&gt;";
					break;
				default:
					if($code<32)
						$character=("&#".strval($code).";");
					break;
			}
			$escapeddata.=$character;
			$position++;
		}
		return $escapeddata;
	}
может мне кто-то объяснить чем он отличается от php-шной:
PHP:
htmlSpecialChars($data);
?

если учесть что эти функции применяются при перегоне array2xml для текста
который будет между тэгами в результируещем xml?

по-моему никакой разницы, хотя есть какие-то смутеые подозрения ))

может кто сечёт в вопросе?
 

Wicked

Новичок
$str = join("", array_map('chr', range(0, 255)));
и смотри, чем отличаются результаты :)

-~{}~ 05.09.06 19:15:

еще могу добавить, что...
1) заменой & на & (а не на &amp;amp;) они не добьются валидного xml-я.
2) entity apos - должна быть определена в итоговом документе.
 

predator

web designer
Автор оригинала: Wicked
$str = join("", array_map('chr', range(0, 255)));
и смотри, чем отличаются результаты :)
что-то я не врубаюсь
ну таблица символов от 0 до 255-ого
а что из этого следует? ))

еще могу добавить, что...
1) заменой & на & (а не на &amp;amp;) они не добьются валидного xml-я.
2) entity apos - должна быть определена в итоговом документе.
1 - htmlSpecialChars() поможет решить эту проблему )
2 - вот про это <!ENTITY apos "&#146;"> поподробнее

и вообще хватит htmlSpecialChars() для валидного xml?

причём вообще эта функция вызывается из такгого места
utf8_encode( $this->escapedata( $_strData ) );
или так
$this->escapedata( utf8_decode( $_strData ) );
или это вообще уже масло масленное?

нужно разобрать вопрос )

-~{}~ 07.09.06 12:36:

Автор оригинала: Wicked
$str = join("", array_map('chr', range(0, 255)));
и смотри, чем отличаются результаты :)
короче я проверил ))
отличается )))

а зачем символы меньше 32-ого преобразовывать?
и я так понял нужно &# преобразовать в &amp;#?

а чем проверить валидность xml?
некоторые бравзёры очень либерально себя ведут
и прощают некоторые недочёты в xml
пока проверяю с помощью ff

-~{}~ 07.09.06 13:52:

бляха кто так форум настроил? - не удалить не редактировать

короче чуть выше я хотел написать
"я так понял нужно &# преобразовать в & amp;#?"
естественно без пробела в посл. случае
 

phprus

Moderator
Команда форума
"я так понял нужно &# преобразовать в & amp;#?"
Нет. Нужно отдельно стоящий символ & ( в ветке, где указан код 38) заменять на & amp;
Те там должно быть
$character="&amp;amp;";
 

predator

web designer
а, ну эт ясно ) - на самом деле там стоит & amp; просто без пробела ))
но дело в том что и на это - &#
ff ругается, а когда делаешь & amp;#, всё нормуль

может ты знаешь зачем символы меньше 32-ого преобразовывать?
это по стандартам xml непрокатывает?
искал - ненашёл деперкатед символов, а то-бы и не спрашивал )
 

phprus

Moderator
Команда форума
predator
Их надо представлять в виде &#код_символа_в_unicode;

А вообще по чему ты не хочеш использовать функцию htmlSpecialChars?
 
Сверху