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

Тема в разделе "Как сделать...", создана пользователем g-prime, 11 июл 2009.

Статус темы:
Закрыта.
  1. g-prime

    g-prime איך בין גאָט

    Регистр.:
    11 авг 2008
    Сообщения:
    779
    Симпатии:
    1.131
    Есть скрипт отправки пинга в пинг сервисы:
    Код:
    <?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"
    );
    Мы успешно получаем ответ от пинг сервиса, типо:
    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.

    А когда использую такую конструкцию:
    $pingi_urli = file("text.txt");
    В ответ я получаю:
    Length Required
    POST requests require a Content-length header.

    и прочую чушь....

    За ответ заранее спасибо
     
  2. masima

    masima

    Регистр.:
    9 мар 2007
    Сообщения:
    732
    Симпатии:
    1.338
    тебе надо прочитать из файла и разбить содержимое в массиве построчно ;)
     
    g-prime нравится это.
  3. Zerrikanez

    Zerrikanez Прохожие

    PHP:
    $pingi_urli array_map("trim"file("text.txt"));
     
Статус темы:
Закрыта.