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

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

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

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

    Joined:
    14 May 2006
    Messages:
    345
    Likes Received:
    96
    Reputations:
    41
    регулярные выражения в php, часть 1
    регулярные выражения в php, часть 2
     
  2. Insane bboy

    Insane bboy New Member

    Joined:
    11 Jul 2009
    Messages:
    52
    Likes Received:
    3
    Reputations:
    0
    есть ли у кого нить класс работы с мульти курлом, скиньте пожалуйста ссылку или код, просто очень хочется "многопоточность", а мой попытки кончаются вообще херней какой то... нужно чтоб к примеру, есть 30урл и 30пост запросов и чтоб скрипт слал по 10 запросов потом след 10 и тд... то что я пробывал , писал, вообще путает все запросы и урл:( ...ну на крайней случай скинте нормальный ман по мульти курлу))) ну желательно класс:) чтоб к примеру я задавал число потоков и тд тд:)
     
    #12182 Insane bboy, 11 Oct 2009
    Last edited: 11 Oct 2009
  3. zifanchuck

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

    Joined:
    27 Oct 2008
    Messages:
    396
    Likes Received:
    154
    Reputations:
    3
    Чето бошка уже не варит. хочу сделать добавления картики в группу. Может ктото делал такое поможет.
    Опыта заливки фоток через курл у меня нет, и чето никак не отправляеться, выдает Security Breach2.
    Типа как я ето все делал
    1. захожу в "добавить фотографию"
    2.Выдираю все что нужно
    деру так
    PHP:
        preg_match_all ('#upload\" action=\"(.*)\"#iU'$result$regs);
        
    $ssil $regs[1][0];

        
    preg_match_all ('#name=\"id\" value=\"(.*)\"#iU'$result$regs);
        
    $id $regs[1][0];

        
    preg_match_all ('#name=\"mid\" value=\"(.*)\"#iU'$result$regs);
        
    $mid $regs[1][0];

        
    preg_match_all ('#name=\"hash\" value=\"(.*)\"#iU'$result$regs);
        
    $hash $regs[1][0];

        
    preg_match_all ('#name=\"rhash\" value=\"(.*)\"#iU'$result$regs);
        
    $rhash $regs[1][0];

    3.потом отправляю запрос курлом

    PHP:
        $result curl($ssil, array(
                   
    'act'=>"do_add",
                   
    'id'=>$id,
                   
    'aid'=>$id,
                   
    'gid'=>$i,
                   
    'hash'=>$hash,
                   
    'vk'=>"",
                   
    'rhash'=>$rhash,
                   
    'filename'=>"@$foto",
                   
    'name'=>'file1'));
    сама функция курла

    PHP:
    function curl($url,$post)
    {
    $cfile 'cookies.txt';
    $ch curl_init();
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    curl_setopt($chCURLOPT_URL$url);
    curl_setopt($chCURLOPT_HEADER1);
    curl_setopt($chCURLOPT_POSTFIELDS$post);
    curl_setopt($chCURLOPT_COOKIEJAR$cfile);
    curl_setopt($chCURLOPT_COOKIEFILE$cfile);
    curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);
    curl_setopt($chCURLOPT_POST1);
    $result curl_exec($ch);
    curl_close($ch);
    return 
    $result;
    };
    картинка лежит вместе со скриптом. Надеюсь поможете))
     
  4. Deathdreams

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

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    zifanchuck
    Реферер надо передать.
     
  5. Myload

    Myload Banned

    Joined:
    15 Mar 2009
    Messages:
    0
    Likes Received:
    96
    Reputations:
    6
    если добрые люди переписать чат на Mysql и добавить функции в чат?
    стучите в асю:)
     
    2 people like this.
  6. harom

    harom New Member

    Joined:
    15 Jan 2009
    Messages:
    25
    Likes Received:
    0
    Reputations:
    0

    так и не решил вопрос как выводить порядка 15 ответов ниже "лучшего" не включая его самого
     
  7. zifanchuck

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

    Joined:
    27 Oct 2008
    Messages:
    396
    Likes Received:
    154
    Reputations:
    3
    не помогло вставить реферера. по всему контакту скрипты норм работают и без реферера.

    вот какие хттп заголовки
    Правильно ли я отправлял в приведеном више скрипте?
     
  8. WVBR

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

    Joined:
    14 Feb 2008
    Messages:
    45
    Likes Received:
    17
    Reputations:
    0
    $reyting[0]=8;
    $reyting[1]=9;
    $reyting[2]=3;

    $otvet[0]='da';
    $otvet[1]='net';
    $otvet[2]='neznau';

    в цикле анализируем массив $reyting
    находим максимальное значение
    запоминаем индекс

    выводим ответ индекс которого = индексу максимального элемента массив $reyting
    в цикле выводим ответы с условием что индекс массива $otvet не равен индексу максимального элемента массив $reyting

    )) какой вопрос такой ответ
     
  9. harom

    harom New Member

    Joined:
    15 Jan 2009
    Messages:
    25
    Likes Received:
    0
    Reputations:
    0
    WVBR почему же... в целом всё понятно))
     
  10. zifanchuck

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

    Joined:
    27 Oct 2008
    Messages:
    396
    Likes Received:
    154
    Reputations:
    3
    люди помогите плизз. уже целый вечер пробую исправить скрипт, результатов 0 ((
    пост #12853 и #12857
    очень надеюсь на помощь. скорее всего не так формирую пост запрос, но опята в етом нет, надеюсь на помощь...
     
  11. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    zifanchuck 'filename' заменить на 'file1', поле 'name' - убрать, добавить поле 'mid'

    harom Создать новый ассоциативный массив из двух исходных и отсортировать по желанию. Потом первый элемент (тот который лучший) - удалить. Без кода не так очевидно, так что:
    PHP:
    $reyting[0]=8;
    $reyting[1]=9;
    $reyting[2]=3;

    $otvet[0]='da';
    $otvet[1]='net';
    $otvet[2]='neznau';


    $array array_combine($reyting,$otvet);
    krsort($arraySORT_NUMERIC);
    // Выводим топовый ответ:
    var_dump(array_shift($array));
    // Выводим оставшийся массив, уже без первого эл-та
    var_dump($array);
     
    _________________________
    #12191 Gifts, 12 Oct 2009
    Last edited: 12 Oct 2009
  12. [K4t]

    [K4t] New Member

    Joined:
    15 Feb 2009
    Messages:
    53
    Likes Received:
    4
    Reputations:
    1
    Здравстуйте. Как можно сделать отображение списка ссылок на страницы, типа << [1] [2] [3].. >> далее. делаю каталог (mysql). сейчас у меня получилось только это:
    Code:
      $sql = mysql_result(mysql_query("select count(*) from $table"),0);
      for ($i=0;$i<=$sql-1;$i++)
      {
        $ix = $i + 1;
    	if ($id == $i)
    	{
          echo "<a href=$site?id=$i><b>[</b> $ix <b>]</b></a>";
    	} else { echo "<a href=$site?id=$i>[ $ix ]</a>";}
        $ix = $i - 1;
      }
    А как можно сделать что-то адекватное с определённым колвом ссылок?
     
  13. WVBR

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

    Joined:
    14 Feb 2008
    Messages:
    45
    Likes Received:
    17
    Reputations:
    0
    функция
    Code:
     function link_bar($page, $count, $pages_count, $show_link,$ll)
    {
    if ($pages_count == 1) return false;
    $sperator = ' '; 
    $style = 'style="color: #808000; text-decoration: none;"';
    $begin = $page - intval($show_link / 2);
    unset($show_dots); 
    if ($pages_count <= $show_link + 1) $show_dots = 'no';
    if (($begin > 2) && ($pages_count - $show_link > 2)) {
    echo '<a '.$style.' href=\''.$ll.'&rz=1#f\'> <<< </a> ';
    }
    for ($j = 0; $j <= $show_link; $j++)
    {
    $i = $begin + $j;
    if ($i < 1) continue;
    if (!isset($show_dots) && $begin > 1) {
    echo ' <a '.$style.' href=\''.$ll.'&rz='.($i-1).'#f\'><b>...</b></a> ';
    $show_dots = "no";
    }
    if ($i > $pages_count) break;
    if ($i == $page) {
    echo ' <a '.$style.' ><b>'.$i.'</b></a> ';
    } else {
    echo ' <a '.$style.' href=\''.$ll.'&rz='.$i.'#f\'>'.$i.'</a> ';
    }
    if (($i != $pages_count) && ($j != $show_link)) echo $sperator;
    if (($j == $show_link) && ($i < $pages_count)) {
    echo ' <a '.$style.' href=\''.$ll.'&rz='.($i+1).'#f\'><b>...</b></a> ';
    }
    }
    if ($begin + $show_link + 1 < $pages_count) {
    echo ' <a '.$style.' href=\''.$ll.'&rz='.$pages_count.'#f\'> >>> </a>';
    }
    return true;
    } 
    
    
    Вызвать так
    Code:
    link_bar($rzt,$kol,$kol, 15,'?l=static&&wpp='.$wpp);
    
    если я правильно понял что требуется)
     
    1 person likes this.
  14. zifanchuck

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

    Joined:
    27 Oct 2008
    Messages:
    396
    Likes Received:
    154
    Reputations:
    3
    Gifts, спс, только вот всеравно не пашет(

    шлю так
    PHP:
        $result curl($ssil, array(
                   
    'act'=>"do_add",
                   
    'id'=>$id,
                   
    'aid'=>$id,
                   
    'gid'=>$i,
                   
    'mid'=>$mid,
                   
    'hash'=>$hash,
                   
    'vk'=>"",
                   
    'rhash'=>$rhash,
                   
    'file1'=>"@$foto"));
    Вроде так как ты сказал. всеравно пишет ошибку(
     
  15. Genry13

    Genry13 New Member

    Joined:
    19 May 2009
    Messages:
    13
    Likes Received:
    1
    Reputations:
    0
  16. gisTy

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

    Joined:
    24 May 2008
    Messages:
    432
    Likes Received:
    160
    Reputations:
    27
    значит плохо выучил
     
  17. TweakeR

    TweakeR Member

    Joined:
    6 Feb 2006
    Messages:
    54
    Likes Received:
    8
    Reputations:
    5
    zifanchuck, Почти такая же ситуация, но только у меня пишет:

    PHP:
    HTTP/1.1 302 Found Servernginx/0.7.59
    Date
    Mon12 Oct 2009 17:47:19 GMT 
    Content
    -Typetext/htmlcharset=windows-1251 
    Connection
    keep-alive 
    X
    -Powered-ByPHP/5.2.0-8+etch13 
    Pragma
    no-cache 
    Cache
    -control: private, must-revalidate 
    Location
    http://vk.com/photos.php?act=done_add&mid=11299865&aid=97211801&gid=0& server=4165&photos=&hash=85bdc5277d4ef08f05738839d3a739ee 
    Content-Length0
    А фото нету :confused:
     
  18. zifanchuck

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

    Joined:
    27 Oct 2008
    Messages:
    396
    Likes Received:
    154
    Reputations:
    3
    TweakeR, код кинь))) ето походу рабочий. потом наверное нужно по тому урлу что вконце пройти, типа подтверждения, имхо. код кинь или в личку или в теме отпишись) а то яуже сутки ломаю голову)))
     
  19. TweakeR

    TweakeR Member

    Joined:
    6 Feb 2006
    Messages:
    54
    Likes Received:
    8
    Reputations:
    5
    zifanchuck, держи
    PHP:
                preg_match_all("#album([0-9]+)_([0-9]+)#",$alb,$alb_id);
                
    $alb_id_userid $alb_id[1][0];
                
    $alb_id_alboid $alb_id[2][0];
                print 
    "We open an album ".$alb_id_alboid." --- OK\n";
                
                
    $photo $this->twk_curl("http://vk.com/photos.php?act=add&id=".$alb_id_alboid."&oid=".$alb_id_userid ,$cook,"","http://vk.com/photos.php?act=add&id=".$alb_id_alboid."&oid=".$id);
                
    preg_match_all ('#upload\" action=\"(.*)\"#iU'$photo$regs);$ssil $regs[1][0]; 
                
    preg_match_all ('#name=\"id\" value=\"(.*)\"#iU'$photo$regs);$aid $regs[1][0]; 
                
    preg_match_all ('#name=\"mid\" value=\"(.*)\"#iU'$photo$regs);$mid $regs[1][0]; 
                
    preg_match_all ('#name=\"hash\" value=\"(.*)\"#iU'$photo$regs);$hash $regs[1][0]; 
                
    preg_match_all ('#name=\"rhash\" value=\"(.*)\"#iU'$photo$regs);$rhash $regs[1][0];
               
                return 
    $this->twk_curl($ssil,$cook,"act=do_add&id=".$aid."&aid=".$aid."&gid=0&mid=".$mid."&hash=".$hash."&vk=1&rhash=".$rhash."&file1=foto.jpg","http://vk.com/photos.php?act=add&id=".$aid."&oid=".$mid);



    Сама функция:
    PHP:
      function twk_curl($hostname,$cook,$postfield,$refer) {
        global 
    $vkcookie;
          if((
    $ch curl_init($hostname)) == TRUE)
          { 
               
    curl_setopt($chCURLOPT_HEADER1); 
               
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3');
               
    curl_setopt($chCURLOPT_REFERER$refer); 
               
    curl_setopt($chCURLOPT_POST1); 
               
    curl_setopt($chCURLOPT_POSTFIELDS$postfield); 
               
    curl_setopt($chCURLOPT_RETURNTRANSFER1); 
               
    curl_setopt($chCURLOPT_HTTPHEADER, array('Expect:')); 
               
    curl_setopt($chCURLOPT_COOKIE$cook);
               
    curl_exec($ch); 
               
    $result curl_multi_getcontent($ch);
               
    curl_close($ch);
               
    flush();
               return 
    $result;
          }  
      }
    Если будут успехи отпишись, тоже запарился =\
     
  20. TweakeR

    TweakeR Member

    Joined:
    6 Feb 2006
    Messages:
    54
    Likes Received:
    8
    Reputations:
    5
    разобрался, ошибка редирикта
    PHP:
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    :)
     
Thread Status:
Not open for further replies.