我有這樣的文字:逃生HTML文本在ZF2
<p><strong>Lorem</strong> ipsur </p>
要看到不帶HTML標籤文本Zend框架2我該怎麼辦?
我試圖把:
<?php echo $this->escapehtml($array['text']); ?>
我讀的安全性並不好做:
<?php echo $array['descrizione']; ?>
我有這樣的文字:逃生HTML文本在ZF2
<p><strong>Lorem</strong> ipsur </p>
要看到不帶HTML標籤文本Zend框架2我該怎麼辦?
我試圖把:
<?php echo $this->escapehtml($array['text']); ?>
我讀的安全性並不好做:
<?php echo $array['descrizione']; ?>
林不知道如果我理解這個問題,因爲我不知道的內容你的數組。
basicaly如果你想花葶一個變量的內容,比方說,$input
,你必須調用,正如你所提到
$this>escapeHtml($input)
實際上,PhpRenderer包括一個選擇,你可以使用這個幫手目的:EscapeHtml,EscapeHtmlAttr,EscapeJs,EscapeCss和EscapeUrl。
您可以瞭解這個here
另外,如果你想要更多的控制,你可以使用的Zend \逃避者,在兩行代碼讓你escape html,這樣
$escaper = new Zend\Escaper\Escaper('utf-8');
$output = $escaper->escapeHtml($input);
$escaper = new Zend\Escaper\Escaper('utf-8');
$output = $escaper->escapeHtmlAttr($input);
我建議你讀了3個環節,他們都非常短,會給你一個更好的理解過程站在你正在做的事情上。
此時在escapeHtml中沒有選項來允許某些標記。你有什麼在這些特定情況下做的是改變返回值:
<?php
$str = $this->escapehtml($array['text']); ?>
$str = preg_replace(
array('#href="(.*)"#', '#<(/?(?:pre|a|b|br|em|u|ul|li|ol|p|strong)(\shref=".*")?/?)>#'),
array('href="\1"', '<\1>'),
$str
);
echo $str;
您可以添加/從部分pre|a|b|br|em|u|ul|li|ol|p|strong
您的需要移除標籤。此外,這段代碼只允許使用href的錨標籤。