Собственно есть переменные $a $b Для них одно значение,скажем 10 Скрипт выполняет так - сначала выполняет задачу для переменной "а", потом для переменной "b". Какие прописать команды, чтобы к примеру выставлении в конфиге "1" , он выполнял только часть кода для переменной "а", при "2" - "b", при "0" - весь скрипт целиком. Спасибо заранее.
Две функции делаешь. a и b простыми if проверяешь. если ноль вызываешь обе функции, если а то а если б то б. Можно без функций просто коды в конструкции if затолкать Это что я смог понять в первом посте (тз)
то и надо, а если в коде пхп это показать возможно.просто понял что надо if и else, но как 2 функции сделать понять не могу.
спасибо.но почему то не работает.возможно из за того, что значение переменной одно и тоже.(выполняет и то и то - при любых значениях) делал как: $conf=1 (к примеру) $c=0 if ($conf==1){ echo $a; } elseif ($conf==2){ echo $b; } else { echo $c;}
все дело в типе значения int или string PHP: <? $conf="2"; if ($conf=="1"){ echo 1; } elseif ($conf=="2"){ echo 2; } else { echo 3;} ?> вернуло 2 - это пример при стринговом сравнении PHP: <? $conf="2"; switch ($conf){ case '1': echo 1; break; case '2': echo 2; break; default: echo 3; break; } ?> вернул 2 PHP: <? $conf=1; switch ($conf){ case 1: echo 1; break; case 2: echo 2; break; default: echo 3; break; } ?> вернул 1 PHP: <? $conf="1"; switch ((int)$conf){ case 1: echo 1; break; case 2: echo 2; break; default: echo 3; break; } ?> вернул 1
Вот это помогло, то есть выполнилась сначала нужная переменная. Но потом - когда пошел новый цикл(скрипт зациклен с помощью "for ($i=0;$i<count($ids);$i++) { }" , опять началась выполнятся первая переменная. PHP: { } может в это тело надо вставлять if/else - но, не помогает. спасибо.
PHP: $browser->navigate('http://site.ru/login/'); $browser->wait_for(60,1); $input->set_value_by_name('user_email','vasya@mail.ru');$input->set_value_by_name('user_password','пароль'); $element->click_on_element_by_inner_text('войти'); $browser->wait_for(60,1); $id = file("id.txt"); $site="http://site.ru/?id="; $po="http://site.ru/use/"; for ($i=0;$i<count($id);$i++) { $browser->navigate($site.$id[$i]); $browser->wait_for(60,1); $textarea->set_value_by_name('message_text','привет'); $button->click_by_name('SendBtn'); $browser->wait_for(120,1); $browser->navigate($po.$id[$i]); $browser->wait_for(60,1); $element->click_on_element_by_inner__text('Одобрить'); $browser->wait_for(60,1); } Нужно, чтобы перменные $id и $po - выполнялись в соответствии заданного $conf 1, 2 или 3 (выполнять все) //Gifts: оформляйте код в тег [*PHP] (без звездочки)
откуда берутся задания 1 2 3 ? может я так понимаю если задание 1 то выролняется PHP: $browser->navigate($site.$id[$i]); $browser->wait_for(60,1); $textarea->set_value_by_name('message_text','привет'); $button->click_by_name('SendBtn'); $browser->wait_for(120,1); а при 2 PHP: $browser->navigate($po.$id[$i]); $browser->wait_for(60,1); $element->click_on_element_by_inner__text('Одобрить'); $browser->wait_for(60,1); так понял?
да все верно, перменный 1,2,3 я не включал в код(тестил только у себя).сейчас попробую с $site зы все равно не работает
PHP: $conf="2"; $browser->navigate('http://site.ru/login/'); $browser->wait_for(60,1); $input->set_value_by_name('user_email','vasya@mail.ru');$i nput->set_value_by_name('user_password','пароль'); $element->click_on_element_by_inner_text('войти'); $browser->wait_for(60,1); $id = file("id.txt"); $site="http://site.ru/?id="; $po="http://site.ru/use/"; for ($i=0;$i<count($id);$i++) { if ($conf=="1"){ nsite(); } elseif ($conf=="2"){ npo(); } else { nsite(); npo(); } } function nsite(){ $browser->navigate($site.$id[$i]); $browser->wait_for(60,1); $textarea->set_value_by_name('message_text','привет'); $button->click_by_name('SendBtn'); $browser->wait_for(120,1); } function npo(){ $browser->navigate($po.$id[$i]); $browser->wait_for(60,1); $element->click_on_element_by_inner__text('Одобрить'); $browser->wait_for(60,1); }
PHP: function nsite(){ global $site,$id[$i]; $browser->navigate($site.$id[$i]); $browser->wait_for(60,1); $textarea->set_value_by_name('message_text','привет'); $button->click_by_name('SendBtn'); $browser->wait_for(120,1); } function npo(){ global $po,$id[$i]; $browser->navigate($po.$id[$i]); $browser->wait_for(60,1); $element->click_on_element_by_inner__text('Одобрить'); $browser->wait_for(60,1); } исправь на это... переменные в функции должны быть взяты из вне по идеи... а вообще это быдло код =)))
ну да... global $id =))) а не $id[$i] PHP: $conf="2"; $browser->navigate('http://site.ru/login/'); $browser->wait_for(60,1); $input->set_value_by_name('user_email','vasya@mail.ru');$i nput->set_value_by_name('user_password','пароль'); $element->click_on_element_by_inner_text('войти'); $browser->wait_for(60,1); $id = file("id.txt"); $site="http://site.ru/?id="; $po="http://site.ru/use/"; for ($i=0;$i<count($id);$i++) { if ($conf=="1"){ nsite($site,$id[$i]); } elseif ($conf=="2"){ npo($po,$id[$i]); } else { nsite($site,$id[$i]); npo($po,$id[$i]); } } function nsite($sitef,$idf){ $browser->navigate($sitef.$idf); $browser->wait_for(60,1); $textarea->set_value_by_name('message_text','привет'); $button->click_by_name('SendBtn'); $browser->wait_for(120,1); } function npo($pof,$idf){ $browser->navigate($pof.$idf); $browser->wait_for(60,1); $element->click_on_element_by_inner__text('Одобрить'); $browser->wait_for(60,1); }
Если в $conf будут только цифры, то лучше их записывать цифрами, а не строкой, сравнение цифр идет быстрее в разы.