Регулярка... Нужна помощь

Discussion in 'PHP' started by _==wolf==_, 7 Sep 2008.

  1. _==wolf==_

    _==wolf==_ Elder - Старейшина

    Joined:
    29 May 2008
    Messages:
    127
    Likes Received:
    38
    Reputations:
    6
    $fp = fopen("icq.txt" "r")
    for ($i=0; $i < "62"; $i++)
    {
    preg_match($icq,$fp,$pass); правильная регулярка тут
    подключение к базе тут
    $sql = 'INSERT INTO `prs-clan_icqbot`.`icqlist` (`icq`, `pass`, `active`, `userid`) VALUES ('.$icq.', '.$pass.', \'1\', \'0\');';
    }

    я не разбираюсь в preg_match и забыл как подключиться к базе.
    это не полный скрипт который берёт из файла icq.txt
    строчку вида icq;pass делит на две переменные $icq и $pass и вставляет их в таблицу, потом берёт следующую строку и тд...
    короче нужна правильная регулярка, и строка подключения к базе (это я тоже забыл)

    вот вид icq.txt
    icq;pass
    icq;pass
    icq;pass
    icq;pass
    ...
     
  2. a1ex

    a1ex Banned

    Joined:
    11 Oct 2006
    Messages:
    517
    Likes Received:
    130
    Reputations:
    -13
    Идёт запись в файл или чтение?Или и то и другое?
     
  3. NuR

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

    Joined:
    11 Dec 2005
    Messages:
    85
    Likes Received:
    58
    Reputations:
    -2
    PHP:
    <?php

    $link 
    mysql_connect('localhost''mysql_user''mysql_password');
    if (!
    $link) {
        die(
    'Could not connect: ' mysql_error());
    }
    mysql_select_db("dbname");
    $fp fopen("icq.txt""r");

    while (!
    feof($fp)) {
        
    $s fgets($fp);
        
    $a explode(";"$s);
        
    $icq mysql_real_escape_string($a[0]);
        
    $pass mysql_real_escape_string($a[1]);
        
    $sql 'INSERT INTO `prs-clan_icqbot`.`icqlist` (`icq`, `pass`, `active`, `userid`) VALUES (' .
            
    $icq ', ' $pass ', \'1\', \'0\');';
        
    mysql_query($sql);
    }
    mysql_close($link);
    ?>
     
    #3 NuR, 7 Sep 2008
    Last edited: 7 Sep 2008
  4. fucker"ok

    fucker"ok Elder - Старейшина

    Joined:
    21 Nov 2004
    Messages:
    578
    Likes Received:
    274
    Reputations:
    91
    PHP:
    <?php
    mysql_connect
    ("localhost""root""123");
    mysql_selectdb("prs-clan_icqbot");
    $list file('icq.txt');
    for (
    $i 0$i count($list); $i++)
    {
        if (
    preg_match("/^(\d+):(.+)$/i"$list[$i], $match))
       {
            
    $icq $match[1];
             
    $pass $match[2];
              
    $sql 'INSERT INTO `prs-clan_icqbot`.`icqlist` (`icq`, `pass`, `active`, `userid`) VALUES ('.$icq.', '.$pass.', \'1\', \'0\');';
             
    mysql_query($sql);
       }

    }
    ?>
    Накидал без проверки. Примерно так должно выглядеть. Если файл большой, то лучше считывать построчно, а не заганять все в массив как в моем примере.
     
    #4 fucker"ok, 7 Sep 2008
    Last edited: 7 Sep 2008
  5. _==wolf==_

    _==wolf==_ Elder - Старейшина

    Joined:
    29 May 2008
    Messages:
    127
    Likes Received:
    38
    Reputations:
    6
    спасибо огромное!
     
  6. cylaaaan

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

    Joined:
    31 Aug 2006
    Messages:
    0
    Likes Received:
    44
    Reputations:
    8
    PHP:
    <?
    $db mysql_connect("localhost","username","password");
    mysql_select_db("icqbot",$db);
    mysql_query("SET NAMES 'cp1251'");

    $filename "icq.txt"
    $rel=@file_get_contents($filename);
    $str explode("\n",$rel); 
    foreach(
    $str as $acc)
    {
    $auth explode(";",$acc);
    $uin $auth[0];
    $pw $auth[1];
    mysql_query("INSERT INTO `prs-clan_icqbot`.`icqlist` (`icq`, `pass`, `active`, `userid`) VALUES ('".$uin."','".pw."','1','0')",$db);  
    }
    ?>
     
    #6 cylaaaan, 7 Sep 2008
    Last edited: 7 Sep 2008
    1 person likes this.
  7. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    PHP:
    <? 
    $db mysql_connect("localhost","username","password"); 
    mysql_select_db("icqbot",$db); 
    mysql_query("SET NAMES 'cp1251'"); 

    $filename "icq.txt";  
    $rel=file($filename); 
    foreach(
    $rel as $acc

    $auth explode(";",$acc); 
    $uin $auth[0]; 
    $pw trim($auth[1]); 
    mysql_query("INSERT INTO `prs-clan_icqbot`.`icqlist` (`icq`, `pass`, `active`, `userid`) VALUES ('".$uin."','".pw."','1','0')",$db);   

    ?>
     
  8. cylaaaan

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

    Joined:
    31 Aug 2006
    Messages:
    0
    Likes Received:
    44
    Reputations:
    8
    в качестве пароля icq, пробелы могут присутствовать :)
     
    1 person likes this.
  9. +toxa+

    +toxa+ Smack! SMACK!!!

    Joined:
    16 Jan 2005
    Messages:
    1,674
    Likes Received:
    1,028
    Reputations:
    1,228
    зачем делать
    PHP:
    $auth explode(";",$acc); 
    $uin $auth[0]; 
    $pw trim($auth[1]);  
    если можно сделать просто
    PHP:
    list($uin,$pw) = explode(";",$acc); 
     
    _________________________
  10. NuR

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

    Joined:
    11 Dec 2005
    Messages:
    85
    Likes Received:
    58
    Reputations:
    -2
    это вся соль пхп =) одно действие можно сделать по разному=)
     
  11. n3m0

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

    Joined:
    11 May 2007
    Messages:
    133
    Likes Received:
    92
    Reputations:
    11
    Code:
    m[([0-9]{5,9}):(.+)]