[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: проблемы с php_domxml.dll и php 5
skyman000
!привет всем!
проблема в следующем:
мне надо чтоб у меня просто работала 1 функция
Код
function wm_X9Req(){
global $wmType, $wmWMID;

$reqID = wm_ReqID();
$doc = domxml_new_doc('1.0');
$root = $doc->create_element('w3s.request');
$root = $doc->append_child('root');
$tmp = $doc->create_element('reqn');
$tmp->set_content($reqID);
$root->append_child($tmp);
$tmp = $doc->create_element('wmid');
$tmp->set_content($wmWMID);
$root->append_child($tmp);

if($wmType=='classic'){
$tmp = $doc->create_element('sign');
$tmp->set_content(wm_GetSign($wmWMID.$reqID));
$root->append_child($tmp);
$addr = 'XMLPurses.asp';
} else {
$addr = 'XMLPursesCert.asp';
};

$getpurses = $doc->create_element('getpurses');
$root->append_child($getpurses);
$tmp = $doc->create_element('wmid');
$tmp->set_content($wmWMID);
$getpurses->append_child($tmp);

$request = $doc->dump_mem(TRUE);

$result = wm_xmlHttpsReq($addr, $request);

$xml_parser = xml_parser_create('UTF-8');
xml_parse_into_struct($xml_parser, $result, $vals, $index);
xml_parser_free($xml_parser);

$check = wm_CheckResp($vals,$index);
if( $check != 0) die($check);

$purses = array();
$pursename = '';
$amount = '';
$desc = '';
for($n = 0; $n < count($vals); ++$n){
$e = $vals[$n];
switch ($e['tag']){
case 'PURSE':
switch ($e['type']){
case 'open':
$pursename = ''; $amount = ''; $desc = '';
break;
case 'close':
$purses[$pursename] = array('amount' => $amount,

'desc' => $desc);
break;
}
break;
case 'PURSENAME':
$pursename = $e['value'];
break;
case 'AMOUNT':
$amount = $e['value'];
break;
case 'DESC':
$desc = $e['value'];
break;
}
}
return $purses;

};


вначале пытался её запустить без php_domxml.dll
php ругается:Call to undefined function domxml_new_doc
типа не знаю чё за функция такая..
я защёл на яндекс и понял что нужна библиотека php_domxml.dll
я скачал её версии 5.2.1.1 ( php у меня версии 5.0.5.5 ), раскоментировал extension=php_domxml.dll,
грузанул комп и апатч и попробывал запустить всё заново
при загрузке php начал ругатся на отсутствие библиотеки php4ts.dll
я её скачал и снова грузанул апатч
апатч снова ругается
точка входа в процедуру _php_stream_open_wrapper_as_file не найдена в библиотеке php4ts.dll
дальше диалог на отсутствиепроцедуры выскакивает и снова ругань на счёт _php_stream_open_wrapper_as_file
пытаюсь запустить функция пишет Call to undefined function domxml_new_doc ....

короч прочитал ещё в сети типа domxml_new_doc это функция из php 4 и библиотека php_domxml.dll конфликтует с встроенной поддержкой xml в php 5 ...

я решил удалить php_domxml.dll php4ts.dll и переписать эту функцию пользуясь этой "встроенной в php 5 подержкой xml"

вот что получилось
Код
function wm_X9Req(){
global $wmType, $wmWMID;

$reqID = wm_ReqID();

$doc = new DOMDocument('1.0', 'iso-8859-1');
$root = $doc->createElement('w3s.request');
$root = $doc->appendChild($root);
$tmp = $doc->createElement('reqn');
$tmp->set_content($reqID);
$root->append_child($tmp);
$tmp = $doc->create_element('wmid');
$tmp->set_content($wmWMID);
$root->append_child($tmp);

if($wmType=='classic'){
$tmp = $doc->create_element('sign');
$tmp->set_content(wm_GetSign($wmWMID.$reqID));
$root->append_child($tmp);
$addr = 'XMLPurses.asp';
} else {
$addr = 'XMLPursesCert.asp';
};

$getpurses = $doc->create_element('getpurses');
$root->append_child($getpurses);
$tmp = $doc->create_element('wmid');
$tmp->set_content($wmWMID);
$getpurses->append_child($tmp);

$request = $doc->dump_mem(TRUE);

$result = wm_xmlHttpsReq($addr, $request);

$xml_parser = xml_parser_create('UTF-8');
xml_parse_into_struct($xml_parser, $result, $vals, $index);
xml_parser_free($xml_parser);

$check = wm_CheckResp($vals,$index);
if( $check != 0) die($check);

$purses = array();
$pursename = '';
$amount = '';
$desc = '';
for($n = 0; $n < count($vals); ++$n){
$e = $vals[$n];
switch ($e['tag']){
case 'PURSE':
switch ($e['type']){
case 'open':
$pursename = ''; $amount = ''; $desc = '';
break;
case 'close':
$purses[$pursename] = array('amount' => $amount,

'desc' => $desc);
break;
}
break;
case 'PURSENAME':
$pursename = $e['value'];
break;
case 'AMOUNT':
$amount = $e['value'];
break;
case 'DESC':
$desc = $e['value'];
break;
}
}
return $purses;

};



не знаю чем заменить функцию curl_init, set_content и dump_mem ... короч запутался в конец и близок к истерической панике и незнаю что делать...

помогите а ? этот форум моя последняя надежда !



Спустя 1 час, 18 минут, 35 секунд (3.05.2008 - 15:32) Ghost написал(а):
скачай с официального сайта последний дистрибутив полностью и не мучайся

Спустя 3 минуты, 56 секунд (3.05.2008 - 15:36) skyman000 написал(а):
Цитата(Ghost @ 3.5.2008, 12:32) [snapback]37845[/snapback]
скачай с официального сайта последний дистрибутив полностью и не мучайся


поставил..
пишет
Warning: append_child() expects parameter 1 to be object, string given in c:\serv\сайты\localhost01\html\2\phpxml\index.php on line 202

Fatal error: Call to a member function on a non-object in c:\serv\сайты\localhost01\html\2\phpxml\index.php on line 205

wacko.gif

Спустя 26 минут, 28 секунд (3.05.2008 - 16:02) Ghost написал(а):
строчка $root = $doc->appendChild($root); не смущает?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.