示例#1
0
 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);
 }