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.
За ответ заранее спасибо