Циклы в скриптах XHE

Итак, у вас есть простой скрипт, который вы хотели бы запускать в цикле.

Первый способ зациклить ваш XHE скрипт это воспользоваться расписанием скриптов. В программе есть настройки, которые позволяют запускать скрипт раз в минуту, раз в 5 минут и т.д. Это пожалуй самый простой способ, но у этого способа есть существенные минусы - например если нужно читать из файла какие-либо данные, то придётся хранить индекс прочитаной строки, где то в отдельном файле и потом подставлять его в скрипт. Согласитесь это не очень удобно.

Вместо этого можно организовать цикл основанный на чтении данных из файла. Предположем у нас есть некий файл с проксями "proxy.txt", из которого нам нужно взять прокси подставить его в скрипт и перейти на какой то сайт. При этом, как только мы подставим все прокси из файла скрипт должен остановиться. Для этого первым делом мы получим прокси из файла в массив следующим кодом $proxies= file("proxy.txt"); . Теперь когда у нас все прокси полученны в массив делаем цикл for на основе этого массива следующим кодом for($i=0;$i<count($proxies);$i++) - где count($proxies) - это количество элементов в массиве. В результате у нас получается следующий код скрипте:


<?php
// получить прокси из файла в массив
$proxiesfile("proxy.txt");
// цикл пройтись по всем прокси в массиве
for($i=0;$i<count($proxies);$i++)
{
   
// получить прокси из массива
   
$proxy =  $proxies[$i];
   
// задать прокси браузеру
   
$browser->enable_proxy("all connections",$proxy); 
   
// перейти на сайт проверки ip
   
$browser->navigate('2ip.ru');
   
$browser->wait_for(60,0);

   
// идём куда то дальше и что то делаем ещё ... 
}
?>

Если нужно что бы цикл выполнил действия заданое количество раз, напиример 10, то тогда код в скрипте будет выглядить следующим образом:


<?php
// выполнить цикл 10 раз
for($i=0;$i<10;$i++)
{
   
// перейти на сайт google.com
   
$browser->navigate('google.com');
   
$browser->wait_for(60,0);

   
// идём куда то дальше и что то делаем ещё ... 
}

?>

Ещё один способ организовать цикл в скрипте это использовать while. Например нам нужно подобрать логин на сайт, который ещё не занят. При этом когда в поле логина вводим значение на странице регистрации появляется текст "is already taken". Для начала после заполнения поля логина сделаем проверку есть ли этот текст на странице следующим кодом $ind = strpos($webpage->get_body(),"is already taken"); - где strpos это функция получения индекса заданого текста в строке, если строки нет то возвращает false; $webpage->get_body() - функция получения body текущей страницы в браузере;. Теперь мы организовываем цикл на основе этого индекса следующим кодом while($ind!==false) - то есть выполнять действие до тех пор пока индеск равен false. В итоге имеем следующий код в скрипте:


<?php 
// перед этим переходим на страницу регистрации и заполняем поле login
 
// проверим не появился ли текст сигнализирующий о том что логин уже занят
$ind strpos($webpage->get_body(),"is already taken");
// делаем цикл - если не нашли нужный текст повторяем операцию заново
while($ind!==false)
{
  
// тут задаём новое значение в поле логина
 
  // проверяем опять не появился ли текст после ввода нового логина в поле
  
$ind strpos($webpage->get_body(),"is already taken");
}
?>


С помощью for и while можно создавать бесконечные циклы - while(true) или for ($i = 1;;$i++) . В скрипте это будет выглядеть так:


<?php 
// делаем бесконечный цикл while 
while(true)
{
  
// что то делаем...
  
  // условие для выхода из бесконечного цикла
  
if(какое то условие)
     break;
}
// бесконечный цикл for
for ($i 1;;$i++) 
{
  
// что то делаем.... 
  
  // условие для выхода из бесконечного цикла
  
if(какое то условие)
     break;
}
?>


Оператор break служит для выхода из цикла.

Более подробно про циклы в php можно найти тут www.phpfaq.ru/php5.ru/study/chapter3.html#loop

Наши контакты

Выполняем разработку скриптов под XHE на заказ.

Конфиденциальность и не использование скриптов в своих целях гарантируем!

ICQ : 625657402

Email : order@x-scripts.com

ICQ часто теряет сообщения. Если Вам не ответили, пожалуйста, пишите нам на e-mail.

Последние скрипты

Советы специалистов

У нас большой опыт написания скриптов и разработки Веб-инструментов, которым мы готовы поделиться с вами. Пишите ваши комментарии!

Последние статьи