function &getTransport($url, $encoding = SOAP_DEFAULT_ENCODING) { $urlparts = @parse_url($url); if (!$urlparts['scheme']) { return SOAP_Base_Object::_raiseSoapFault("Invalid transport URI: {$url}"); } if (strcasecmp($urlparts['scheme'], 'mailto') == 0) { $transport_type = 'SMTP'; } else { if (strcasecmp($urlparts['scheme'], 'https') == 0) { $transport_type = 'HTTP'; } else { /* handle other transport types */ $transport_type = strtoupper($urlparts['scheme']); } } $transport_include = 'SOAP/Transport/' . $transport_type . '.php'; $res = @(include_once $transport_include); if (!$res && !in_array($transport_include, get_included_files())) { return SOAP_Base_Object::_raiseSoapFault("No Transport for {$urlparts['scheme']}"); } $transport_class = "SOAP_Transport_{$transport_type}"; if (!class_exists($transport_class)) { return SOAP_Base_Object::_raiseSoapFault("No Transport class {$transport_class}"); } return new $transport_class($url, $encoding); }
public static function getTransport($url, $encoding = SOAP_DEFAULT_ENCODING) { $urlparts = @parse_url($url); if (!$urlparts['scheme']) { return SOAP_Base_Object::_raiseSoapFault("Invalid transport URI: {$url}"); } if (strcasecmp($urlparts['scheme'], 'mailto') == 0) { $transport_type = 'SMTP'; } elseif (strcasecmp($urlparts['scheme'], 'https') == 0) { $transport_type = 'HTTP'; } else { /* Handle other transport types */ $transport_type = strtoupper($urlparts['scheme']); } $transport_class = "SOAP_Transport_{$transport_type}"; if (!class_exists($transport_class)) { if (!@(include_once 'SOAP/Transport/' . basename($transport_type) . '.php')) { return SOAP_Base_Object::_raiseSoapFault("No Transport for {$urlparts['scheme']}"); } } if (!class_exists($transport_class)) { return SOAP_Base_Object::_raiseSoapFault("No Transport class {$transport_class}"); } return new $transport_class($url, $encoding); }