Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / simplexml_load_string xmlsax2characters huge text node out of memory / 5 сообщений из 5, страница 1 из 1
07.03.2019, 09:53
    #39783371
evgen29
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
simplexml_load_string xmlsax2characters huge text node out of memory
Здравствуйте! Использую SoapClient
один из узлов возвращает данных больше 10мб
пытаюсь добавить LIBXML_PARSEHUGE для получения такого xml
Но
print_r($xmlDoc);
возвращает пустой узел

Код: php
1.
$response = $client->__getLastResponse();


при сохранении ответа в файл, сохраняется абсолютно нормальный файл xml без лишних символов


libxml 2.7.3
php 5.2.12


Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
  //создаем клиента к веб-сервису
        $options = array(
                //'exceptions'=>true,
                'trace'=>1
                //'cache_wsdl'=>WSDL_CACHE_NONE,
				//'soap_version' => SOAP_1_1
        );  
  
  $client = new SoapClient("http://localhost:8080/wsdl/IWebServSM", $options);
  //if(isset($_POST['jsonrequest']['params']))
  $params=$_POST['jsonrequest']['params']; 
//else $params=array();
  //if(isset($_POST['jsonrequest']['makros']))
  $makros=$_POST['jsonrequest']['makros']; 
//else $makros=array();
  //добавляем код склада в параметры
  $params['skladid']=$_SESSION['userid'];
  try{
  //на выходе xml с полем error если есть ошибка и полем data с данными в base64
    $response=$client->DoRequest($_POST['jsonrequest']['name'],json_encode($params),json_encode($makros),$_POST['jsonrequest']['outtype'],$_SESSION['baseid']);
  } catch(SoapFault $e)
  {


    $response = $client->__getLastResponse();
    $response = str_replace("&#x1A","",$response);
    $response = str_replace('SOAP-ENV:', '', $response);
	$response = str_replace('SOAP:', '', $response);
    //$response = str_replace("\r\n","",$response);	
//	file_put_contents('resp.xml',$response);
	$xmlDoc = new DOMDocument();
    $xmlDoc->loadXML( $response, LIBXML_PARSEHUGE | LIBXML_NOXMLDECL );
    //$response = simplexml_load_string($response, "SimpleXMLElement");//, LIBXML_PARSEHUGE | LIBXML_PEDANTIC);	  
	
  }
  //$res=//json_decode(json_encode(htmlspecialchars(json_decode($response))),true);	  
  //json_decode(json_encode($response),true);
  print_r($xmlDoc);
  die();
...
Рейтинг: 0 / 0
07.03.2019, 11:42
    #39783451
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
simplexml_load_string xmlsax2characters huge text node out of memory
и?
...
Рейтинг: 0 / 0
07.03.2019, 11:45
    #39783455
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
simplexml_load_string xmlsax2characters huge text node out of memory
а, все, увидел вопрос
...
Рейтинг: 0 / 0
07.03.2019, 11:49
    #39783460
evgen29
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
simplexml_load_string xmlsax2characters huge text node out of memory
в общем суть в том, что simplexml_load_string в моей версии php не понимает теги с двоеточием.
сделал так и далее заработало:
Код: php
1.
2.
3.
4.
5.
    $response = str_replace("&#x1A","",$response);
    $response = str_replace('SOAP-ENV:', '', $response);
	$response = str_replace('SOAP:', '', $response);
	$response = str_replace('NS1:', '', $response);
    $response = str_replace("\r\n","",$response);
...
Рейтинг: 0 / 0
07.03.2019, 11:50
    #39783461
evgen29
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
simplexml_load_string xmlsax2characters huge text node out of memory
evgen29в общем суть в том, что simplexml_load_string в моей версии php не понимает теги с двоеточием.
сделал так и далее заработало:

$response = str_replace("","",$response);
$response = str_replace('SOAP-ENV:', '', $response);
$response = str_replace('SOAP:', '', $response);
$response = str_replace('NS1:', '', $response);
$response = str_replace("\r\n","",$response);
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / simplexml_load_string xmlsax2characters huge text node out of memory / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]