2013-02-08 37 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)幫助您瞭解的話題更好。