0

我有以下代码:

<?php 

     $select_options = array();
     foreach($delivery_options as $option)
     {
        $select_options[$option->getDeviceId()] = $option->getDeviceName();
        echo $select_options[$option->getDeviceId()]; 
     }

     echo $this->Form->input('default_device', array( 
        'type' => 'select', 
        'options' => $select_options, 
        'value' => $default_device,
        'label' => '', 
    ));


?>

在 foreach 循环中,每个回声都返回: abc'abc 在 html 源代码中,它看起来像这样abc&#39;abc

然后在选择输入:abc&#39;abc 在html源代码中:abc&amp;#39;abc

这意味着&char fromabc&#39;abc已转换为它的 html 编码 -&amp但它是如何发生的?

我也尝试了 htmlentities() 和 htmlspecialchars() 但这仍然没有帮助......

4

1 回答 1

1

select 输入类型允许一个名为 'escape' 的特殊 $option 属性,它接受 bool 并确定是否对 HTML 实体编码选择选项的内容。默认为真。

尝试将其设置为 false。

echo $this->Form->input('default_device', array( 
        'type' => 'select', 
        'options' => $select_options,
        'escape' => false, // like so
        'value' => $default_device,
        'label' => '', 
));
于 2012-05-15T18:28:31.373 回答