HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 16.04.2009, 21:46
ph1l1ster
Постоянный
Регистрация: 11.03.2008
Сообщений: 347
Провел на форуме:
2075230

Репутация: 462
По умолчанию

Код:
->as_string;
Зачем ещё заголовками голову морочать
Достаточно и

Код:
->content;
Цитата:
если в строке ищешь нужное с помощью регулярки где находится несколько правильных результатов как их выводить все?)
так лучше:
Код:
@cont = $get->content =~ //g;
print join "\n", @cont;
 
Ответить с цитированием

  #2  
Старый 17.04.2009, 17:26
j0ker13
Участник форума
Регистрация: 28.07.2008
Сообщений: 199
Провел на форуме:
861008

Репутация: 58
По умолчанию

спс всем
воспользовался этим
Цитата:
@cont = $get->content =~ //g;
print join "\n", @cont;
накопились еще некоторые вопросы)
вывод в консоль происходит только после выполнения скрипта
можно ли заставить не буферизировать данные а сразу выводить?)
типа аналога flush в пхп)
 
Ответить с цитированием

  #3  
Старый 17.04.2009, 17:55
Kaimi
Познавший АНТИЧАТ
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


По умолчанию

$|=1; в начале скрипта добавь
 
Ответить с цитированием

  #4  
Старый 18.04.2009, 19:58
KrafT
Познающий
Регистрация: 29.11.2004
Сообщений: 80
Провел на форуме:
479552

Репутация: 6
По умолчанию

У меня такая проблема. Есть скрипт. Если он отрпавляет сообщение тому ID которого несушествует то произходит crash перла. Предпологаю что ето из-за того что скрипт неможет закончить свою задачу. Как с этим боротся?
 
Ответить с цитированием

  #5  
Старый 18.04.2009, 21:27
TheSoul
Познающий
Регистрация: 12.11.2007
Сообщений: 94
Провел на форуме:
4789789

Репутация: 71
По умолчанию

Цитата:
Сообщение от KrafT  
отрпавляет сообщение тому ID которого несушествует то произходит crash перла
А если проверку сделать ? если есть то отправил если нет то берет другой id... лучше конечно чтобы код выложил.
 
Ответить с цитированием

  #6  
Старый 18.04.2009, 23:32
KrafT
Познающий
Регистрация: 29.11.2004
Сообщений: 80
Провел на форуме:
479552

Репутация: 6
По умолчанию

Код:
use warnings;
use LWP::UserAgent;
use HTTP::Cookies;
use threads;
use threads::shared;

my $threads = 1;
my $username = '';
my $password = '';
my $msg = '...';

open BASE, '<base.txt' || die "$!\n";
chomp (my @base : shared = <BASE>);
close BASE;


my $ua = LWP::UserAgent->new;
my $cookies = HTTP::Cookies->new;
$ua->cookie_jar($cookies);

$ua->post('http://toodoo.ru/account/login',
					{
					email => $username,
					password => $password})->as_string;

for(0..$threads) {$trl[$_] = threads->create(\&send, $_);}
for(@trl) { $_->join; }

sub send {
while (1) {
my $id = shift @base;
return if (!$id);

$ua->post('http://toodoo.ru/inbox/compose',
					{
					user_id => $id,
					message_text => $msg})->as_string;
	print "$id\n";
	sleep (1);	
	}
}
 
Ответить с цитированием

  #7  
Старый 18.04.2009, 20:18
Kaimi
Познавший АНТИЧАТ
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


По умолчанию

Код покажи, иначе непонятно из-за чего такое происходит
 
Ответить с цитированием

  #8  
Старый 26.04.2009, 16:19
j0ker13
Участник форума
Регистрация: 28.07.2008
Сообщений: 199
Провел на форуме:
861008

Репутация: 58
По умолчанию

как правильно разделить работу скрипта на потоки если его работа связана с увеличением одного числа
пример:
PHP код:
$thr=5;
for (
$t=1;$t<4000;$t=$t+5){
for(
0..$thr) {
   
$trl[$_] = threads->create(\&func);
}
for(
0..$thr) {
   
$trl[$_]->join;
}}
func{
$t++;
....

в func работа с этим числом(а точнее дамп таблы через лимит mysql)
или так?
PHP код:
@arr=(1..4000);
while(@
arr){
for(
0..$thr) {
   
$trl[$_] = threads->create(\&func);
}
for(
0..$thr) {
   
$trl[$_]->join;
}}
}
func {
$t=shift(@arr);
...

оба способа работают но жутко тормозят. первый сжирает много памяти... или как оптимизировать хоть один? или есть более красивее варианты?
 
Ответить с цитированием

  #9  
Старый 26.04.2009, 16:33
Kaimi
Познавший АНТИЧАТ
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


По умолчанию

Попробуй типа
PHP код:
use warnings;
use 
threads;
use 
threads::shared;

my $tn 5;
my @trl = ();

my $start shared 1;
my $end 4000;

for(
0..$tn-1) { $trl[$_] = threads->create(\&func$_) }
for(@
trl)   { $_->join }

sub func
{
 while(
$start $end)
    {
     {
lock($start); $start++;} print $start."\n";
    }

 
Ответить с цитированием

  #10  
Старый 26.04.2009, 16:55
j0ker13
Участник форума
Регистрация: 28.07.2008
Сообщений: 199
Провел на форуме:
861008

Репутация: 58
По умолчанию

2Kaimi
работает но даже с запросами, $start идет по порядку...
хотя netstat показывает пять соединений у перла)
и вроде не грузит ни проц ни память)
и $end разве не нада расшаривать?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 5421 21.04.2026 07:37
[php] Новичкам: задаем вопросы _Great_ PHP 16396 17.06.2010 21:19
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.