За последние 24 часа нас посетили 18418 программистов и 1710 роботов. Сейчас ищет 851 программист ...

Запись информации в ячейки таблицы csv/excel на php

Тема в разделе "PHP для новичков", создана пользователем TyronNIKO, 24 апр 2017.

Метки:
  1. TyronNIKO

    TyronNIKO Новичок

    С нами с:
    6 апр 2017
    Сообщения:
    23
    Симпатии:
    4
    Добрый день! Столкнулся с задачей: необходимо собрать IP посетителя и внести его в таблицу в отдельном файле типа csv/excel.
    Использовал обычную запись, но с ней не удобно работать...
    Код (Text):
    1. <?php
    2.  
    3. $log_file = 'user-ip.csv';
    4.  
    5. $log_time = date("Y-m-d H:i:s");
    6. $log_ip = $_SERVER['REMOTE_ADDR'];
    7.  
    8.     if($log_ip == '*.*.*.*'){
    9.         $log_ip_admin = Admin;
    10.     } elseif($log_ip =='37.9.118.*') {
    11.         $log_ip_bot = YA_BOT;
    12.     } elseif ($log_ip =='66.249.*.*') {
    13.         $log_ip_bot = GOOGLE;
    14.     }
    15.    
    16. $log_info = "$log_ip $log_time $log_ip_admin $log_ip_bot  \n";
    17.  
    18. file_put_contents($log_file, $log_info, FILE_APPEND);
    19. ?>

    Подскажите как оформить запись, что бы данные попадали в ячейки таблицы?
     
  2. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Начните с функции fputcsv(), а там разберетесь.
     
  3. TyronNIKO

    TyronNIKO Новичок

    С нами с:
    6 апр 2017
    Сообщения:
    23
    Симпатии:
    4
    Записать инфо получилось, но все ровно формат не тот, которого хотелось добиться. Информация записывается из массива в 1 строку, а не в отдельные ячейки...
     
  4. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Естественно. А значения этой строки, разделенные запятой или другим разделителем и есть ячейки. Или же вы что-то не так в коде сделали, или же неправильно импортируете CSV-файл в Excel.
    Т.к. у вас нет циклов, то весь PHP-код можно свести к одной строке, при условии, что версия PHP >= 5.4
    PHP:
    1. <?php
    2. (new SplFileObject('file.csv', 'a'))->fputcsv([$log_ip,$log_time,$log_ip_admin,$log_ip_bot]);
    Импортировать CSV-файл можно следующим образом:
    1. Создаём пустой документ Excel
    2. Закладка "Данные" (Data), кнопка в меню "Из текста" (From Text)
    3. Откроется Мастер импорта текстов и выполняем все шаги: указываем формат с разделителем, кодировку, символ разделителя, формат столбцов (в вашем случае, можно указать для всех "текстовый")
     
    TyronNIKO нравится это.
  5. TyronNIKO

    TyronNIKO Новичок

    С нами с:
    6 апр 2017
    Сообщения:
    23
    Симпатии:
    4
    Нда... я просто открывал его Excel ) Спасибо огромное!
     
  6. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Свежие версии Office могут открывать CSV-файлы без лишних танцев с бубном. Например, у меня Office 2013 и обычный двойной клик по файлу, сразу открывает его, как привычный Excel-документ. Как там было с версиями 2003 и ниже - уже точно не помню, но скорее всего, что они не распознавали CSV автоматом