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

📄 ping.php

📁 一款基于PHP的网络日记程序。WikyBlog支持:多用户的 BLOG
💻 PHP
字号:
<?php/*	Remote Procedure Call	.. we don't want to ping technorati if a file is created by an untrusted user .. 		--> only available with "Selective Blogging"	For More Information		http://www.xmlrpc.com/weblogsCom				Example Response			HTTP/1.0 200 OK 		X-Powered-By: PHP/4.4.2 		Content-Type: text/xml 		Content-Length: 354 		Server: LiteSpeed 		Date: Thu, 09 Nov 2006 07:30:17 GMT 		Connection: close 				<?xml version="1.0"?> 			<methodResponse> 				<params> 					<param> 						<value> 							<struct> 								<member>									<name>flerror</name>										<value>											<boolean>0</boolean>										</value>								</member> 								<member>									<name>message</name>										<value>											<string>Pings being forwarded to 16 services!</string>										</value>								</member> 							</struct> 						</value> 					</param> 				</params> 			</methodResponse>				*/class RPC{		function pingAllUrls($urls){				$urlList = stringToArray($urls);		foreach($urlList as $url){			$url = trim($url);			if( empty($url) ){				continue;			}			$temp = parse_url($url);			if( empty($temp['host']) ){				continue;			}			RPC::pingUrl($url);		}	}	function pingUrl($url){		global $serverName4,$pageOwner,$serverName2;		$newLine = "\r\n";			//		//	Create XML Request		//					//both of these parameters should be safe with character escaping			$blogName = $pageOwner .' - '.$serverName2;			$blogUrl = $serverName4.'/'.$pageOwner['username'];						//xml			$xml = '<?xml version="1.0"?><methodCall><methodName>weblogUpdates.ping</methodName>';			$xml .= '<params><param><value>';			$xml .= $blogName;			$xml .= '</value></param><param><value>';			$xml .= $blogUrl;			$xml .= '</value></param>';			$xml .= '</params></methodCall>';						//header			if( strpos($url,'://') === false){				$url = 'http://'.$url;			}			$pathArray = parse_url($url);						$request = 'POST '.$pathArray['path'].' HTTP/1.0'.$newLine;			$request .= 'User-Agent: WikyBlog'.$newLine;			$request .= 'Host: '.$pathArray['host'].$newLine;			$request .= 'Content-Type: text/xml'.$newLine;			$request .= 'Content-length: '.strlen($xml);			$request .= $newLine.$newLine;			$request .= $xml;		//		//	Send XML		//					$port = 80;			$errNum=null;			$errString=null;			if( isset($pathArray['port']) && !empty($pathArray['port'])){				$port = $pathArray['port'];			}			$handle = fsockopen( $pathArray['host'], $port ,$errNum, $errString,3 );			if(!$handle){				//dies quietly.. should there be a user message?				return false;			}				        fputs($handle, $request);					//		//	Check Response ??		//		do we need to do this for pings?.. only if we're going to warn users about pings that don't work		//		// 		    $gotFirstLine = false;// 		    $gettingHeaders = true;// 		    $all = '';// 		    while (!feof($handle)) {// 		        $line = fgets($handle, 4096);// 		        $all .= $line;// 		        if (!$gotFirstLine) {// 		            // Check line for '200'// 		            if (strstr($line, '200') === false) {// 		                $this->error = new IXR_Error(-32300, 'transport error - HTTP status code was not 200');// 		                return false;// 		            }// 		            $gotFirstLine = true;// 		        }// 		        if (trim($line) == '') {// 		            $gettingHeaders = false;// 		        }// 		        if (!$gettingHeaders) {// 		            $contents .= trim($line)."\n";// 		        }// 		    }//		    message(htmlspecialchars($all));		    	}}

⌨️ 快捷键说明

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