我有一个包含电子邮件的数组会话 - 我尝试将它们回显到屏幕上,但我什么都没有显示出来。
$_SESSION['extralistids'] = array('<abc@hotmail.com>', '<def@gmail.com>', '<fgh@yahoogroups.com>', '<ijk@aol.com>', '<def@yahoo.com>');
echo 'You have visited this page ' . $_SESSION['extralistids'][$_SESSION['counter']] . ' -for the first time.';
我使用它并输出正常:
$_SESSION['extralistids'] = array('abc', 'def', 'ghi', 'jkl', 'def', 'ghi', 'jkl', 'def', 'ghi', 'jkl', 'def', 'ghi', 'jkl');
我尝试用双引号替换单引号 - 没有快乐。 我在这里做了一些明显不对的事,但似乎无法发现错误 - 我想出错的任何想法?
答案 0 :(得分:1)
没有任何内容显示,因为它们包含在括号(<
和>
。)中,这使它们看起来像HTML。在回显这些值时需要使用htmlentities()
,因此括号显示为实体,而不是解释为HTML字符。
echo 'You have visited this page ' . htmlentities($_SESSION['extralistids'][$_SESSION['counter']]) . ' -for the first time.';
答案 1 :(得分:1)
假设您在网页上显示此内容,则需要执行以下操作:
echo 'You have visited this page ' . htmlentities($_SESSION['extralistids'][$_SESSION['counter']]) . ' -for the first time.';
因为<
和>
在HTML中具有特殊含义。浏览器将<abc@hotmail.com>
视为HTML标记,而不是要显示的文本。 htmlentities
会将其转换为<abc@hotmail.com>
,然后会按预期显示。