За последние 24 часа нас посетили 17985 программистов и 1644 робота. Сейчас ищут 1904 программиста ...

Проблема с парсингом файла

Тема в разделе "Прочие вопросы по PHP", создана пользователем Alex_@, 4 дек 2014.

  1. Alex_@

    Alex_@ Активный пользователь

    С нами с:
    1 окт 2009
    Сообщения:
    76
    Симпатии:
    0
    Здравствуйте.
    Столкнулся с такой проблемой при парсинге .csv файла.
    если по порядку:
    1. загоняю
    Код (Text):
    1. if (($handle = fopen("parse.csv", "r")) !== FALSE) {
    2.     while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {        
    3.             $dataExport[$row]['id'] = $data[0];
    4.             $dataExport[$row]['fone'] = $data[1];            
    5.             $dataExport[$row]['way'] = iconv('CP1251', 'UTF-8', trim($data[2]));
    6.             $dataExport[$row]['price'] = $data[3];
    7.             $row++;
    8.     }
    9.     fclose($handle);
    10. }
    2. После перебираю созданный массив и создаю новый .csv.

    Проблема в том что сравниваю $dataExport[$row]['way'] с определённым выражением STR_SEACH функцией strcmp
    под виндой всё нормально (через командную строку),
    когда скрипт запускают (запускаю не я и возможности нет проверить) через командную строку в линуксе то сравнение условие всегда выполняется что совпадений нет.

    Не подскажите в чём дело и как поправить работу скрипта?
     
  2. Alex_@

    Alex_@ Активный пользователь

    С нами с:
    1 окт 2009
    Сообщения:
    76
    Симпатии:
    0
    Чо-то я вообще запутался!!

    Код (Text):
    1.  
    2. define('STR_SEACH','Город(12)');
    3. /**
    4.  * имя файла который парситься
    5.  **/
    6. define('NAME_PARSE_FILE', 'parse.csv');
    7. $dataExport = array();
    8. $newDataExport = array();
    9. $row = 1;
    10. if (($handle = fopen(NAME_PARSE_FILE, "r")) !== FALSE) {
    11.     while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {  
    12.            $dataExport[$row]['id'] = $data[0];
    13.             $dataExport[$row]['fone'] = $data[1];  
    14.             if (strcmp($data[2],STR_SEACH) === 0){
    15. //это условие никогда не получается хотя в parse.csv STR_SEACH присутствует
    16.                 $dataExport[$row]['way'] = 'YES';
    17.             }
    18.             else{                
    19.                 $dataExport[$row]['way'] = $data[2];
    20.             }
    21.             $dataExport[$row]['price'] = $data[3];
    22.             $row++;
    23.     }
    24.     fclose($handle);
    25. }
    26. print_r($dataExport);
    у меня почему то не сравниваются строки, точнее не находит то что нужно!
    не подскажите в чём причина?
     
  3. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0