Показать сообщение отдельно
Старый 27.09.2006, 19:58
alehano вне форума Посмотреть профиль Отправить личное сообщение для alehano Найти все сообщения от alehano
  № 1  
Ответить с цитированием
alehano

Регистрация: Feb 2006
Сообщений: 6
По умолчанию В php сохраняется только последняя строка xml

Привет. У меня проблема.
Я во флэше сделал форму обратной связи. Из нее отсылается текст в php.
Проблема в том, что в php при обработке xml сохраняется только последняя строка, если вводится несколько строк текста.

Например при вводе.

"Привет.
Пока."

В переменную php присваивается только "Пока."

Ниже привожу код xml обработчика в php.
Он довольно простой. Все что мне от него нужно - сохранить несколько значений из xml в переменные.

Помогите разобраться. Может посоветуете по-другому обрабатывать xml (я в нем еще новичок).

PHP код:
class xml // класс обработки xml
{
    var 
$parser;
    var 
$node;
    var 
$result;

    function 
xml()
    {
        
$this->parser xml_parser_create();

        
xml_set_object($this->parser, &$this);
        
xml_set_element_handler($this->parser"tag_open""tag_close");
        
xml_set_character_data_handler($this->parser"cdata");
    }

    function 
parse($data)
    { 
        
xml_parse($this->parser$data);
        return 
$this->result;
    }

    function 
tag_open($parser$tag$attributes)
    { 
        
    
$this->node=$tag;
    }

    function 
cdata($parser$cdata)
    {

    if(
$this->node && $cdata$this->result[$this->node]=$cdata;
    }

    function 
tag_close($parser$tag)
    {
    
$this->node=null;
    }

    function 
free()
    {
    
xml_parser_free($this->parser);
    
    }

}

/*

в скрипт посылается такой файл:

<xml><data>Привет.
Пока.</data></xml>

*/

// теперь начинается сам код обработки

$xml_file file_get_contents("php://input");

$xml_parser = new xml();
$res_arr=$xml_parser->parse($xml_file);
$xml_parser->free();

$xml_data=$res_arr[data];

// вместо полного текста в $xml_data сохраняется только последняя строка "Пока." 


Последний раз редактировалось alehano; 27.09.2006 в 20:14.