⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 agentxmlclient.inc.php

📁 时代互联短信接口,smsapimode_php_2_3
💻 PHP
字号:
<?
//2005-6-8 kychou
//2006-02-18 xhg for sms
//require_once("../api/xmlbase.inc.php");
class XMLClient
{
	var $responseXML;
	var $sendXML;
	var $DEBUG=0;
	var $serverURL;
	var $XMLType;
	var $VCP;
	var $VCPPassword;

	function getCode()
	{
		$start_pos = strpos($this->responseXML, "<result code=\"");
		return trim(substr($this->responseXML, $start_pos + 14, 4));
	}

	function getMessage()
	{
		return getValue("msg",$this->responseXML);
	}

	function isSuccess()
	{
		return eregi("successfully",$this->responseXML);
	}

	function sendXMLData($XMLDATA)
	{
			$this->sendXML=$XMLDATA;
			$buffer=8192;	//设置缓冲大小
			$timeout=20;	//设置socket连接超时时间
			$this->responseXML="";
			if($this->DEBUG)echo "sendxml:".$XMLDATA;
			$this->serverURL=eregi_replace("^http://","",$this->serverURL);
			$pos=strpos($this->serverURL,"/");
			if($pos>0){
				$deshost=substr($this->serverURL,0,$pos);
				$despath=substr($this->serverURL,$pos);
			}else{
				$deshost=$this->serverURL;
				$despath="/";
			}
			$pos=strpos($deshost,":");
			if($pos>0){
				$port=substr($deshost,$pos+1);
				$deshost=substr($deshost,0,$pos);
			}else $port=80;
			if($this->DEBUG) echo "$deshost:$port:$despath";
			if(strlen($deshost)==0 || strlen($despath)==0 || $port<=0)
			{
				$this->responseXML="HOST:".$deshost."   PORT:".$port."   PATH:".$despath;
				return $this->responseXML;
			}
			$fp =@fsockopen($deshost, $port, $errno, $errstr, $timeout);
			if(!$fp)
			{
				$this->responseXML="unable to connect to ".$deshost.":".$port;
				return $this->responseXML;
			}
			/*
			$out = "POST $despath HTTP/1.1\r\n";
			$out .= "Host: $deshost\r\n";
			$out .= "Content-Length: ".strlen($XMLDATA)."\r\n";
			$out .= "Connection: Close\r\n\r\n";
			*/
			$out=$XMLDATA;
			fputs($fp, $out);
			do {
				$data = fread($fp, $buffer);
				if (strlen($data) == 0) break;
				$contents = $data;
				if (eregi("</scp>", $contents)) break;
			} while(true);
			fclose($fp);
			$this->responseXML=$contents;

			if($this->DEBUG) echo $this->responseXML;
			if(!$this->responseXML) $this->responseXML="NO XML Error,please check the xml which post to Server.";
			return $this->responseXML;
	}

    function toPlain(){
		$contents=trim($this->responseXML);
		$contents=strstr($contents,"<?xml");
		$end=strpos($contents,"</scp>")+strlen("</scp>");
		$contents=substr($contents,0,$end);
		if($contents)	$this->responseXML=$contents;
		return $this->responseXML;
	}

	function sendSCPData($desurl,$XMLDATA){
		 $XMLDATA=$this->toSCPXML($XMLDATA);
         return $this->sendXMLData($XMLDATA);
	}

	function toArray($content="response",$parsetype=0){
		$parser = xml_parser_create();
		xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
		xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
		xml_parse_into_struct($parser,$this->responseXML,$values,$tags);
		xml_parser_free($parser);
		$showMess=XMLtoArray($values,$tags,$content,$parsetype);
		if(!$showMess)	$showMess[Error]=$this->responseXML;
		return $showMess;
	}

	function toSCPXML($CommandXML)
	{
		$cltrid=CltrID();
		$clientid=getENCID($cltrid,$this->VCPPassword);
		$xmlns = $this->getXMLNS();
		$secruser = $this->getSecurityUser();
		$respxml="<?xml version=\"1.0\" encoding=\"GB2312\"?>
		<scp $xmlns>
			<command>
				   $CommandXML
			</command>
			<security>
				$secruser
				<cltrid>$cltrid</cltrid>
				<login>$clientid</login>
		   </security>
		</scp>";
		//格式化XML,以便显示时好看一点
        //$respxml=eregi_replace("\t","    ",$respxml);
		return $respxml;
	}

	function getXMLNS()
	{
		if(strtoupper($this->XMLType)=="SMS"){
			$xmlns = "xmlns=\"urn:mobile:params:xml:ns:scp-1.0\"
			  xmlns:sms=\"urn:todaynic.com:sms\"
			  xmlns:user=\"urn:todaynic.com:user\"";
		}
		else $xmlns = "xmlns=\"urn:scp:params:xml:ns:scp-3.01\"
			  xmlns:host=\"urn:todayisp.com:client\"";
		return $xmlns;
	}

	function getSecurityUser()
	{
		if(strtoupper($this->XMLType)=="SMS"){
			$secruser = "<smsuser>$this->VCP</smsuser>";
		}
		else $secruser = "<vcpuser>$this->VCP</vcpuser>";
		return $secruser;
	}

	function getUserInfo($contactI)
	{
		$sendxml="<action>user:detail</action>
					<userid>$contactI[userid]</userid>
					<userpassword>$contactI[userpassword]</userpassword>";
		$this->sendSCPData($this->serverURL,$sendxml);
		$this->toPlain();
		return $this->responseXML;
	}

}
?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -