Программирование на php. Общие вопросы.

(Ответов: 402, Просмотров: 31223)
Страница 6 из 41 Первая ... 4567816 Последняя
  1. Banned
    • Регистрация: 27.08.2012
    • Сообщений: 248
    • Репутация: 18
    • Webmoney BL: ?
    ArhStrAngeR,какой из них лучше читать?
    • 0
  2. Разработка любых сайтов Аватар для ArhStrAngeR
    • Регистрация: 08.06.2011
    • Сообщений: 3,375
    • Записей в дневнике: 1
    • Репутация: 2506
    denis35,любой достаточно хорош. проще изучать на примере - задумал что-то писать, поставил задачу, написал, не работает - гуглишь, работает - смотришь что можно изменить, улучшить и т.д.
    • 1

    Спасибо сказали:

    Alik(15.09.2012),
  3. Опытный
    • Регистрация: 27.02.2011
    • Сообщений: 386
    • Репутация: 68
    Цитата Сообщение от ArhStrAngeR Посмотреть сообщение
    denis35,любой достаточно хорош. проще изучать на примере - задумал что-то писать, поставил задачу, написал, не работает - гуглишь, работает - смотришь что можно изменить, улучшить и т.д.
    Именно в точку. С этого нужно начинать.
    Как то решил я вникнуть в php, прочитал пару сотен страниц, ничего собственно не понял.
    Пару дней назад остро встала потребность в написании скрипта, который парсит количество исходящих ссылок с донора по бингу. Начал искать просто парсеры выдачи и т.п. Изучил, посмотрел, начал делать, составил последовательность действий, что да как. Например: 1) отправить через пост урл 2) курлом загрузить страницу 3) распарсить 4) все воткнуть в цикл и т.д.
    В итоге пока делал пришлось прочитать информацию про cURL, про массивы, циклы, переборы массивов, типы данных, регулярные выражения + еще по мелочи. Вся информация сразу же применялась на практике. В итоге всего около 40 строчек кода, а мозго#бки почти 2е суток.
    Зато за 2 дня написания этих строчек получил колоссальный опыт + хорошо структурированную информацию по разным разделам php.
    Сегодня за пару часов написал парсер торентов рутрекера. .

    Цитата Сообщение от denis35 Посмотреть сообщение
    ArhStrAngeR,какой из них лучше читать?
    Заказывал давно PHP 5 в подлиннике Котеров, Костарев. Книга великолепная.
    • 1

    Спасибо сказали:

    ArhStrAngeR(16.09.2012),
  4. Разработка любых сайтов Аватар для ArhStrAngeR
    • Регистрация: 08.06.2011
    • Сообщений: 3,375
    • Записей в дневнике: 1
    • Репутация: 2506
    Кстати хорошая идея. Можно выкладывать в этой темы простые уроки, типо парсера и подробно разбирать построчно. Глядишь и вопросов станет меньше.
    • 0
  5. Опытный
    • Регистрация: 27.02.2011
    • Сообщений: 386
    • Репутация: 68
    Ребят где косяк? Почему обрабатывается только последний элемент массива?
    Т.е. если формой будет отправлено более одного элемента, то парсинг произойдет только последнего отправленного элемента, а элемент вышестоящего элемента вернет пустоту.
    PHP код:
    <?php
    if(isset($_POST['cat']) && !empty($_POST['cat']))
    $cat $_POST;
    else
    die(
    'cat parameter is not specified!');

    set_time_limit(0);
    $do=explode("\n",$_POST['cat']);

    function 
    get_web_page$url )
    {
      
    $uagent "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)";
      
    $ch curl_init$url );
      
    curl_setopt($chCURLOPT_URL$url);
      
    curl_setopt($chCURLOPT_RETURNTRANSFER1);   // возвращает веб-страницу
      
    curl_setopt($chCURLOPT_HEADER0);           // не возвращает заголовки
      
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);   // переходит по редиректам
      
    curl_setopt($chCURLOPT_ENCODING"");        // обрабатывает все кодировки
      
    curl_setopt($chCURLOPT_USERAGENT$uagent);  // useragent
      
    curl_setopt($chCURLOPT_CONNECTTIMEOUT120); // таймаут соединения
      
    curl_setopt($chCURLOPT_TIMEOUT120);        // таймаут ответа
      
    curl_setopt($chCURLOPT_MAXREDIRS10);       // останавливаться после 10-ого редиректа

      
    $content curl_exec$ch );
      
    $err     curl_errno$ch );
      
    $errmsg  curl_error$ch );
      
    $header  curl_getinfo$ch );
      
    curl_close$ch );

      
    $header['errno']   = $err;
      
    $header['errmsg']  = $errmsg;
      
    $header['content'] = $content;
      return 
    $header;
    }

    for (
    $i=0$i<count($do); $i++) {
      
    $url $do[$i];
      echo 
    "Беру $do[$i]<br />";
      
    $result get_web_page$url );
            
    $err 0;
            if ( 
    $result['errno'] != )
               { 
    //... ошибка: неправильный url, таймаут, зацикливание ... обработать по желанию
               
    $err 1;
               }

            if ( 
    $result['http_code'] != 200 )
               { 
    //... ошибка: нет страницы, нет прав ... обработать по желанию
               
    $err 1;
               }

      
    $page $result['content'];
      
    $page str_replace ("<wbr>","",$page);
      
    $page str_replace ('" class="topictitle tt-text',"",$page);
      
    $page str_replace ('./viewtopic.php?t',"/forum/viewtopic.php?t",$page);
      
      
    $template ='#<td style="padding: 3px 5px 3px 3px;" class="tt">[\n\s]+<a\shref="?(.*?)"?>(.*?)<\/a>[\n\s]+<\/td>#im';
      
    preg_match_all($template$page$matches);
            
    // for ($k=0; $k<count($matches[1]); $k++){
            // print_r('<br />'.$matches[1][$k]);
            // }
        
    print_r($matches);    
    }
                    

                    
     
    ?>
    • 0
  6. Orange Аватар для aidem
    • Регистрация: 11.11.2010
    • Сообщений: 502
    • Репутация: 127
    • Webmoney BL: ?
    Цитата Сообщение от Alik Посмотреть сообщение
    Ребят где косяк?
    Элемент формы которая приносит
    PHP код:
    $_POST['cat'
    - это textarea?
    Зачем в третей строке:
    PHP код:
    $cat $_POST
    После
    PHP код:
    $do=explode("\n",$_POST['cat']); 
    если проследить например
    PHP код:
    print_r ($do); 
    адекватный ли массив эксплоудится? Возможно стоит попробовать:
    PHP код:
    ... explode("[\r?\n]",$_POST['cat']) ... 
    Последний раз редактировалось aidem; 16.09.2012 в 03:19.
    • 0
  7. Опытный
    • Регистрация: 27.02.2011
    • Сообщений: 386
    • Репутация: 68
    Цитата Сообщение от aidem Посмотреть сообщение
    - это textarea?
    да
    Цитата Сообщение от aidem Посмотреть сообщение
    Зачем в третей строке:
    да ненужная вещь, шапку оставил с другого скрипта
    Цитата Сообщение от aidem Посмотреть сообщение
    адекватный ли массив эксплоудится? Возможно стоит попробовать:
    адекватный, типа:
    PHP код:
    Array ( [0] => /forum/viewforum.php?f=2006 [1] => /forum/viewforum.php?f=751 [2] => /forum/viewforum.php?f=257 
    Цитата Сообщение от aidem Посмотреть сообщение
    explode("[\r?\n]",$_POST['cat'])
    не канает, даже парсинг не происходит.
    • 0
  8. Orange Аватар для aidem
    • Регистрация: 11.11.2010
    • Сообщений: 502
    • Репутация: 127
    • Webmoney BL: ?
    Цитата Сообщение от Alik Посмотреть сообщение
    for ($i=0; $i<count($do); $i++) {
    А если как бы:
    PHP код:
    foreach ($do as $url){
      
    $result get_web_page('domain.com' $url );
      
    //any code
      
    print_r($matches);

    • 0
  9. Опытный
    • Регистрация: 27.02.2011
    • Сообщений: 386
    • Репутация: 68
    aidem, ммм, как бы $url уже является урлом (пример: http://webmasters.ru/forum/f74)
    • 0
  10. Orange Аватар для aidem
    • Регистрация: 11.11.2010
    • Сообщений: 502
    • Репутация: 127
    • Webmoney BL: ?
    Цитата Сообщение от Alik Посмотреть сообщение
    адекватный, типа:
    PHP код:
    Array ( [0] => /forum/viewforum.php?f=2006 [1] => /forum/viewforum.php?f=751 [2] => /forum/viewforum.php?f=257 )
    PHP код:
    $result get_web_page('/forum/viewforum.php?f=2006'); 
    это как так? или мне уже поспать пора)))
    • 0
Страница 6 из 41 Первая ... 4567816 Последняя

Похожие темы

Темы Раздел Ответов Последний пост
Веб программирование на Php, MySQL, Ajax. Программирование на C#
Создание сайтов 3 31.05.2011 02:53
Веб программирование на Php, MySQL, Ajax. Программирование на C#
Реклама партнерских программ 3 31.05.2011 02:53
Качественное программирование на заказ
Создание сайтов 2 13.09.2010 17:02
Веб-программирование [php, Xhtml, Css, Javascript]
Другая работа 0 28.02.2010 23:10

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры