Так вот, не могу понять, по мануалу функция http://php.su/functions/?htmlentities преобразует все символы в соответствющие HTML сущности :
<?php.
$str = "A 'quote' is <b>bold</b>";
// выводит: A 'quote' is <b>bold</b>
echo htmlentities($str);
// выводит: A 'quote' is <b>bold</b>
echo htmlentities($str, ENT_QUOTES);
?>
Когда я вывожу список всех юзеров занесённых в БД(без htmlentities()):
while($row=mysql_fetch_assoc($result_out))
{
echo "<a href=form.php?user=".$row['name'].">". $row['name']."</a><br>";}
такие имена как "<?echo X;?>" выводятся вот так "echo;" если я вывожу с помощью htmlentities:
while($row=mysql_fetch_assoc($result_out))
{
echo "<a href=form.php?user=".$row['name'].">". htmlentities($row['name'])."</a><br>";}
Всё выводится ровно, безо всяких сущностей, как написано в мануале(таких как <b>). Почему так?
Спустя 43 минуты, 48 секунд (22.10.2010 - 13:30) Michael написал(а):
$x = '<?echo X;?>';
echo $x;
echo '<hr>';
echo htmlentities($x);
выдаст у меня:
<?echo X;?><hr>& lt;?echo X;?& gt;
- это если смотреть исходный код страницы. У тебя не так что ли?
p.s. & gt; - пробел лишний вставил, а то форум не пропускает
Спустя 1 день, 6 часов, 53 минуты, 59 секунд (23.10.2010 - 20:24) DorianLeroy написал(а):
Вот такой код:
выводит у меня только верхнюю полосу(<hr>) и под ней один раз <?echo X;?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>
<body>
<?php
$x = '<?echo X;?>';
echo $x;
echo '<hr>';
echo htmlentities($x);
?>
</body>
</html>
выводит у меня только верхнюю полосу(<hr>) и под ней один раз <?echo X;?>
Спустя 24 минуты, 3 секунды (23.10.2010 - 20:48) kovaldm написал(а):
Так и должно быть.