g-prime
איך בין גאָט
- Регистрация
 - 11 Авг 2008
 
- Сообщения
 - 759
 
- Реакции
 - 1.082
 
- Автор темы
 - #1
 
Есть скрипт отправки пинга в пинг сервисы:
	
	
		
			
	
	
	
		
[/spoil]
Так, вот как исправить скрипт, чтобы при взятии списка пинг сервисов из TXT файла он не выдавал ошибок(а именно пинг сервис).
При такой конструкции:
$pingi_urli = array(
"http://blogsearch.google.com/ping/RPC2",
"http://blogpeople.net/servlet/weblogUpdates",
"http://ping.blogs.yandex.ru/RPC2"
);
Мы успешно получаем ответ от пинг сервиса, типо:
[spoil]HTTP/1.0 200 OK Content-Type: text/xml; charset=ISO-8859-1 Set-Cookie: PREF=ID=f46e5d596c2e2a9e:TM=1247321173:LM=1247321173:S=vv8I6Jch4LIjEstu; expires=Mon, 11-Jul-2011 14:06:13 GMT; path=/; domain=.google.com Date: Sat, 11 Jul 2009 14:06:13 GMT Server: psfe Content-Length: 305 Expires: Sat, 11 Jul 2009 14:06:13 GMT Cache-Control: private flerror0 messageThanks for the ping.
[/spoil]
А когда использую такую конструкцию:
$pingi_urli = file("text.txt");
В ответ я получаю:
[spoil]
Length Required
POST requests require a Content-length header.
		
	
и прочую чушь....
За ответ заранее спасибо
	
		
			
		
		
	
				
			
		Код:
	
	<?php
set_time_limit(0);
$pingi_urli = array(
"http://blogsearch.google.com/ping/RPC2",
"http://blogpeople.net/servlet/weblogUpdates",
"http://ping.blogs.yandex.ru/RPC2"
);
foreach($pingi_urli as $i=>$url_ping) {
	$url_ping=$pingi_urli[$i];
	echo "<br/><font color=blue>url_ping[$i] = $url_ping ...</font><br/>\n";flush();
	ping ($url_ping, 'TEST', 'http://yandex.ru/');
}
function ping ($url_ping='', $name = 'TEST', $url = 'http://yandex.ru/') 
{
	$url_ping=str_replace('http://','',$url_ping);
	if ($firstslash = strpos($url_ping, "/")) {
		$p_host = substr($url_ping, 0, $firstslash);
		$p_file = substr($url_ping, $firstslash, strlen($url_ping) - $firstslash);
	}
	if($ping = @fsockopen($p_host, 80, $errno, $errstr, 15)) {
		$p = 
		"<?xml version=\"1.0\" encoding=\"WINDOWS-1251\"?>\n" .
		"<methodCall>\n" .
		"\t<methodName>weblogUpdates.ping</methodName>\n" .
		"\t<params>\n" .
		"\t\t<param>\n" .
		"\t\t\t<value>". $name ."</value>\n" .
		"\t\t</param>\n" .
		"\t\t<param>\n" .
		"\t\t\t<value>". $url ."</value>\n" .
		"\t\t</param>\n" .
		"\t</params>\n" .
		"</methodCall>";
		$pl=strlen($p);
		fputs ($ping, "POST ".$p_file." HTTP/1.0\r\n".
		"User-Agent: MYBlogPing\r\n".
		"Host: ".$p_host."\r\n".
		"Content-Type: text/xml\r\n".
		"Content-length: $pl\r\n\r\n");
		fputs ($ping, $p);
		$page='';
		while(!feof($ping)) {
			$page.=fgets($ping);
		}
		echo "<br/><font color=green>".$page."</font><br/>\n";
		echo "endddd!!!!<br/><br/>\n"; 
		flush();
		
		fclose ($ping);
		return true;
	} else {
		echo "<br/><font color=red>ERROR $p_host - $errno $errstr</font><br/>\n";
		return false;
	}
}
?>
	Так, вот как исправить скрипт, чтобы при взятии списка пинг сервисов из TXT файла он не выдавал ошибок(а именно пинг сервис).
При такой конструкции:
$pingi_urli = array(
"http://blogsearch.google.com/ping/RPC2",
"http://blogpeople.net/servlet/weblogUpdates",
"http://ping.blogs.yandex.ru/RPC2"
);
Мы успешно получаем ответ от пинг сервиса, типо:
[spoil]HTTP/1.0 200 OK Content-Type: text/xml; charset=ISO-8859-1 Set-Cookie: PREF=ID=f46e5d596c2e2a9e:TM=1247321173:LM=1247321173:S=vv8I6Jch4LIjEstu; expires=Mon, 11-Jul-2011 14:06:13 GMT; path=/; domain=.google.com Date: Sat, 11 Jul 2009 14:06:13 GMT Server: psfe Content-Length: 305 Expires: Sat, 11 Jul 2009 14:06:13 GMT Cache-Control: private flerror0 messageThanks for the ping.
[/spoil]
А когда использую такую конструкцию:
$pingi_urli = file("text.txt");
В ответ я получаю:
[spoil]
Length Required
POST requests require a Content-length header.
За ответ заранее спасибо
				