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

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

Thread Status:
Not open for further replies.
  1. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    PHP:
    while ($models mysql_fetch_array($model))
         echo 
    $models[1].',';
     
  2. anakreon

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

    Joined:
    19 Mar 2006
    Messages:
    30
    Likes Received:
    3
    Reputations:
    0
    Не проходит... Пустоту выводит
     
  3. SeGaLWS

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

    Joined:
    13 Jan 2008
    Messages:
    38
    Likes Received:
    8
    Reputations:
    0
    специально написал в скобках (1,2,3,4,5) в предложеном варианте выводит (1,2,3,4,5,)
     
  4. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    PHP:
    $a='(';
    while (
    $models mysql_fetch_array($model))
         
    $a.=$models[1].',';  
    $a.=')';
    $a str_replace(',)'')'$a);
    или

    PHP:
    $a='';
    while (
    $models mysql_fetch_array($model))
         
    $a.=$models[1].',';  
    unset(
    $a[strlen($a)-1]);
     
  5. LolFEm

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

    Joined:
    8 Sep 2006
    Messages:
    160
    Likes Received:
    52
    Reputations:
    5
    так не проше?

    PHP:
    $str="";
    while (
    $models mysql_fetch_array($model)) 
         
    $str $str $models[1].','
    $result substr($str,0,strlen($str)-1);
     
    1 person likes this.
  6. X-FRITS

    X-FRITS Elder - Старейшина

    Joined:
    24 Jun 2007
    Messages:
    57
    Likes Received:
    81
    Reputations:
    7
    Привет всем, я в php полный нуб!!только сегодня начал учить))
    читать книги было влом, и потому я на чал искать движки форумов и разбирать их, понял я многое, что не понимал - гуглил.
    когда я чуток врубился, написал себе скрипт, который смотрит в онлайне ли моя аси и меняет иконку, там возле названия сайта(_http://creeptor.org(это не реклама))
    и вот мне стало интересно сколько людей сидят в icq в даный момент, и я написал скрипт, который должен сам всё подсчитывать.
    но скрипт нормально не работает((
    если нужно проверить 10 или 50 номеров, работает на ура!! а если больше, то он тупит(( хотя set_time_limit(0); может у меня хост тупой?? если нужно могу выложить скрипт(_http://creeptor.org/chek2.php)

    P.S. прошу не судить строго я только сегодня начал его учить

    ============

    я понял, проблема не в set_time_limit(0), а в чем-то другом, так как я свой первый чекер влючил(_http://creeptor.org/chek.php) т он нормально работает... но у него другое предназнаечение
     
    #2466 X-FRITS, 28 Mar 2008
    Last edited: 28 Mar 2008
  7. X-FRITS

    X-FRITS Elder - Старейшина

    Joined:
    24 Jun 2007
    Messages:
    57
    Likes Received:
    81
    Reputations:
    7
    PHP:
    <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd'>
    <html><head>
    <title>Creeptor</title>
    <link rel='stylesheet' type='text/css' href='/css/index.css' />
    </head>
    <body>
    <?php
    $a
    =0;
    $s=0;
    $d=0;
    $k=0;
    $q=0;
    set_time_limit(0);
    for(
    $i=900000;$i<=900050;$i++){
    $f=imagecolorat(imagecreatefromgif("http://status.icq.com/online.gif?icq=$i&img=27"), 57);
    $q=$q+1;
    if(
    $f==52){$a=($a+1);}else{if($f==82){$s=($s+1);}else{if($f==48){$d=($d+1);}else{$k=($k+1);echo "$k ERRORE - $i - $f<br>";}}}}
    echo 
    "<h1>Проверено: $q<br />В онлайне: $a<br />В офлайне: $s<br />Неизвесно: $d<br />Ошибок: $k</h1></body></html>";
    ?>
     
    #2467 X-FRITS, 29 Mar 2008
    Last edited: 29 Mar 2008
  8. X-FRITS

    X-FRITS Elder - Старейшина

    Joined:
    24 Jun 2007
    Messages:
    57
    Likes Received:
    81
    Reputations:
    7
    я что-то совсем не могу врубится, что это шняга делает(не достаточно владею JS), но разве это не раздел для php??
     
  9. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    у тя скрипт каким образом глючит? кстате существует конструкция elseif или switch case
     
  10. azote

    azote New Member

    Joined:
    28 Mar 2008
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    PHP:
    <?php

    include_once"../template/pclzip.php";

    $dir=check($dir);  //папка

    $arch=check($arch); //архив
      
    $open=check($open);

    echo 
    '<div class=v><b>Просмотр архива</b></div>';
    if(
    $dir!="" && $arch!=""){
    if (!
    $action){

    $zip=new PclZip("$dir/$arch");
    if ((
    $list $zip->listContent()) != 0){
         
    for (
    $i=0$i<sizeof($list); $i++){
    for(
    reset($list[$i]);
    $key key($list[$i]);
    next($list[$i])) {
    $zfilesize strstr($listcontent,"--size"); 
    $zfilesize ereg_replace("--size:","",$zfilesize);
    $zfilesize =@ereg_replace("$zfilesize","$zfilesize|",$zfilesize); 
    $sizelist .="$zfilesize"
      
                    
    $listcontent "[$i]--$key:".$list[$i][$key]."";
    $zfile strstr($listcontent,"--filename");
    $zfile =ereg_replace("--filename:","",$zfile);
    $zfile =@ereg_replace("$zfile","$zfile|",$zfile);
    $savelist .="$zfile";
               
    }}

    $sizefiles2 explode("|",$sizelist);
    $sizelist2=array_sum($sizefiles2);
    $obkb=round($sizelist2/1024,2);

    $preview explode("|",$savelist);

    $count count($preview)-1;
    echo 
    '<div class=pay><img src="../images/img/zip.gif" alt=""> <b>'.$arch.'</b><br>';
    echo 
    '<img src="../img/o.gif" alt="">Всего файлов: '.$count.'<br><img src="../img/go.gif" alt="">Вес архива: '.$obkb.' кб</div>';

    if (empty(
    $_GET['start'])) $start 0;
    else 
    $start $_GET['start'];
    if (
    $count $start $config_ziplist){ $end $count; }
    else {
    $end $start $config_ziplist; }
    for (
    $i $start$i $end$i++){
        
    $sizefiles explode("|",$sizelist); //вырезаем элементы из массива с размерами файлов
    $selectfile explode("|",$savelist);
    $path $selectfile[$i];
    $fname ereg_replace(".*[\\/]","",$path);
    $zdir ereg_replace("[\\/]?[^\\/]*$","",$path);
    $path str_replace("/","*",$path);

    $ext=strtolower(strrchr($fname"."));

    switch(
    $ext){
    case 
    'dir'$ico='dir.gif'; break;
    case 
    '.jpg': case '.jpeg'$ico='jpg.gif'; break;
    case 
    '.gif'$ico='gif.gif'; break;
    case 
    '.mid'$ico='mid.gif'; break;
    case 
    '.mp3'$ico='mp3.gif'; break;
    case 
    '.wav': case '.amr'$ico='wav.gif'; break;
    case 
    '.mmf'$ico='mmf.gif'; break;
    case 
    '.jad'$ico='jad.gif'; break;
    case 
    '.jar'$ico='jar.gif'; break;
    case 
    '.zip'$ico='zip.gif'; break;
    case 
    '.txt'$ico='txt.gif'; break;
    case 
    '.exe'$ico='exe.gif'; break;
    case 
    '.htm'$ico='htm.gif'; break;
    case 
    '.html'$ico='htm.gif'; break;
    case 
    '.php'$ico='php.gif'; break;
    default: 
    $ico='file.gif'; break; }

    if(!
    $fname){
    echo 
    '<img src="../images/icons/dir.gif" alt=""> <b>Директория '.$zdir.'</b><br>';
    }else{
    echo 
    '<img src="../images/icons/'.$ico.'" alt=""> <a href="zip.php?action=preview&amp;dir='.$dir.'&amp;arch='.$arch.'&amp;open='.$path.'&amp;start='.$start.'&amp;'.SID.'">'.$zdir.'/'.$fname.'</a>';
    echo 
    ' ('.formatsize($sizefiles[$i]).')<br>'

    }}

    echo 
    '<div class=pay>';
    if (
    $start != 0) {echo '<img src="../img/go.gif" alt=""><a href="zip.php?start='.($start $config_ziplist).'&amp;dir='.$dir.'&amp;arch='.$arch.'&amp;'.SID.'">Назад</a>';}else{echo'<img src="../img/go.gif" alt="">Назад';}
    echo 
    ' | ';
    if (
    $count $start $config_ziplist) {echo ' <a href="zip.php?start='.($start $config_ziplist).'&amp;dir='.$dir.'&amp;arch='.$arch.'&amp;'.SID.'">Далее</a><img src="../img/g.gif" alt="">';}else{echo'Далее<img src="../img/g.gif" alt="">';}


    $total=$count;
    if(
    $total>0){
    $ba=ceil($total/$config_ziplist);
    $ba2=$ba*$config_ziplist-$config_ziplist;
    echo 
    '<br>';
    echo 
    '<img src="../img/g.gif" alt="">Страницы:';
    $asd=$start-($config_ziplist*3);
    $asd2=$start+($config_ziplist*4);

    if(
    $asd<$total && $asd>0){echo ' <a href="zip.php?start=0&amp;dir='.$dir.'&amp;arch='.$arch.'&amp;'.SID.'">1</a> ... ';}
    for(
    $i=$asd$i<$asd2;)
    {
    if(
    $i<$total && $i>=0){
    $ii=floor(1+$i/$config_ziplist);

    if (
    $start==$i) {
    echo 
    ' <b>'.$ii.'</b>';
    } else {
    echo 
    ' <a href="zip.php?start='.$i.'&amp;dir='.$dir.'&amp;arch='.$arch.'&amp;'.SID.'">'.$ii.'</a> ';
    }}
    $i=$i+$config_ziplist;
    }
    if(
    $asd2<$total){echo ' ... <a href="zip.php?start='.$ba2.'&amp;dir='.$dir.'&amp;arch='.$arch.'&amp;'.SID.'">'.$ba.'</a>';}
    }

    }else{
    echo 
    '<br><b>Невозможно открыть архив!</b><br>';
    echo 
    'Ошибка: '.$zip->errorInfo(true);

    }
    echo
    '<br><div class=pay><img src="../img/go.gif" alt=""><a href="down.php?action=ob&amp;did='.$dir.'&amp;fid='.$arch.'&amp;'.SID.'">Вернуться</a></div>'
    }
    //////////////////////////////////action preview////////////////////////////////
    if($action=="preview"){
        
    $open str_replace("*","/",$open);    
        
    $zip=new PclZip("$dir/$arch");
    $content $zip->extract(PCLZIP_OPT_BY_NAME$open,PCLZIP_OPT_EXTRACT_AS_STRING);
    $content $content[0]['content'];


    $letters=array("а","б","в","г","д","е","ё","ж","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ъ","ы","ь","э","ю","я","А","Б","В","Г","Д","Е","Ё","Ж","З","И","Й","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х","Ц","Ч","Ш","Щ","Ъ","Ы","Ь","Э","Ю","Я");

    for ( 
    $b=0$b<66$b++) {if(strstr($content,$letters[$b])!== false){$utf="ok";}}
    $preview2 explode("\r\n",$content);
    $count count($preview2);

    /* function highlight_code($code) {
    $code=trim($code);
    return highlight_string($code,true);} */

    echo '<img src="../images/img/zip.gif" alt=""> <b>'.$arch.'</b><br>';
    echo 
    '<img src="../images/img/files.gif" alt=""> <b>'.$open.'</b><br>';
    echo 
    'Всего строчек: '.(int)$count.'<br><hr>';

    if(
    $utf=="ok"){echo highlight_code($content);}else{echo highlight_code(win_to_utf($content));}

    echo
    '<div class=pay><img src="../img/go.gif" alt="">';
    echo
    '<a href="zip.php?start='.$start.'&amp;dir='.$dir.'&amp;arch='.$arch.'&amp;'.SID.'">Вернуться</a></div>'
    }
    }else{
    header ("Location: index.php?".SID); exit;}
    echo
    '<div class=pay><img src="../img/go.gif" alt=""><a href="down.php?did='.$dir.'&amp;'.SID.'">В раздел</a><br>';     
    echo
    '<img src="../img/go.gif" alt=""><a href="index.php?'.SID.'">К категориям</a></div></div></div>';    

    ?>


    ------------------------------------------------

    Подскажите, как сделать чтоб не только просматривать файлы в архиве можно было, но и выкачивать их напрямую из архива, нераспаковывая его
     
    #2470 azote, 29 Mar 2008
    Last edited: 29 Mar 2008
  11. X-FRITS

    X-FRITS Elder - Старейшина

    Joined:
    24 Jun 2007
    Messages:
    57
    Likes Received:
    81
    Reputations:
    7
    РАБОЧИЙ:
    HTML:
    <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd'>
    <html><head>
    <title>Creeptor</title>
    <link rel='SHORTCUT ICON' href='http://status.icq.com/27/online1.gif' />
    <link rel='stylesheet' type='text/css' href='/css/index.css' />
    </head>
    <body>
    <h1>Проверено: 51(с 900051 до 900050)<br />В онлайне: 0<br />В офлайне: 1<br />Неизвесно: 50<br />Ошибок: 0</h1></body></html>
    НЕРАБОЧИЙ:
    HTML:
    <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd'>
    <html><head>
    <title>Creeptor</title>
    <link rel='SHORTCUT ICON' href='http://status.icq.com/27/online1.gif' />
    <link rel='stylesheet' type='text/css' href='/css/index.css' />
    </head>
    <body>
    если просмотреть исходный код готовый страницы тогда видно, что for(...) не работает до конца...
     
  12. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    1. Нормальная регулярка для проверки емаил на валидность (при условии что потом $email приводим к нижнему регистру) или есть получше?
    PHP:
    function email_test($email)
      {  
       if(
    ereg('^[_.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]*.)+[a-zA-Z]{2,4}$'$email)) return 1//правильный емайл
       
    return 0// не правильный емайл
      
    }
    2. Дайте, плиз нормальную, готовую регулярку для проверки логина на валидность. Под валидностью подразумевается использование разрешённых символов, длина {4,10}
     
    #2472 -=lebed=-, 29 Mar 2008
    Last edited: 29 Mar 2008
  13. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    [_.0-9a-zA-Z-] -> [_\.0-9a-zA-Z-]
    ([0-9a-zA-Z][0-9a-zA-Z-]*.) зачем круглые скобки? снова точка не экранируется
     
  14. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    И можно убрать A-Z, оставить только a-z, а функцию заменить на eregi(), а лучше вообще в PCRE написать, они быстрее posix.
     
  15. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    Так?
    PHP:
    [php]
    function 
    email_test($email)
      {  
       if(
    ereg('^[_\.0-9a-zA-Z-]+@[0-9a-zA-Z][0-9a-zA-Z-]*\.+[a-zA-Z]{2,4}$'$email)) return 1//правильный емайл
       
    return 0// не правильный емайл
      
    }
     
  16. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    \w|[\._-]+@(\w|\.+)[a-z]{2,4} м?

    -=lebed=- PCRE рулит и скоро обгонит POSIX во всём=)
     
    #2476 Doom123, 29 Mar 2008
    Last edited: 29 Mar 2008
    1 person likes this.
  17. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    /^\w+([\.\w]+)*\w@\w((\.\w)*\w+)*\.\w{2,3}$/
     
  18. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    \w не покатит, русские буквы будут проходить.
     
  19. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    тада

    '#^[a-z0-9\._-]+@[a-z0-9\.]+[a-z]{2,4}$#is'
     
    #2479 Doom123, 29 Mar 2008
    Last edited: 29 Mar 2008
  20. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    - я так понял регулярка де-факто для проверки E-mail?
    Code:
    /^\w+([\.\w]+)*\w@\w((\.\w)*\w+)*\.\w{2,3}$/
    PS В тегах php тут на форуме экранирующий слэш режется.
    P.P.S. Дайте ещё регулярку де-факто для логина, т.е набор допустимых символов + национальные (или лучше с ними не возится?)
     
Thread Status:
Not open for further replies.