Напишите скрипт отбора номеров по критериям

Discussion in 'PHP' started by _Spamer_, 31 May 2009.

  1. _Spamer_

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

    Joined:
    3 Feb 2009
    Messages:
    83
    Likes Received:
    140
    Reputations:
    16
    Надо что б скрипт с текстового файла вида
    Code:
    19589073
    11306657
    16150100
    2515407
    24919724
    23897603
    8524608
    Выбирал номера с масками x , xy, xyz, xyza, xyzab .... Как icq номера)
     
    3 people like this.
  2. Mixon

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

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    а минимальная и максимальная величина чисел?
     
  3. KATYA

    KATYA Active Member

    Joined:
    9 Feb 2009
    Messages:
    236
    Likes Received:
    121
    Reputations:
    9
    А программой ICQSafeBook не пробовал?
     
  4. _Spamer_

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

    Joined:
    3 Feb 2009
    Messages:
    83
    Likes Received:
    140
    Reputations:
    16
    Минимум 2-х значное число, максимум - 10-ти значное

    Safebook не катит
     
  5. Mixon

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

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    KATYA,впринципе может ты и права,но вопщет человек написал в розделе PHP, PERL, MySQL, JavaScript.,наверное же не просто так...
     
  6. KATYA

    KATYA Active Member

    Joined:
    9 Feb 2009
    Messages:
    236
    Likes Received:
    121
    Reputations:
    9
    HTML:
    <? 
    function uin_beautiful($uin) { 
        if(is_numeric($uin)) { 
            $length=strlen($uin); 
            if($length>=5 && $length<=9) { 
                $buf=substr($uin,0,1); 
                for($i=1;$i<$length;$i++) { 
                    $simvol=substr($uin,$i,1); 
                    if(!preg_match("/$simvol/",$buf)) { 
                        $buf.=$simvol; 
                    } 
                } 
                $buf_length=strlen($buf); 
                switch($buf_length) { 
                    case 1: 
                        return 'x'; 
                    break; 
                    case 2: 
                        return 'xy'; 
                    break; 
                    case 3: 
                        return 'xyz'; 
                    break; 
                    case 4: 
                        return 'xyza'; 
                    break; 
                    default: 
                        return 'ХЗ'; 
                    break; 
                } 
            } 
            else return 'Неверная длинна uin-а'; 
        } 
        else return 'Введите верный uin'; 
    } 
    ?>
     
  7. Mixon

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

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    Вот написал такое:

    PHP:
    <?php
    $result
    =file_get_contents('uins.txt');
    for (
    $bezk=0$bezk>-1$bezk++){
    $vid="0";
    $abc="";
    $ex=explode("\r\n"$result);
    $num=$ex[$bezk];
    if(
    $num==""){exit;}
    $vid="0";
    for (
    $i=0$i<10$i++){
    if (
    preg_match("/$i/",$num)){
    $vid=$vid+1;
    $abc.=$vid;
    }
    }
    $abc=str_replace("1","x",$abc);
    $abc=str_replace("2","y",$abc);
    $abc=str_replace("3","z",$abc);
    $abc=str_replace("4","a",$abc);
    $abc=str_replace("5","b",$abc);
    $abc=str_replace("6","c",$abc);
    $abc=str_replace("7","d",$abc);
    $abc=str_replace("8","e",$abc);
    $abc=str_replace("9","f",$abc);
    $abc=str_replace("0","g",$abc);
    echo 
    $num." - ".$abc."<br>";
    }
    ?>
     
    1 person likes this.
  8. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    PHP:
    <?php
    $nums
    =Array(
    19589073,
    11306657,
    16150100,
    2515407,
    24919724,
    23897603,
    8524608,
    );

    $numtype=Array(1=>'x',2=>'xy',3=>'xyz',4=>'xyza',5=>'xyzab',6=>'xyzabc',7=>'xyzabcd',8=>'xyzabcde',9=>'xyzabcdef',10=>'xyzabcdefg');

    foreach(
    $nums as $num)
    {
      
    $used=Array();

      for(
    $i=0,$num=$num.'',$cnt=strlen($num);$i<$cnt;$i++)
        if(!
    in_array($num{$i},$used))
          
    $used[]=$num{$i};

      print 
    'NUM: '.$num.' - '.$numtype[count($used)].'<br>';
    }

    ?>
    Code:
    NUM: 19589073 - xyzabcd
    NUM: 11306657 - xyzabc
    NUM: 16150100 - xyza
    NUM: 2515407 - xyzabc
    NUM: 24919724 - xyzab
    NUM: 23897603 - xyzabcd
    NUM: 8524608 - xyzabc
    

    А вот с возможностью выбора нужных:
    PHP:
    <?php
    $nums
    =Array(
    19589073,
    11306657,
    16150100,
    2515407,
    24919724,
    23897603,
    8524608,
    );

    $numtype=Array(1=>'x',2=>'xy',3=>'xyz',4=>'xyza',5=>'xyzab',6=>'xyzabc',7=>'xyzabcd',8=>'xyzabcde',9=>'xyzabcdef',10=>'xyzabcdefg');

    $mintype=1//выбираем все от x
    $maxtype=4//до xyza

    foreach($nums as $num)
    {
      
    $used=Array();

      for(
    $i=0,$num=$num.'',$cnt=strlen($num);$i<$cnt;$i++)
        if(!
    in_array($num{$i},$used))
          
    $used[]=$num{$i};

      if((
    $tp=count($used))>=$mintype && $tp<=$maxtype) print 'NUM: '.$num.' - '.$numtype[$tp].'<br>';
    }

    ?>
    Выведет только один подходящий по критериям:
    Code:
    NUM: 16150100 - xyza
     
    #8 d_x, 31 May 2009
    Last edited: 31 May 2009
    2 people like this.
  9. _Spamer_

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

    Joined:
    3 Feb 2009
    Messages:
    83
    Likes Received:
    140
    Reputations:
    16
    Всем спс:)
     
    1 person likes this.