не понимаю почему не работает, если всё правильно и оно должно работать. вобщем поставьте диагноз и скажите в чем дело)): PHP: preg_match_all("#<input.*name=\"(.*{$logins[$type][$l]}.*)\".*>#isU", $site, $username); в в скобках находится слово "user" (т.е. в переменной $logins[$type][$l] находится слово "user") но в $username[1][0] в итоге пусто, тоесть не находит он там этого слова а если написать так: PHP: preg_match_all("#<input.*name=\"(.*user.*)\".*>#isU", $site, $username); то выводит всё правильно. почему?? я пробовал по разному записывать то что в скобках: PHP: (.*?{$logins[$type][$l]}.*?) (.*{$logins[$type][$l]}.*?) ([^<]*{$logins[$type][$l]}[^<]*) (.*{$logins[$type][$l]}[^<]*) #даже просто вот так: ({$logins[$type][$l]})
sataite PHP: var_dump($logins[$type][$l]); preg_match_all("#<input.*name=\"(.*".preg_quote($logins[$type][$l],'#').".*)\".*>#isU", $site, $username);
не помогло, осталось всё также: через массив logins[$type] я перебираю имена которые там могут быть массив в себе содержит: array('user', 'name', 'login' и т.д. ) вобщем вот код: PHP: for($l=0;$l<count($logins[$type]);){ #echo $logins[$type][$l]; var_dump($logins[$type][$l]); preg_match_all("#<input.*name=\"(.*".preg_quote($logins[$type][$l],'#').".*)\".*>#isU", $site, $username); $pos_un=stripos($username[1][0], $logins[$type][$l]); if(empty($pos_un))$l++; else break; }echo $logins[$type][$l]."!".$username[1][0]; #echo $logins[$type][$l]; показывает слово name, почему? почему он не break'ает на слове user? так как именно слово user находится в input'e: HTML: <input type="text" name="user" size="10" /> <input type="password" name="passwrd" size="10" /> <input type="submit" value="Войти" /> <input type="hidden" name="hash_passwrd" value="" /> а если написать так: PHP: preg_match_all("#<input.*name=\"(.*user.*)\".*>#isU", $site, $username); оно заработает и в $username[1][0] будет находится именно user в чем разница между массивом содержащее слово user и словом user?