2013-02-08 30 views
-1

内的htmlspecialchars您可以访问此链接,我promlem的例子:http://jflaugher.mystudentsite.net/cmweb241/cmweb241_lab2.html如何利用回声

一切正常,但我有利用的htmlspecialchars在我的回声问题。我希望实体显示在回声中,而不是html字符。我已经尝试将htmlspecialchars放在echo中,但是段落标签显示出来。如何在echo中使用htmlspecialchar,并在段落标签中显示回显?我一直在这一段时间,并没有得到任何地方,因为我是PHP的新手。

例如,当我输入'&'时,我得到回应。我希望实体&放大器得到回应,而不是'&'。

<?php 
    $username = htmlspecialchars(str_replace(array("'", "\""), "", $_POST['username'])); 
    $password = htmlspecialchars(str_replace(array("'", "\""), "", $_POST['password'])); 
    $comment = htmlspecialchars(str_replace(array("'", "\""), "", $_POST['comment'])); 

    echo "<p> Your Username is: $username .</p> "; 
    echo " <p>Your Password is: $password . </p>"; 
    echo " <p>Your Comment was: $comment . </p>"; 

?> 
+0

你在哪里查看此输出?在浏览器中?在html上下文中,浏览器将显示呈现的字符,而不是您嵌入到文本中的实体。尝试一个“查看源代码”,它显示实体。 – 2013-02-08 17:39:05

+0

请更清楚输入和预期输出。我不知道你认为问题出在哪里。另外,你为什么要更换报价? – deceze 2013-02-08 17:40:29

+0

@MarcB我正在查看浏览器中的回显。例如,当我输入“&”时,我会回显“&”。我反而想要呼应enity &。 – 2013-02-08 17:42:04

回答

1

我不知道这意味着什么:

我想实体回声,而不是HTML字符显示出来。

你是说你想让实体显示在你的网页上吗? htmlspecialchars is将字符转换为实体,但浏览器会将这些实体显示为它们所代表的字符。

如果你想真正看到浏览器中的实体,您可以双击逃脱值:

$username = htmlspecialchars(htmlspecialchars(str_replace(array("'", "\""), "", 
          $_POST['username']))); 

但我真的不认为这是你在做练习的目的。

+0

假设我在textarea中输入了一个'&'。回声给我的'&',但我不是想它成为&。 – 2013-02-08 17:40:46

+0

不,回声给你的实体'&'。您的浏览器将其呈现为&&。如果你在你的网页上查看源代码,你会看到它显示的'&','<', and '>'是源代码中的实体。 – JLRishe 2013-02-08 17:52:47

+0

这正是我所期待的。而不是出现,我希望实体出现。我想我问了这个问题。 – 2013-02-08 18:02:36

1

如果你想显示的实体,您可以应用htmlspecialchars()两次,它将把所有的&&amp;&amp;amp;,因此实体本身将被显示。

另一种方法是将输出打包在<pre></pre>标记中。

+0

是的,我想要显示的实体。我在如何使用htmlspecialchars两次有问题。 – 2013-02-08 17:44:51

+0

基本上,有人说,我只是没有为你写代码。 – Dunhamzzz 2013-02-08 17:55:57

2

说你输入&
htmlspecialchars会变成&amp;这一点。
&amp;&的HTML实体,所以观看结果在浏览器中显示&

这是htmlspecialchars的正常目的,它保留可见字符通过适当地为媒介(HTML)转义它。

如果你想&变成一个可见的&amp;,浏览器将需要收到&amp;amp;。应用htmlspecialchars两次做到这一点:

htmlspecialchars(htmlspecialchars($_POST['username'])) 

也许The Great Escapism (Or: What You Need To Know To Work With Text Within Text)帮助您了解的话题更好。