1. Задавайте здесь вопросы о коде, которые не подходят в другие разделы, такие как:
    Дизайн > Верстка
    PHP > Как сделать на PHP
    Скрыть объявление

Переделка бид чекера

Тема в разделе "Web Coding", создана пользователем Mamadu, 1 авг 2007.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Mamadu

    Mamadu

    Регистр.:
    20 ноя 2006
    Сообщения:
    532
    Симпатии:
    1.000
    Прошу подсказки у асов PHP в переделке скрипта...Исходный вариант таков
    Код:
    <?php
     Error_Reporting(E_ALL & ~E_NOTICE);
    function menu_ACTION($_GET,$_POST)
    {
    ?>
    <html>
    <head>
    <title>KlikVip Bid checker</title>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <style>
    .frm { font-size: 8pt; font-family: Tahoma; color: #000000; font-weight: bold; border: 1px solid #B5A57F }
    .brdr { font-size: 8pt; font-family: Tahoma; color: #000000; border: 1px solid #D9CBAB }
    .style1 {
        font-size: 8pt;
        font-weight: bold;
    }
    </style>
    </head>
    <body>
    <center>
    <table width="200" border="1" bordercolor="#FFFFFF" style="BORDER-COLLAPSE: collapse" cellpadding="1" cellspacing="1">
      <tr>
        <td align=center><form name="form1" method="post" action="">
            <textarea name="your_message" style="width: 600; height: 115;" class=frm></textarea>
            <br>
            <input type="submit" name="submit" value="Show bids" class=frm style="margin-top:6; margin-bottom:4; width: 70; height: 18; background-color:#D4D0C8">
    <input name="action" type="hidden" value="start">
        </form></td>
      </tr>
      <tr>
        <td bordercolor="#D9CBAB" border="1"><table width="100%" border="0" cellpadding="0" cellspacing="0" class="brdr">
            <tr>
              <td bgcolor="#F0EADC" style="padding: 5;"><div class="style1">Show Bids</div></td>
            </tr>
            <tr>
              <td style="padding-top:6;"><table width="100%" border="1"  cellpadding="0" cellspacing="0" class="brdr" style="BORDER-COLLAPSE: collapse">
                  <tr>
                    <td width="44%"><div align="center"><strong>Title</strong></div></td>
                    <td width="28%"><div align="center"><strong>Max Bid</strong></div></td>
                    <td width="28%"><div align="center"><strong>Min Bid</strong></div></td>
                  </tr>
                </table></td>
            </tr>
        </table></td>
      </tr>
    </table>
    </center>
    </body>
    </html>
    <?php
    }
    
    if($_GET['action']){$action=$_GET['action'];}
    elseif($_POST['action']){$action=$_POST['action'];}
    else{$action="menu";}
    if(function_exists($action."_ACTION"))
     {
              call_user_func($action."_ACTION",$_GET,$_POST);
     }
    
    
    //////////////////////////////////
    function start_ACTION($_GET,$_POST)
    {
    ?>
    <html>
    <head>
    <title>KlikVip Bid Checker</title>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <style>
    .frm { font-size: 8pt; font-family: Tahoma; color: #000000; font-weight: bold; border: 1px solid #B5A57F }
    .brdr { font-size: 8pt; font-family: Tahoma; color: #000000; border: 1px solid #D9CBAB }
    .style1 {
        font-size: 8pt;
        font-weight: bold;
    }
    </style>
    </head>
    <body>
    <center>
    <table width="200" border="1" bordercolor="#FFFFFF" style="BORDER-COLLAPSE: collapse" cellpadding="1" cellspacing="1">
      <tr>
        <td align=center><form name="form1" method="post" action="">
            <textarea name="your_message" style="width: 600; height: 115;" class=frm></textarea>
            <br>
            <input type="submit" name="submit" value="Show bids" class=frm style="margin-top:6; margin-bottom:4; width: 70; height: 18; background-color:#D4D0C8">
    <input name="action" type="hidden" value="start">
        </form></td>
      </tr>
      <tr>
        <td bordercolor="#D9CBAB" border="1"><table width="100%" border="0" cellpadding="0" cellspacing="0" class="brdr">
            <tr>
              <td bgcolor="#F0EADC" style="padding: 5;"><div class="style1">Show Bids</div></td>
            </tr>
            <tr>
              <td style="padding-top:6;"><table width="100%" border="1"  cellpadding="0" cellspacing="0" class="brdr" style="BORDER-COLLAPSE: collapse">
                  <tr>
                    <td width="44%"><div align="center"><strong>Title</strong></div></td>
                    <td width="28%"><div align="center"><strong>Max Bid</strong></div></td>
                    <td width="28%"><div align="center"><strong>Min Bid</strong></div></td>
        <tr>
        <td width="44%"><div align="center">
    
    <?php
    
    $fp=fopen("out.csv","w+");
    fputs($fp,"Keyword".";"."max bid".";"."min bid"."\r\n");
    
    $keyw=$_POST['your_message'];
    $zapros=explode("\r\n",$keyw);
    
    include("func.php");
    
    $result=load_pagecook("http://www.klikvip.com/members/");
    $cookies=capch_cook($result);
    $result=load_pagelog("http://www.klikvip.com/members/",$cookies);
    
    for($i=0;$i<count($zapros);$i++)
    {
    $result=load_page("http://www.klikvip.com/members/funcs/showbids.php?q=".urlencode(trim($zapros[$i])),$cookies);
    $matc=parse_links($result);
    echo trim($zapros[$i])."</div></td><td width=\"28%\"><div align=center>",$matc[0],"</div></td><td width=\"28%\"><div align=center>",$matc[count($matc)-1],"</div></td></tr><tr><td width=\"44%\"><div align=center>";flush();
    fputs($fp,trim($zapros[$i]).";".$matc[0].";".$matc[count($matc)-1]."\r\n");
    }
    fclose($fp);
    echo "           </div>   </tr>
                </table></td>
            </tr>
        </table></td>
      </tr>
    </table></td></tr></table></center><br>";
    echo "<center>Çàãðóçèòü ðåçóëüòàò â csv ôîðìàòå: <a href=\"./out.csv\">out.csv</a></center>";
    
    }
    ?>
    Пытаюсь переделать чтоб просто цеплял строки из текстового файла и чекал их. Переделал так:
    Код:
    <?php
    $ZAP="zap.txt";
    function my($ZAP)
    {
    $fp=fopen("out.csv","w+");
    fputs($fp,"Keyword".";"."max bid".";"."min bid"."\r\n");
    $keyw=$ZAP['zap.txt'];
    $zapros=explode("\r\n",$keyw);
    include("func.php");
    $result=load_pagecook("http://www.klikvip.com/members/");
    $cookies=capch_cook($result);
    $result=load_pagelog("http://www.klikvip.com/members/",$cookies);
    for($i=0;$i<count($zapros);$i++)
    {
    $result=load_page("http://www.klikvip.com/members/funcs/showbids.php?q=".urlencode(trim($zapros[$i])),$cookies);
    $matc=parse_links($result);
    fputs($fp,trim($zapros[$i]).";".$matc[0].";".$matc[count($matc)-1]."\r\n");
    }
    fclose($fp);
    }
    ?>
    Пахать не хочет.... Может подскажете где косяк?
     
  2. abdiel

    abdiel Создатель

    Регистр.:
    26 июл 2007
    Сообщения:
    15
    Симпатии:
    0
    А вызов my() та где?
     
  3. Mamadu

    Mamadu

    Регистр.:
    20 ноя 2006
    Сообщения:
    532
    Симпатии:
    1.000
    А примерчик кода нельзя? :) В пхп не секу, делал по аналогии. Куда (и главное КАК) воткнуть вызов - хз...
     
  4. bueno

    bueno Читатель

    Заблокирован
    Регистр.:
    7 май 2007
    Сообщения:
    236
    Симпатии:
    69
    Код:
    <?php
    $ZAP="zap.txt";
    
    my($ZAP);
    
    function my($ZAP)
    {
    $fp=fopen("out.csv","w+");
    fputs($fp,"Keyword".";"."max bid".";"."min bid"."\r\n");
    $keyw=$ZAP['zap.txt'];
    $zapros=explode("\r\n",$keyw);
    include("func.php");
    $result=load_pagecook("http://www.klikvip.com/members/");
    $cookies=capch_cook($result);
    $result=load_pagelog("http://www.klikvip.com/members/",$cookies);
    for($i=0;$i<count($zapros);$i++)
    {
    $result=load_page("http://www.klikvip.com/members/funcs/showbids.php?q=".urlencode(trim($zapros[$i])),$cookies);
    $matc=parse_links($result);
    fputs($fp,trim($zapros[$i]).";".$matc[0].";".$matc[count($matc)-1]."\r\n");
    }
    fclose($fp);
    }
    ?>
     
    Mamadu нравится это.
  5. Rodik

    Rodik Прохожие

    по идее должно быть так, проверить не смог ибо func.php нет- выложи может?
    PHP:
    $fp=fopen("out.csv","w+");
    fputs($fp,"Keyword".";"."max bid".";"."min bid"."\r\n");
    $filename "keys.txt";
    $handle fopen($filename"rb");
    $contents fread($handlefilesize($filename));
    fclose($handle);
    $keyw=$contents;
    $zapros=explode("\r\n",$keyw);
    include(
    "func.php");
    $result=load_pagecook("http://www.klikvip.com/members/");
    $cookies=capch_cook($result);
    $result=load_pagelog("http://www.klikvip.com/members/",$cookies);
    for(
    $i=0;$i<count($zapros);$i++)
    {
    $result=load_page("http://www.klikvip.com/members/funcs/showbids.php?q=".urlencode(trim($zapros[$i])),$cookies);
    $matc=parse_links($result);
    echo 
    trim($zapros[$i])."</div></td><td width=\"28%\"><div align=center>",$matc[0],"</div></td><td width=\"28%\"><div align=center>",$matc[count($matc)-1],"</div></td></tr><tr><td width=\"44%\"><div align=center>";flush();
    fputs($fp,trim($zapros[$i]).";".$matc[0].";".$matc[count($matc)-1]."\r\n");
    }
    fclose($fp);
     
  6. Mamadu

    Mamadu

    Регистр.:
    20 ноя 2006
    Сообщения:
    532
    Симпатии:
    1.000
    func.php
    Код:
    <?php
     Error_Reporting(E_ALL & ~E_NOTICE);
    
    function load_pagelog($url,$cookies)
    {
    
    
    $param=0;
    while($param==0)
    {
    include("config.txt");
    $param=1;
    
    if($stoper)exit;
    
    
    include("config.php");
    
    $ch = curl_init();
    
    curl_setopt($ch, CURLOPT_URL,$url); 
                        curl_setopt($ch, CURLOPT_POST,1);
        $post="login=$login&pwd=$pwd&ENTER=Enter";
                        curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
    curl_setopt($ch, CURLOPT_COOKIE, $cookies);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_REFERER, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
        curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); 
    $result = curl_exec($ch); 
    curl_close($ch); 
    
    if($result)return $result;
    }
    }
    
    
    
    ///////////////////////
    function load_pagecook($url)
    {
    
    
    $param=0;
    while($param==0)
    {
    include("config.txt");
    $param=1;
    
    if($stoper)exit;
    
    
    $ch = curl_init();
    
    curl_setopt($ch, CURLOPT_URL,$url); 
                  curl_setopt($ch, CURLOPT_POST,0);
    
        curl_setopt($ch, CURLOPT_COOKIE, 0);
        curl_setopt($ch, CURLOPT_HEADER, 1);
        curl_setopt($ch, CURLOPT_REFERER, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
        curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); 
    $result = curl_exec($ch); 
    curl_close($ch); 
    
    $result=explode("<html>",$result);
    if($result[0])return $result;
    }
    }
    
    //////////////////////////////////////////////////////////////////////
    function capch_cook($result)
    {
    $headers=explode("\r\n",$result[0]);
    
               if(count($headers))
               {
                while(list($key,$val) = each($headers))
                    {
                                 $tmp=explode(":",$val);
                                 $_key=trim($tmp[0]);
                                 unset($tmp[0]);
                                 $_val=trim(implode(":",$tmp));
                                if(!strcmp($_key,"Set-Cookie"))
                                {
                                                $tmp=explode(";",$_val);
                                                $ttmp=explode("=",$tmp[0]);
                                                $cookies[trim($ttmp[0])]=trim($ttmp[1]);
                                                unset($ttmp);
                                }
                    }
                }
    
    ////////////////
    if($cookies)
    {
    unset($cookiesa);
     for(reset($cookies);$key=key($cookies);next($cookies))
    $cookiesa=$cookiesa.$key."=".$cookies[$key].";";
    unset($cookies);
    }
    //echo"----------------";
    //echo $cookies;exit;
    //echo"----------------";
    /////////////////
    
    return $cookiesa;
    }
    ///////////////////////////////////////////////////////////////////////////////////////////////////
    function load_page($url,$cookies)
    {
    
    
    $param=0;
    while($param==0)
    {
    include("config.txt");
    $param=1;
    
    if($stoper)exit;
    
    
    
    
    
    $ch = curl_init();
    
    curl_setopt($ch, CURLOPT_URL,$url); 
        curl_setopt($ch, CURLOPT_POST, 0);
    curl_setopt($ch, CURLOPT_COOKIE, $cookies);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_REFERER, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
        curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); 
    $result = curl_exec($ch); 
    curl_close($ch); 
    
    if($result)return $result;
    }
    }
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    function parse_links($result)
    {
    include("config.txt");
    
     preg_match_all("!<td align=\"center\">(.*?)</td>!si",$result,$matches);
    for($i=0;$i<count($matches[1]);$i++)
    {
        $match[$i]=str_replace(" ","",$matches[1][$i]);
    }
    return $match;
    
    }
    /////////////////////////////////////////
    /////////////////////////////////////////
    /////////////////////////////////////////
    /////////////////////////////////////////
    
    ?>
    config.php
    Код:
    <?php
     Error_Reporting(E_ALL & ~E_NOTICE);
    $login="";
    $pwd="";
    
    ?>
    config.txt
    Код:
    <?
    
    ##таймаут загрузки страницы
    $timeout=55;
    #если 1 то скрипт остановиться
    $stoper=0;
    
    
    ?>
    Почему то вариант Rodik под Денвером пошел(в браузере), на серваке никсовом нет (из шелла). Вариант bueno рабоать не хочет вообще... Нужна софтинка - чтоб на серваке ее запустить надолго чтоб пахала.
     
  7. Rodik

    Rodik Прохожие

    что-бы работала на *никсовом сервере поменяй $zapros=explode("\r\n",$keyw);
    на
    $zapros=explode("\n",$keyw);
    \r\n- символ перевода каретки под виндой
    \n -под *никсами
    фтп клиент при заливке в режиме ASCII автоматически заменяет \r\n на \n- поэтому с одним и тем-же файлом скрипт может работать не правлильно под разными системами.

     
  8. Mamadu

    Mamadu

    Регистр.:
    20 ноя 2006
    Сообщения:
    532
    Симпатии:
    1.000
    Мде, приятно иметь дело с профи... А сложно сделать в скрипт "иньекцию" чтоб он к бидам по кею еще и количество выдачи Гугла по этому кею дописывал рядышком?
     
  9. Rodik

    Rodik Прохожие

    наверное нет, но я не кодер ;)
    вот тут есть тулза
    http://tools.seobook.com/competition-finder/index.php
     
  10. Virtual

    Virtual Создатель

    Регистр.:
    17 фев 2007
    Сообщения:
    34
    Симпатии:
    9
    Код:
    preg_match_all("/of about <b>(.*)<\/b> for <b>/isU",load_page('http://www.google.com/q='.urlencode($keyword),''),$tres);
    и после этой строки, в $tres[1][0] - у тебя должно быть количество результатов в гугле по кею. :) да, сам кей пихать в $keyword. надеюсь, дальше сам вставишь куда надо, т.к. весь код не смотрел. :)
     
Статус темы:
Закрыта.