все картинки форматов *.jpg и *.png PHP: <?php $code=file_get_contents('http://direct.yandex.ru'); preg_match_all('/<img src="(.*).(jpg|png)"/i', $code, $matches); echo "<pre>"; print_r ($matches[0]); echo "</pre>"; ?>
Dark_Scorpicore, PHP: <?php $code=file_get_contents('http://direct.yandex.ru'); preg_match_all('#([^\s]+(?=\.(jpg|gif|png))\.\2)#i', $code, $matches); echo "<pre>"; print_r ($matches[0]); echo "<pre>"; ?> Я незнаю как ты проверял, почему же у меня работает, результат: L I G A, А вот у вас код нерабочий и не универсальный, вывело: А если вместо двойных кавычек будут одинарные? Или же такого вида: <img align="middle" src=""> уже несовпадение по шаблону получается.
вы невнимательны : Code: Подскажите плиз как выдернуть все картинки форматов *.jpg и *.png с сайта. ___________________________________________ Code: А если вместо двойных кавычек будут одинарные? Или же такого вида: <img align="middle" src=""> уже несовпадение по шаблону получается. учел пожелания: PHP: <?php $code=file_get_contents('http://direct.yandex.ru'); preg_match_all('/src=("|\')(.*).(jpg|png)("|\')/i', $code, $matches); echo "<pre>"; print_r ($matches[0]); echo "</pre>"; ?>
Вот хотел замутить штуку, типа отгадай номер) Но никак не могу запихнуть рандом в $_POST. Как в таких случаях нужно поступать? PHP: <?php $in = array ("1", "2"); $rands = array_rand($in, 2); echo "<form method=post> <input type=submit name=1 value='1'> <input type=submit name=2 value='2'> <input type=submit name=3 value='3'> <input type=submit name=4 value='4'> </form>"; $out = $in[$rands[0]]; if(isset($_POST['{$out}'])) { echo "Ты экстрасенс"; } ?>
Омг... PHP: <?php $number=rand(1,4); if(isset($_POST['submit'])) if($_POST['number']==$number) echo 'Ты экстрасенс!<br />'; else echo 'Ты не угадал, сорри, число было '.$number.'<br />'; ?> <form name="" action="" method="post"> Число(1-4):<br /> <input name="number" type="text" value=""><br /> <input type="submit" name="submit" value="Угадать"> </form>
mailbrush можно было и так, почти как у него PHP: <?php $in = array ("1", "2"); $rands = array_rand($in, 2); $out = $in[$rands[0]]; echo "<br>".$out; ?> <form method="post"> <input type="submit" name="arr[]" value='1'> <input type="submit" name="arr[]" value='2'> <input type="submit" name="arr[]" value='3'> <input type="submit" name="arr[]" value='4'> <input type="hidden" name="hid" value="<?=$out?>"/> </form> <?php if(isset($_POST['arr'])) { if ($_POST['arr'][0] == $_POST['hid']) { echo "genius"; } } ?>
2mailbrash, я только переделал его код в рабочий вид, а ты его полностью изменил. Правильнее конечно, такую фигню делать с текстовым полем, а не с кнопками.
diGriz, твой скрипт выводит правильное число, перед тем, когда нажал кнопку + оно же отправляется в hidden поле.
Написал скрипт для авторегистрации на _http://www.volchat.ru/forum/ Обход капчи - ручной ввод. Но при попытке зарегистрировать юзера пишет, что введённый код не совпадает с проверочным. Кто знает в чём дело? PHP: <?php //VARs $host = "www.volchat.ru"; $path = "/forum/profile.php?mode=register"; $p_to_pics = "/forum/profile_pic.php?l="; $post_path = "/forum/profile.php"; //FUNCTIONs function get_something($host, $path, $cookie = FALSE) { $data = "GET ".$path." HTTP/1.1\r\n"; $data .= "Host: ".$host."\r\n"; $data .= "User-Agent: Opera/9.63 (Windows NT 5.1; U; ru) Presto/2.1.1\r\n"; $data .= "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif\r\n, image/x-xbitmap, */*;q=0.1\r\n"; $data .= "Accept-Language: ru-RU,ru;q=0.9,en;q=0.8\r\n"; $data .= "Accept-Encoding: gzip,identity\r\n"; $data .= "Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1,UCS-2;q=0, UCS-4;q=0, UTF-1;q=0\r\n"; $data .= "TE: deflate, gzip, chunked, identity, trailers\r\n"; if ($cookie) { // $data .= "Referer: http://".$host.$path."\r\n"; $data .= "Cookie: ".$cookie."\r\n"; } $data .= "Connection: close;\r\n\r\n"; $t = fsockopen($host, 80, $errno, $error, 30) or die ("Ошибка № ".$errno.": ".$error); fputs($t, $data); while(!feof($t)) {$output .= fgets($t, 1024);} return $output; } function get_cookies($page) { $headers = substr($page, 0, strpos($page, "\r\n\r\n")); $fragment1 = substr($headers, strpos($headers, "Set-Cookie: ")); $cookie1 = str_replace("Set-Cookie: ", "", substr($fragment1, 0, strpos($fragment1, "; "))); $fragment2 = str_replace("Set-Cookie: ", "", substr($fragment1, strpos($fragment1, "\r\n"))); $cookie2 = str_replace("\r\n", "", substr($fragment2, 0, strpos($fragment2, "; "))); $cooks = $cookie1."; ".$cookie2; return $cooks; } function show_capcha($host, $path, $cookie) { for($i=0; $i<8; $i++) { $pic_with_hs = get_something($host, $path.$i, $cookie); $gif = substr($pic_with_hs, strpos($pic_with_hs, "\r\n\r\n")+4); file_put_contents("{$i}.gif", $gif); $capcha .= "<img src='{$i}.gif'>"; } return $capcha; } //PROGRAM $page = get_something($host, $path); //---get page whith cookies $cookie = get_cookies($page); //---get cookies $sid = substr($page, strpos($page, "phpbb2mysql_sid")); //---|get sid $sid = substr($sid, strpos($sid, "=")+1, 32); //---| echo show_capcha($host, $p_to_pics, $cookie); //---get captcha! ?> <form method='get' action=''> Капча: <input type='text' name='cap'> <input type='Submit' name='go' value='go'> </form> <?php if (isset($_GET['go']) && isset($_GET['cap'])) { $aya = "абвгдежзиклмнопрстуфхцчшщъыьэюяАБВГДЕЖЗИКЛМНОПРСТУ ФХЦЧШЩЪЫЬЭЮЯ"; // $az = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWX YZ"; for($i=0; $i<9; $i++) { $x = rand(0, strlen($aya)-1); $nm .= $aya[$x]; $mail .= rand(0, 9); // $y = rand(0, strlen($az)-1); // $pass .= $az[$y]; } $pass = "8967trtr1"; $reginf = "username=".$nm."&user_email=".$mail."@mail.ru&user_email_confirm=".$mail."@mail.ru&robot_confirm=".$_GET['cap']."&new_password=".$pass."&password_confirm=".$pass."&user_from=Z-city&user_gender=1&agree_rules=1&submit=Отправить&mode=register&u=-1&sid=".$sid."&forum_rules_present=1"; $post = "POST ".$post_path." HTTP/1.1\r\n"; $post .= "Host: ".$host."\r\n"; $post .= "User-Agent: Opera/9.63 (Windows NT 5.1; U; ru) Presto/2.1.1\r\n"; $post .= "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif\r\n, image/x-xbitmap, */*;q=0.1\r\n"; $post .= "Accept-Language: ru-RU,ru;q=0.9,en;q=0.8\r\n"; $post .= "Accept-Encoding: gzip,identity\r\n"; $post .= "Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1,UCS-2;q=0, UCS-4;q=0, UTF-1;q=0\r\n"; $post .= "Cookie: ".$cookie."\r\n"; $post .= "Content-Type: application/x-www-form-urlencoded\r\n"; $post .= "Content-Length: ".strlen($reginf)."\r\n"; $post .= "Connection: close\r\n\r\n"; $post .= $reginf; $tr = fsockopen($host, 80, $errno, $error, 30) or die ("ERROR!"); fputs($tr, $post); while(!feof($tr)) {echo fread($tr, 1024);} $string = $nm." registered with password '".$pass."' на адрес ".$mail."@mail.ru\r\n"; $log = fopen("reg.log", a) or die ("Не удаётся открыть файл"); fwrite($log, $string) or die ("Не удаётся записать в файл"); fclose($log); } ?>
Есть текстовый фаил вида Code: Line 62068: [14 июл 9:05:17] CREATE:Loot, item 268489235:Spellbook: Mystic Immunity(1), player SP-Dizded, Deinonychus Line 62070: [14 июл 9:05:18] CREATE:Loot, item 268489238:Amulet: Pa'agrio's Emblem(1), player SP-Dizded, Deinonychus Line 62084: [14 июл 9:05:26] CREATE:Loot, item 268489260:Spellbook: Summon Feline King(1), player SP-Dizded, Ornithomimus Line 62384: [14 июл 9:09:52] CREATE:Loot, item 268489951:Ancient Spellbook: Gehenna(1), player SP-Dizded, Tyrannosaurus Как можно вывести только числа которые идут после item и запихать их в массив $mass Дата может быть разной длинны также не получится далать с какого сомвола считывать, а вот числа эти всегда начинаются на 268
PHP: <?php $text = 'Line 62068: [14 июл 9:05:17] CREATE:Loot, item 268489235:Spellbook: Mystic Immunity(1), player SP-Dizded, Deinonychus Line 62070: [14 июл 9:05:18] CREATE:Loot, item 268489238:Amulet: Pa\'agrio\'s Emblem(1), player SP-Dizded, Deinonychus Line 62084: [14 июл 9:05:26] CREATE:Loot, item 268489260:Spellbook: Summon Feline King(1), player SP-Dizded, Ornithomimus Line 62384: [14 июл 9:09:52] CREATE:Loot, item 268489951:Ancient Spellbook: Gehenna(1), player SP-Dizded, Tyrannosaurus'; preg_match_all('/item\040([^:]*):/ims', $text, $match); $mass = $match[1]; print_r($mass); ?>
как заменить содержимое элементов массива по маске не затронув останльную часть...и вернуть всё вместе как изменённый массив str_replace чё то не получилось