Come importare file .ICS in una tabella MySQL utilizzando PHP

Come importare file .ICS in una tabella MySQL utilizzando PHP

Come noto, il formato file .ICS è un formato di calendario universale utilizzato per memorizzare le informazioni del calendario all'interno di un file di testo.

In questo articolo vedremo come creare una funzione PHP che importerà i dati dal file .ICS e li memorizzerà in un database MySQL.

ics import php

Nel codice in basso, abbiamo incluso un file di classe php chiamato icalendar.php con classe chiamata iCalendar, che leggerà il file ICS e convertirà i dati in formato Array. Una volta ottenuto l'array di dati, è possibile salvarlo o mostrarlo nella propria pagina web in formato tabulare.

CODICE PHP

<?php
include("includes/connection.php");
include("includes/icalendar.php");
$records = mysqli_num_rows(db_query("select * from  events"));
if ($_POST['stage'] == 1) {
    $ical = new iCalendar();
    $filename = $_FILES['file1']['tmp_name'];
    $ical->parse("$filename");
    $ical_data = $ical->get_all_data();

    $timezone = "{$ical_data['VCALENDAR']['X-WR-TIMEZONE']}";
    if (function_exists('date_default_timezone_set'))
        date_default_timezone_set($timezone);

    $strsql1 = "Insert into  events(StartDate,StartTime,EndDate,EndTime,Title,Location,Description) values ";
    if (!empty($ical_data['VEVENT'])) {
        foreach ($ical_data['VEVENT'] as $key => $data) {
		  //get StartDate And StartTime
          $start_dttimearr = explode('T', $data['DTSTART']);
          $StartDate = $start_dttimearr[0];
          $startTime = $start_dttimearr[1];

          //get EndDate And EndTime
          $end_dttimearr = explode('T', $data['DTEND']);
          $EndDate = $end_dttimearr[0];
          $EndTime = $end_dttimearr[1];

          $strsql1.="('".$StartDate."','".$startTime."','".$EndDate."','".$EndTime."','".
		  $connect->real_escape_string($data['SUMMARY']) . "','". 
		  $connect->real_escape_string($data['LOCATION']). "','". 
		  $connect->real_escape_string($data['DESCRIPTION']) . "')";
          $strsql1.=",";
        }
      $strsql1 = rtrim($strsql1, ',');
      db_query($strsql1);
    }
    header('Location:index.php');
}
if ($_GET['stage'] == "empty") {
    db_query(" TRUNCATE events");
    header('Location:index.php');
}
?>