2013-03-15 28 views
1

我試圖把HTML到mailto鏈接(<a href='mailto:...)和使用htmlescapechars(),但這似乎並不是我所需要的。如何製作與mailto:link(PHP)兼容的特殊字符?

<a href='mailto:?subject=<?echo $subject_e=htmlspecialchars($subject, ENT_QUOTES)?>&body=<?=$subject_e?>%20via%20https&#58;&#47;&#47;mySite.com&#47;<?=htmlspecialchars($subjectLink, ENT_QUOTES)?>%20'>some text</a> 

誰能在什麼條件下Example #1 in the htmlspecialchars() part of PHP's documentation作品解釋一下嗎?

$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES); 
echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt; 

我自己的服務器上或http://writecodeonline.com/php/運行該功能似乎並沒有特殊字符轉換。

所以它似乎不是PHP版本的問題。包括encoding參數也沒有效果。跆拳道?

回答

1

所以看elsewhere on SO後,我意識到,而不是htmlspecialchars()我只需要rawurlencode()

2

在我自己的服務器上運行此功能似乎並不轉換特殊字符。

我敢打賭,你只是想因爲你查看腳本輸出HTML ...,什麼& LT;顯示爲HTML?對,<字符...

+0

哦,是啊,呃!讓我看看... – 2013-03-15 16:20:34

+1

經典... :) – Adrenaxus 2013-03-15 16:21:07

0

它實際上是工作。如果您查看源代碼,則會看到它正常運行。 HTML正在渲染特殊字符

0

如果您查看頁面的代碼,您將看到生成的內容正是預期的內容。嚕:

 <div class="page-body"> 
     <div id="code-output" class="code-output">&lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;</div> 
    </div> 

問題是,當您呈現頁面時,html實體再次轉換爲文本。如果它不是你想要的,你應該把輸出放在<pre>標籤內。

1

你看錯了!你看到HTML標籤IS的原因是因爲magic php函數正在工作。否則,它只會呈現爲實際的HTML。發生這種情況是因爲您可能打印到HTML頁面。