URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 2847
[ Назад ]

Исходное сообщение
"Подскажите как быть "

Отправлено NoNaMe , 26-Апр-04 12:25 
Народ подскажите вот есть скрипт

#!/usr/bin/perl

use IO::Socket;
print "Content-type: text/html\n\n";

$sock=IO::Socket::INET->new(PeerAddr => "***.ru",
                            PeerPort => 80,
                            Proto    => "tcp",
                            Type     => SOCK_STREAM) || die "can't connect\n";

print $sock "GET ******* HTTP/1.1\n";
print $sock "Accept: */*\n";
print $sock "Referer: http://www.yandex.ru/\n";
print $sock "Accept-Language: ru\n";
print $sock "Accept-Encoding: gzip, deflate\n";
print $sock "User-Agent: $ENV{HTTP_USER_AGENT}\n";
print $sock "Host: *******.ru\n";
print $sock "Connection: close\n\n";
undef $/;
$html=<$sock>;
print $html;
close($sock);

Все отрабатывает прекрасно но вот как мне внего добавить что бы из результата он выдавал только допустип с 5 по 10 строку или 3 5 8 строки


Содержание

Сообщения в этом обсуждении
"Подскажите как быть "
Отправлено alchie , 26-Апр-04 12:30 
>Народ подскажите вот есть скрипт
>

>Все отрабатывает прекрасно но вот как мне внего добавить что бы из
>результата он выдавал только допустип с 5 по 10 строку или
>3 5 8 строки

а если заменить
undef $/;
$html=<$sock>;

на

@html=<$sock>;

и работать уже с массивом строк?


"Подскажите как быть "
Отправлено NoNaMe , 26-Апр-04 12:32 
>>Народ подскажите вот есть скрипт
>>
>
>>Все отрабатывает прекрасно но вот как мне внего добавить что бы из
>>результата он выдавал только допустип с 5 по 10 строку или
>>3 5 8 строки
>
>а если заменить
>undef $/;
>$html=<$sock>;
>
>на
>
>@html=<$sock>;
>
>и работать уже с массивом строк?


Может и можно но полный 0 в этом вот прошу может кто подскажет как более мение правильно зделать и примерчик маленький кинет


"Подскажите как быть "
Отправлено alchie , 26-Апр-04 12:35 
>>>Народ подскажите вот есть скрипт
>>>
>>
>>>Все отрабатывает прекрасно но вот как мне внего добавить что бы из
>>>результата он выдавал только допустип с 5 по 10 строку или
>>>3 5 8 строки
>>
>>а если заменить
>>undef $/;
>>$html=<$sock>;
>>
>>на
>>
>>@html=<$sock>;
>>
>>и работать уже с массивом строк?
>
>
>Может и можно но полный 0 в этом вот прошу может кто
>подскажет как более мение правильно зделать и примерчик маленький кинет

после этого добавь
# 5 - 10 lines
print @html[4..9];
#3,5,8 lines
print @html[2,4,7];


"Подскажите как быть "
Отправлено NoNaMe , 26-Апр-04 12:38 
спасибо попробую

"Подскажите как быть "
Отправлено NoNaMe , 26-Апр-04 17:44 
Не непроходит просто нечего не выдает ==(

"Подскажите как быть "
Отправлено NoNaMe , 26-Апр-04 17:48 
Он показывает все если указывать просто print @html; если ставлю с параметрами print @html[1..7]; то показывает пустоту

"Подскажите как быть "
Отправлено alchie , 27-Апр-04 03:05 
>Он показывает все если указывать просто print @html; если ставлю с параметрами
>print @html[1..7]; то показывает пустоту


undef $/ убери


"Подскажите как быть "
Отправлено NoNaMe , 27-Апр-04 08:57 
Да убрал все заработало но перестала работать выборка

($c1, $c2, @shit) = split /coeditor.cgi>/, $html;
($D1, @shit1) = split /<hr/, $c2;  

как тогда быть ?


"Подскажите как быть "
Отправлено alchie , 27-Апр-04 14:50 
>Да убрал все заработало но перестала работать выборка
>
>
>
>($c1, $c2, @shit) = split /coeditor.cgi>/, $html;
>($D1, @shit1) = split /<hr/, $c2;
>
>как тогда быть ?

решение попроще - хранить страничку в двух переменных
undef $/;
$html=<$sock>;
@html=split /\n/, $html;