Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: konwertowanie csv do ics w php
Forum PHP.pl > Forum > PHP
dentopolis
poniższy kod zamienia plik .csv do .ics (kalendarz). w przetwarzanym pliku csv są różne pola np.nr telefonu, uwagi. jak pobrać konkretne pole (kolumnę), żeby utworzyć dla niej np:
SUMMARY: Imię i Nazwisko
DESCRIPTION: uwagi\nTel: xxx-xxx-xxx


  1. <?php
  2.  
  3. $fp = fopen("calendar.csv", 'r');
  4.  
  5. $i = 0;
  6.  
  7. if ($fp){
  8. if (flock($fp, LOCK_SH)){
  9. while (!feof($fp)) {
  10.  
  11. $line = fgets($fp);
  12. $line = trim($line);
  13. # $line = mb_convert_encoding($line, 'auto', 'auto');
  14. $line = str_replace(PHP_EOL, '', $line);
  15. if($i == 0){
  16. // header of csv file
  17. $header = $line;
  18. }else{
  19. $data[] = $line;
  20. }
  21. $i++;
  22. }
  23. flock($fp, LOCK_UN);
  24. }
  25. }
  26.  
  27. fclose($fp);
  28.  
  29. #unlink($filepath);
  30.  
  31. $header_item = explode(",", $header);
  32.  
  33. // designate file path
  34. $file_name = "calendar.ics";
  35.  
  36. // open file
  37. $fp = fopen($file_name, 'w');
  38.  
  39. // number of data
  40. $i = $i - 2;
  41.  
  42.  
  43. //X-WR-TIMEZONE:Europe/Warsaw
  44. // write header part
  45. $common = "BEGIN:VCALENDAR" . "\n";
  46. fputs($fp, $common);
  47. $common = "VERSION:2.0" . "\n";
  48. fputs($fp, $common);
  49. $common = "PRODID:-//Google Inc//Google Calendar 70.9054//EN" . "\n";
  50. fputs($fp, $common);
  51. $common = "CALSCALE:GREGORIAN" . "\n";
  52. fputs($fp, $common);
  53. $common = "METHOD: PUBLISH" . "\n";
  54. fputs($fp, $common);
  55. $common = "X-WR-CALNAME:Pacjenci PŁ" . "\n";
  56. fputs($fp, $common);
  57. $common = "X-WR-TIMEZONE:Europe/Warsaw" . "\n";
  58. fputs($fp, $common);
  59.  
  60. // write data
  61. for($count = 0; $count < $i; $count++){
  62. $common = "BEGIN:VEVENT" . "\n";
  63. fputs($fp, $common);
  64. for($j = 0; $j < count($header_item); $j++){
  65. $data_item = explode(",", $data[$count]);
  66. $item = $header_item[$j] . ":" . $data_item[$j] . "\n";
  67. fputs($fp, $item);
  68. }
  69. $common = "END:VEVENT" . "\n";
  70. fputs($fp, $common);
  71. }
  72.  
  73. // write footer part
  74. $common = "END:VCALENDAR" . "\n";
  75. fputs($fp, $common);
  76.  
  77. fclose($fp);
  78.  
  79. // download ics file
  80. $fname = "calendar.ics";
  81. #header('Content-Type: application/force-download');
  82. # header('Content-Length: ' . filesize($file_name));
  83. #header('Content-disposition: attachment; filename="' . $fname . '"');
  84. readfile($file_name);
  85.  
  86. // delete file
  87. #unlink($file_name);
  88. ?>
Neutral
Masz
a,b,c,d

Teraz jak ma być?
a:b,a:c,a:d

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.