我正在填充選擇表單元素,如果我嘗試在值中使用HTML實體,它將被轉換,而不是顯示特殊字符。在Zend窗體中使用HTML實體選擇
此代碼:
$form->field_name->addMultiOption('value', ' • label');
呈現:
<option value="one">&nbsp;&bull; label</option>
但我希望它是:
<option value="one"> • label</option>
如何使用HTML實體這裏?
提示?
我挖的代碼,發現它使用標籤和值上從Zend查看摘要escape()
功能。也許有人知道如何覆蓋/重載此功能的特定表單元素?我不想在默認情況下覆蓋該行爲。從Zend_View_Helper_FormSelect
類
protected function _build($value, $label, $selected, $disable)
{
if (is_bool($disable)) {
$disable = array();
}
$opt = '<option'
. ' value="' . $this->view->escape($value) . '"'
. ' label="' . $this->view->escape($label) . '"';
// selected?
if (in_array((string) $value, $selected)) {
$opt .= ' selected="selected"';
}
// disabled?
if (in_array($value, $disable)) {
$opt .= ' disabled="disabled"';
}
$opt .= '>' . $this->view->escape($label) . "</option>";
return $opt;
}
這
功能是從Zend_View_Abstract
類的功能:
private $_escape = 'htmlspecialchars';
/* SNIP */
public function escape($var)
{
if (in_array($this->_escape, array('htmlspecialchars', 'htmlentities'))) {
return call_user_func($this->_escape, $var, ENT_COMPAT, $this->_encoding);
}
return call_user_func($this->_escape, $var);
}
你想幹什麼你的預期輸出是什麼? – 2010-02-20 18:18:23
@Anthony - 我已經更新了這個問題來解決我想要的輸出是什麼。 – Sonny 2010-02-20 20:24:54