QuickForm, setDefaults и обработка htmlspecialchars

idencial

Одинаковый
QuickForm, setDefaults и обработка htmlspecialchars

Есть кусок кода
PHP:
<?php
    require_once "HTML/QuickForm.php";

    $form = new HTML_QuickForm('frmTest', 'get');

    $defaultValues['txtFirstName'] = "Vasya&nbsp;Pupkin";
	  
    $form->setDefaults($defaultValues);

    
    $form->addElement('header', 'hdrTesting', 'A simple form');
    $form->addElement('text', 'txtFirstName', 'First name?');
    $form->addElement('text', 'txtLastName', 'Last name?');
    $form->addElement('text', 'txtAge', 'Age?');
    $form->addElement('text', 'txtTelephone', 'Telephone number?');
    $form->addElement('reset', 'btnClear', 'Clear');
    $form->addElement('submit', 'btnSubmit', 'Submit');
    if ($form->validate()) {
        # If the form validates then freeze the data
        $form->freeze();
    }
	$form->display();
?>
При этом на выходе я получаю
PHP:
<input name="txtFirstName" type="text" value="Vasya&amp;amp;nbsp;Pupkin" />
а мне надо
PHP:
<input name="txtFirstName" type="text" value="Vasya&nbsp;Pupkin" />
Т.е я не хочу чтобы значения обрабатывались htmlspecialchars

Есть ли какие-то стандартные средства, чтобы отключить подобную вещь и на выходе получать
PHP:
<input name="txtFirstName" type="text" value="Vasya&nbsp;Pupkin" />
P.S.
Точнее мне надо чтобы не экранировался амперсанд, он то все и портит.
У меня в текстовое поле выводятся html коды русских букв в Юникоде.
И если не экранировать, то я увижу русское слово, а если экранировать, то строчку кодов :(

-~{}~ 20.05.05 01:47:

Снова столкнулся с проблемой при использовании кода
PHP:
$form->addElement('reset', 'clean', 'Puhasta v&auml;ljad');
Неужели нельзя никак обойти эту проблему?

-~{}~ 20.05.05 02:36:

Как временный костыль, модифицировал _getAttrString в Common.php
PHP:
function _getAttrString($attributes)
    {
        $strAttr = '';

        if (is_array($attributes)) {
            foreach ($attributes as $key => $value) {
                $strAttr .= ' ' . $key . '="' . str_replace("&amp;", "&", htmlspecialchars($value)) . '"';
            }
        }
        return $strAttr;
    }
Ну ведь должен быть какой-то более красивый способ решения проблемы?

-~{}~ 20.05.05 02:39:

Блин, ес-но
PHP:
str_replace("&amp;amp;", "&", htmlspecialchars($value))
Форум покоцал :)
 
Сверху