PHP - заменить предупреждение с ошибкой (с использованием мыла)

0

Я использую SOAP для получения данных с некоторого сервера (данные поступают в.xml). Но иногда сервер SOAP не работает, и мне нужно отобразить некоторое сообщение об ошибке, а не:

Warning: simplexml_load_string(): Entity: line 2: parser error : Start tag expected, '<' not found in /var/www/class/data2.php on line 619 Warning: simplexml_load_string(): in /var/www/class/data2.php on line 619 Warning: simplexml_load_string(): ^ in /var/www/class/data2.php 

Мой код:

$client = new SOAPClient ( 'link.wsdl' ); // initiate new SoapClient
$password ['_'] = 'PASSWORD'; // password for authenticate_user function in SoapHeader
$encoded = new SoapVar ( $password, SOAP_ENC_OBJECT ); // make SoapVariable out of $password
$header = new SoapHeader ( 'http://soapinterop.org/echoheader/', 'authenticate_user', $encoded ); // put authenticate_user method, and password in header
$client->__setSoapHeaders ( $header ); // set SoapHeader
$response = $client->get_details ($this->vin); // calling get_details with the vin given in the form field
$xml = simplexml_load_string ( $response ); // converting the response string to xml
$json = json_encode ( $xml ); // converting to an array in to easy steps (step 1)
$array = json_decode ( $json, TRUE ); // step 2

Что я хочу: Замените предупреждающее сообщение на что-то вроде: "Эта услуга временно недоступна"

Теги:
soap

2 ответа

1
Лучший ответ

После

$xml = simplexml_load_string ( $response );

проверить, если

$xml === false

и соответственно установите соответствующее сообщение об ошибке

http://php.net/manual/en/function.simplexml-load-string.php

  • 0
    Спасибо :) Это было ai Ищу. Я пытаюсь написать что-то похожее, но мне не удалось :(
1

Как вы можете прочитать в руководстве функцию simplexml_load_string:

Возвращает объект класса SimpleXMLElement со свойствами, содержащими данные, хранящиеся в документе xml, или FALSE при сбое.

Так что просто проверьте, не сработает ли он, и если он повторит эхо. Эта услуга временно недоступна

Чтобы избавиться от этого предупреждения, ini_set('display_errors', '0'); внимание на ini_set('display_errors', '0'); по производству

  • 0
    Хорошая точка зрения, спасибо. Палец вверх

Ещё вопросы

Сообщество Overcoder
Наверх
Меню