программа для замены по маске

Discussion in 'PHP' started by meisterr, 4 Jun 2009.

  1. meisterr

    meisterr Member

    Joined:
    25 Feb 2009
    Messages:
    40
    Likes Received:
    5
    Reputations:
    0
    Есть txt файл со списком примерно такого содеражния:
    PHP:
    1234.ru/123.php

    email
    =000@rambler.ru
    pass
    =1234 


    www.1234
    .ru

    email
    =12345@yabdex.ru
    password
    =12345 


    12345.com 

    username
    =1234 
    password
    =1234
    Нужно отсюда выдрать данные с 1234.ru/123.php примерно такого вида:

    PHP:
    000@rambler.ru:1234

    Помогите, чем можно такое сделать?
     
    #1 meisterr, 4 Jun 2009
    Last edited: 4 Jun 2009
  2. FireFenix

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

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    открываешь файл и юзаешь выборку по регулярным выражениям, где указываешь маску блока для каждого сайта или домена

    на php делается через file_get_content/fopen + preg_match_all
    Также читаем Топик про регулярные выражения
     
    #2 FireFenix, 4 Jun 2009
    Last edited: 4 Jun 2009
  3. meisterr

    meisterr Member

    Joined:
    25 Feb 2009
    Messages:
    40
    Likes Received:
    5
    Reputations:
    0
    а програмку или php скрипт не подскажите?
     
  4. Dr.TRO

    Dr.TRO Member

    Joined:
    29 Jan 2009
    Messages:
    20
    Likes Received:
    7
    Reputations:
    10
    тебе сказали реализацию на пхп, подскажем еще регулярки :
    http://gskinner.com/RegExr/
     
  5. meisterr

    meisterr Member

    Joined:
    25 Feb 2009
    Messages:
    40
    Likes Received:
    5
    Reputations:
    0
    спс всем. Тему закрывать можно
     
  6. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Вот, к примеру, примерный парсинг
    PHP:
    preg_match_all ('/(.+?)\s+(email|username)=(.+?)\s+(pass|password)=(.+?)\s+/'$str$m);
    $cnt count ($m[0]);
    for (
    $i 0$i $cnt$i++)
      echo 
    $m[1][$i], ':'$m[3][$i], ':'$m[5][$i], "\n";
    Доработать регулярку под нужные данные несложно