note 86521 added to book.soap

From: Date: Wed, 22 Oct 2008 22:34:51 +0000
Subject: note 86521 added to book.soap
Groups: php.notes 
Request: Send a blank email to php-notes+get-145620@lists.php.net to get a copy of this message
My code below doesn't allow for any empty strings, so it's wrong, here's a better solution: class XSoapClient extends SoapClient { const XSI_NS = "http://www.w3.org/2001/XMLSchema-instance"; const _NULL_ = "xxx_replacedduetobrokephpsoapclient_xxx"; protected $mustParseNulls = false; public function __doRequest($request, $location, $action, $version, $one_way = null) { if($this->mustParseNulls) { $this->mustParseNulls = false; $request = preg_replace('/<ns1:(\w+)>'.self::_NULL_.'<\/ns1:\\1>/', '<ns1:$1 xsi:nil="true"/>', $request, -1, &$count); if ($count > 0) { $request = preg_replace('/(<SOAP-ENV:Envelope )/', '\\1 xmlns:xsi="'.self::XSI_NS.'" ', $request); } } return parent::__doRequest($request, $location, $action, $version, $one_way); } public function __call($method, $params) { foreach($params as $k => $v) { if($v === null) { $this->mustParseNulls = true; $params[$k] = self::_NULL_; } } return parent::__call($method, $params); } } ---- Server IP: 64.71.164.2 Probable Submitter: 65.44.113.2 ---- Manual Page -- http://www.php.net/manual/en/book.soap.php Edit -- https://master.php.net/note/edit/86521 Del: integrated -- https://master.php.net/note/delete/86521/integrated Del: useless -- https://master.php.net/note/delete/86521/useless Del: bad code -- https://master.php.net/note/delete/86521/bad+code Del: spam -- https://master.php.net/note/delete/86521/spam Del: non-english -- https://master.php.net/note/delete/86521/non-english Del: in docs -- https://master.php.net/note/delete/86521/in+docs Del: other reasons-- https://master.php.net/note/delete/86521 Reject -- https://master.php.net/note/reject/86521 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#145620) next »