Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Переменная онлайн

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: Переменная онлайн
Кубик
Отправлено: 06 Марта, 2017 - 16:29:19
Post Id


Новичок


Покинул форум
Сообщений всего: 36
Дата рег-ции: Март 2017  


Помог: 0 раз(а)




Как сделать повтор кода, пока $geim[8] которая меняется на странице онлайн, не станет равна нужному мне значению $ge = '0:0'

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. preg_match('#<div style=(.*?)><a href=(.*?)><span class=(.*?)></span></a></div><br><font class=txtmed  style=(.*?)>(.*) ((.*)) (.*)</font></b></font></div>#',$text0,$geim);
  4.         $ge = '0:0';
  5.  
  6.  
 
 Top
Кубик
Отправлено: 06 Марта, 2017 - 19:19:35
Post Id


Новичок


Покинул форум
Сообщений всего: 36
Дата рег-ции: Март 2017  


Помог: 0 раз(а)




так, только цикл не останавливается когда $ge = $geim[8], почему ?

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. for ($i = 0; $ge = $geim[8]; $i++)
  4.             {
  5.             $ch0 = curl_init($sobt[0]);
  6.             curl_setopt($ch0, CURLOPT_HEADER, true);
  7.             curl_setopt($ch0, CURLOPT_RETURNTRANSFER, true);
  8.             curl_setopt($ch0, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko');
  9.             $text0 = curl_exec($ch0);
  10.             curl_close($ch0);
  11.             preg_match('#<div style=(.*?)><a href=(.*?)><span class=(.*?)></span></a></div><br><font class=txtmed  style=(.*?)>(.*) ((.*)) (.*)</font></b></font></div>#',$text0,$geim);
  12.             //alert($geim[8]);
  13.             }
  14.  
  15.  
 
 Top
Кубик
Отправлено: 06 Марта, 2017 - 21:45:42
Post Id


Новичок


Покинул форум
Сообщений всего: 36
Дата рег-ции: Март 2017  


Помог: 0 раз(а)




вернее, мне нужен цикл while.
сначала работал, потом перестал


PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3.             $ge = '0:0';
  4.             while ($ge = $geim[8])
  5.                 {
  6.                 $ch0 = curl_init($sobt[0]);
  7.                 curl_setopt($ch0, CURLOPT_HEADER, true);
  8.                 curl_setopt($ch0, CURLOPT_RETURNTRANSFER, true);
  9.                 curl_setopt($ch0, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko');
  10.                 $text0 = curl_exec($ch0);
  11.                 curl_close($ch0);
  12.                 preg_match('#<div style=(.*?)><a href=(.*?)><span class=(.*?)></span></a></div><br><font class=txtmed  style=(.*?)>(.*) ((.*)) (.*)</font></b></font></div>#',$text0,$geim);
  13.                 $ge++;
  14.                 //alert($geim[8]);
  15.                 }
  16.  
  17.  
 
 Top
Строитель Модератор
Отправлено: 06 Марта, 2017 - 21:54:01
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Кубик, чем дальше, тем всё менее понятно, что же вам требуется получить в итоге?
Кубик пишет:
Как сделать повтор кода, пока $geim[8] которая меняется на странице онлайн, не станет равна нужному мне значению $ge = '0:0'
Можно написать рекурсивную функцию, которая будет вызываться до момента, когда $ge станет равна нулю. Или что вам нужно?
 
 Top
Кубик
Отправлено: 06 Марта, 2017 - 21:58:28
Post Id


Новичок


Покинул форум
Сообщений всего: 36
Дата рег-ции: Март 2017  


Помог: 0 раз(а)




исполнить код дальше, только тогда, когда $geim[8] (меняется на странице онлайн) будет равна постоянной $ge = '0:0';
 
 Top
Строитель Модератор
Отправлено: 06 Марта, 2017 - 22:37:53
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Кубик пишет:
исполнить код дальше, только тогда, когда $geim[8] (меняется на странице онлайн) будет равна постоянной $ge = '0:0';
Ну вот вам пример
Спойлер (Отобразить)
 
 Top
Кубик
Отправлено: 06 Марта, 2017 - 23:05:56
Post Id


Новичок


Покинул форум
Сообщений всего: 36
Дата рег-ции: Март 2017  


Помог: 0 раз(а)




Выдаёт;

Uncaught Error: Call to undefined function app\forms\repeatProcess() in res://app/forms/MainForm.php on line 75, position 22

А из моего примера не получится ?

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. if ($geim[8] != $ge)
  4.             {
  5.             while ($ge = $geim[8])
  6.                 {
  7.                 $ch0 = curl_init($sobt[0]);
  8.                 curl_setopt($ch0, CURLOPT_HEADER, true);
  9.                 curl_setopt($ch0, CURLOPT_RETURNTRANSFER, true);
  10.                 curl_setopt($ch0, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko');
  11.                 $text0 = curl_exec($ch0);
  12.                 curl_close($ch0);
  13.                 preg_match('#<div style=(.*?)><a href=(.*?)><span class=(.*?)></span></a></div><br><font class=txtmed  style=(.*?)>(.*) ((.*)) (.*)</font></b></font></div>#',$text0,$geim);
  14.                 $ge++;
  15.                 //alert($geim[8]);
  16.                 }
  17.             }
  18.  
  19.  
 
 Top
Строитель Модератор
Отправлено: 06 Марта, 2017 - 23:15:29
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Кубик пишет:
Call to undefined function app\forms\repeatProcess()
Похоже что вы код не полностью скопировали.
Кубик пишет:
А из моего примера не получится ?
А какие значения в переменных $geim[8] и $ge ?
 
 Top
Кубик
Отправлено: 06 Марта, 2017 - 23:24:21
Post Id


Новичок


Покинул форум
Сообщений всего: 36
Дата рег-ции: Март 2017  


Помог: 0 раз(а)




<pre>string(3) "0:0"
</pre><pre>string(4) "0:15"
(Добавление)
код не весь
 
 Top
Строитель Модератор
Отправлено: 06 Марта, 2017 - 23:42:07
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Кубик, теоретически вроде бы так должно работать (проверить не на чём)
Спойлер (Отобразить)
В результат работы функции я включил массив из preg_match() $geim. Или нужна переменная $text0 ?
 
 Top
Кубик
Отправлено: 06 Марта, 2017 - 23:53:28
Post Id


Новичок


Покинул форум
Сообщений всего: 36
Дата рег-ции: Март 2017  


Помог: 0 раз(а)




да, там массив ссылок
 
 Top
Строитель Модератор
Отправлено: 06 Марта, 2017 - 23:56:58
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Кубик пишет:
да, там массив ссылок
Ну тогда надо в строке $ch0 = curl_init($sobt[0]); менять ключи массива на каждой итерации. Сейчас попробую переписать код.
(Добавление)
Спойлер (Отобразить)
 
 Top
Кубик
Отправлено: 07 Марта, 2017 - 00:08:59
Post Id


Новичок


Покинул форум
Сообщений всего: 36
Дата рег-ции: Март 2017  


Помог: 0 раз(а)




сейчас проверю а тот ошибку выдал;

Uncaught Error: Call to undefined function app\forms\repeatProcess() in res://app/forms/MainForm.php on line 71, position 18
 
 Top
Строитель Модератор
Отправлено: 07 Марта, 2017 - 00:18:20
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Кубик пишет:
сейчас проверю а тот ошибку выдал;

Uncaught Error: Call to undefined function app\forms\repeatProcess()
Я выше уже писал об этой ошибке. Могу только добавить, что описание функции должно быть прописано в пространстве app\forms\.
 
 Top
Кубик
Отправлено: 07 Марта, 2017 - 00:36:15
Post Id


Новичок


Покинул форум
Сообщений всего: 36
Дата рег-ции: Март 2017  


Помог: 0 раз(а)




не заработало, понятно, спасибо
(Добавление)
добил свой пример, работает как надо, только проблема в запросах, 2,3 запроса в секунду за 10 минут будет слишком много.

как можно притормозить цикл ?


PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. if ($geim[8] != '0:0')
  4.             {
  5.             while ($geim[8] != '0:0')
  6.                 {
  7.                 $ch0 = curl_init($sobt[0]);
  8.                 curl_setopt($ch0, CURLOPT_HEADER, true);
  9.                 curl_setopt($ch0, CURLOPT_RETURNTRANSFER, true);
  10.                 curl_setopt($ch0, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko');
  11.                 $text0 = curl_exec($ch0);
  12.                 curl_close($ch0);
  13.                 preg_match('#<div style=(.*?)><a href=(.*?)><span class=(.*?)></span></a></div><br><font class=txtmed  style=(.*?)>(.*) ((.*)) (.*)</font></b></font></div>#',$text0,$geim);
  14.                 }
  15.             alert('УРА');
  16.             }
  17.  
  18.  

(Отредактировано автором: 07 Марта, 2017 - 01:52:30)

 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB