PHP: $string = "/turyi/goryi-gujli"; if (preg_match("|\/turyi\/|", $string)) echo "+"; if (strstr($string, "/turyi/")) echo "+";
Выходит ошибка Добрый вечер не подскажите ошибку где я допустил PHP: <?php $date=date("H"); switch ($date){ case 7: case 8: case 9: case 10: case 11: case 12: echo "Сейча утро"; break; case 13: case 14: case 15: case 16: case 17: case 18: echo "Сейчас день"; break; case 19: case 20: case 21: case 22: case 23: case 0: echo "Сейчас вечер" break; case 1: case 2: case 3: case 4: case 5: case 6: echo "Сейчас ночь"; break; } ?>
Скажите в чем у меня может быть ошибка в скрипте. PHP: set_time_limit(0); $file = 'main.txt'; $out = fopen('out.txt', 'w+'); $used = fopen('used.txt', 'w+'); $trash = fopen('trash.txt', 'r'); $data = fopen($file, 'r'); while(!feof($trash)){ $trashstring = trim(fgets($trash)); while(!feof($data)){ $freshstring = trim(fgets($data)); if(preg_match('~'.$trashstring.'~', $freshstring)){ fwrite($used, $freshstring); }else{ fwrite($out, $freshstring); } } } fclose($out); fclose($used); fclose($trash); fclose($data); exit('done'); Скрипт читает построчно файл trash.txt и проверяет есть ли такая строка в main.txt. Если есть, то записывает эту строку в used.txt, а если нет, то в out.txt. Но скрипт не находит совпадений, хотя они есть, я вручную проверял. Почему так?
То есть возможен разный регистр? Если да, то тогда, думаю, что вот так будет правильно: PHP: <?php set_time_limit(0); $file = 'main.txt'; $out = fopen('out.txt', 'wb'); $used = fopen('used.txt', 'wb'); $trash = fopen('trash.txt', 'rb'); $data = fopen($file, 'rb'); while(!feof($trash)){ $trashstring = trim(fgets($trash)); while(!feof($data)){ $freshstring = trim(fgets($data)); if(preg_match('~^'.$trashstring.'$~i', $freshstring)){ fwrite($used, $freshstring."\r\n"); break; }else{ fwrite($out, $freshstring."\r\n"); break; } } } fclose($out); fclose($used); fclose($trash); fclose($data); exit('done');
Не в этом дело. Когда я просто брал совпадающую строку, запускал поиск по целевому файлу , то все прекрасно находилось. А с двумя циклами почему-то не находит.
помогите с регуляркой! Вопчем из всего хлама задача определить файл со строками вида: Хэш:[соль]:пароль. соль может быть так и не быть, соответсвенно хэши могут быть любого формата.
Угу, гуд, попробую, а как собственно теперь отобрать из $out только пароль? Я вот думаю разбить строку explode (":", string) ( и взять последний элемент массива (там пароль должен оказаться), но будет косяк если сам пароль содержит двоеточие! Регуляркой можно сделать это? Code: 0987230948709870987:Yg(соль)h$:pass1 0987230948709870987:pass2 0987230948709870987:pas:s3 - пароль содержащий двоеточие.
Отправляю форме POST запрос где значение login и password равно shadowrun, а условие всеравно выполняется... PHP: <?php if ($_SERVER['REQUEST_METHOD'] == 'POST'){ $login = $_POST['login']; $pass = $_POST['password']; if (($login != "shadowrun") or ($password != "shadowrun")){ printf(' <html> <body style="background:#000; margin:0px;"> <p style="font-size:30em; padding:0px; margin:0px; color:#f00;"> ХУЙ! </p> </body> </html> '); } } ?> UPD: ОЛОЛО затупил
http://forum.insidepro.com/download.php?id=647 скачиваю браузнром - получаю текстовый файл, качаю php - получаю хрень - в чём проблема? PHP: <?PHP $f_1=fopen("http://forum.insidepro.com/download.php?id=647","r"); if (!$f_1) {echo "id=".$i." - not found, skiped!\r\n";} $h=fgets ($f_1); echo $h."\r\n"; ?> нужно получить именно тот файл (в частности 1 строчку).
Накидал по быстрому, за работоспособность не ручаюсь, ибо в баню тороплюсь. PHP: <?php error_reporting(E_ALL); ini_set('display_errors', true); ini_set('error_reporting', E_ALL); function auth($user,$pass){ $data = "do=login&username=$user&password=$pass&redirect=&login=Log+in"; $cookie = ''; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://forum.insidepro.com/index.php"); curl_setopt($ch, CURLOPT_COOKIE,$cookie); curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt"); curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt"); curl_setopt($ch, CURLOPT_NOBODY, false); //не выводить тело ответа curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //вернуть ответ, а не вывести curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20120716 Firefox/15.0a2"); curl_setopt($ch, CURLOPT_REFERER, 'http://forum.insidepro.com/login.php'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS,$data); $store = curl_exec ($ch); curl_close($ch); $pos = strpos($store, "Log out"); if ($pos === FALSE) { return 0; } else { return 1; } } function getContent($url){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt"); curl_setopt($ch, CURLOPT_NOBODY, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20120716 Firefox/15.0a2"); curl_setopt($ch, CURLOPT_REFERER, 'http://forum.insidepro.com/index.php'); $data = curl_exec ($ch); curl_close($ch); return $data; } if(auth('-=lebed=-','PASSWORD')){ $data = getContent('http://forum.insidepro.com/download.php?id=647'); $all = explode (' ',$data); echo $all[0]; } else{ die("Ошибка при авторизации"); } ?>
Вот блин, сразу не догадался - где то нужна, а где то нет - без авторизации скачивается. 2 VY_CMa спасибо, но надо без курл.