pingScript (исправить)

Статус
В этой теме нельзя размещать новые ответы.

g-prime

איך בין גאָט
Регистрация
11 Авг 2008
Сообщения
759
Реакции
1.082
Есть скрипт отправки пинга в пинг сервисы:
Код:
<?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;
	}
}
?>
[/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:
$pingi_urli = array_map("trim", file("text.txt"));
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху