Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   perl allow_url_fopen = On (http://forum.oszone.net/showthread.php?t=68392)

E-mail 11-07-2006 21:12 460381

perl allow_url_fopen = On
 
Люди, подскажите, пожалуйста,

как короче всего с помощью перла можно вывести контент удаленной странички (с другого хоста)

я обычно если и писал на перлЕ то локально, ужасный, старый язык, но есть в нем и плюсы, но я не об том,
в php например для того чтобы require работал не только локально но и с удаленными хостами, достаточно в настройках php.ini поправить директиву allow_url_fopen = On (она таковая по умолчанию), а как сделать подобное в перле? или другие альтернативы...

на данный момент быстрее способа, кроме как делать запрос через сокеты, я себе не вижу на перле...

знатоки перла - ваш выход :D

mar 11-07-2006 22:35 460417

короче, поторяю кратко то, что было в аське :
- ссылка на lama book
- а вот ссылка на работу с lwp
и обещаный код (написанный очень давно, так что не взыщите :)) (лишнее вырезать не буду, уберу только адреса. Там в цикле при чтении поступающего идет обработка содержимого)
Код:

#!/usr/local/bin/perl5
use IO::Socket;

#$informer="informer";
$informer="каталог_куда_пишем";
$doc="/types/info.js?value=26063&type=1_1";
$remote = IO::Socket::INET->new (Proto=> "tcp",
                                PeerAddr => "адрес",
                                PeerPort => "порт",
                                ) or die "cannot connect to http port";
print $remote "GET $doc HTTP/1.0\n\n";
$m="";
$start=0;
open(QQ, ">$informer")|| die("cannot print to data's file $fname");
while (<$remote>)
 {
 if($_ eq "\n") {$start=1;}
 if($start==1) {#chomp(); #$m=$_;}
  $m=$_;
  ## тут меняем все и вся

  print QQ $m || die("cannot write to file $fname");
  }#fi
 }
close (QQ);
close $remote;
#print "<\/body><\/html>";



Время: 08:55.

Время: 08:55.
© OSzone.net 2001-