php поиск и замена значений в файле csv

Discussion in 'PHP' started by GAiN, 23 Mar 2014.

  1. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    помогите пожалуйста организовать поиск и замену по идентификатору в файле csv ?


    Пример:
    в файле идут строки в которой 4 параметра:

    PHP:
    "доп параметр 1";"заменяемое значение";" идентификатор";"доп параметр 2";
    параметр 3 - идентификатор уникальный номер

    параметр 2 - значение которое надо поменять

    нужно в форме задать в одну колонку идентификатор - а в соседнюю на что заменить заменяемое значение

    все параметры находятся в "кавычках" и разделены таким разделителем ;

    PHP:
    "";"";"";"";
     
  2. sSeeker

    sSeeker New Member

    Joined:
    20 Mar 2014
    Messages:
    3
    Likes Received:
    1
    Reputations:
    0
    PHP:
    <?php
    $ident
    =$_POST['ident'];
    $val=$_POST['val'];
    $f=fopen("file.csv","r");
    $r=fopen("file_mod.csv","w");
    while (!
    feof($f)) {
     
    $s=fgets($f);
     
    $a=explode("\";\"",$s);
     if (
    $a[2]==$ident$a[1]=$val;
     
    fputs($r,implode("\";\"",$a);
    }
    fclose($f);
    fclose($r);
    ?>
    Форму надеюсь сам нарисуешь?
     
  3. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    Parse error: syntax error, unexpected ';' in C:\xampp\htdocs\csv.php on line 12

    PHP:
     fputs($r,implode("\";\"",$a); 
     
  4. sSeeker

    sSeeker New Member

    Joined:
    20 Mar 2014
    Messages:
    3
    Likes Received:
    1
    Reputations:
    0
    PHP:
     fputs($r,implode("\";\"",$a)); 

    всего лишь скобку забыл. Смотри внимательнее)
     
    1 person likes this.
  5. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    Спасибо большое! работает ))

    сейчас он меняет значения, но если я начну менять для другого идентификатора - то он возвращает старые значения тем идентификаторам - которым я уже поменял значения, почистить в ручную файл сложно из за того что много разных идентификаторов и при изменении нового возвращаются страные

    можно ли автоматически прогнать файлы и почистить ненужное ?

    сделать что бы считывались все значения по схожим идентификаторам которые будут найдены в файле file.csv, если идентификатора нет у строки - пустое значение в кавычках - то такие строки игнорировать и сравнить найденые идентификаторы с файлом files_2.csv - в котором будут обновлённые значения присвоеные идентификаторам и считать от туда только те строки - которые найдены в файле file.csv (файл ориганал) и совпадают с идентификаторами в файле files_2.csv, и записать этот результат в file_mod.csv ?

    file.csv - получится файлом оригиналом

    files_2.csv - файл содержит уже обновлённые значения - у которых одинаковый идентификатор с файлом оригиналом

    file.csv нужно сравнить с файлом files_2.csv на наличие одинаковых идентификаторов в файле files_2.csv и считать найденые строки - остальные несовпадающие игнорировать

    file_mod.csv - записать результат
     
  6. toyo

    toyo New Member

    Joined:
    14 Mar 2014
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    Это можно сделать.

    Напиши мне личное ссобщение и укажи там свой skype.