2012-05-29 3 views
0

У меня есть файл vcalendar. Он отлично работает, если я введите его между тегами PHP как этотНет строк в файле vcalendar при эхо-значениях с PHP

?> 


BEGIN:VEVENT 
DTSTART;VALUE=DATE:20110422 
DTEND;VALUE=DATE:20120529 
DTSTAMP:20120529T124028Z 
UID:[email protected] 
CREATED:20111213T123901Z 
DESCRIPTION:Visit http://www.calendarlabs.com/holidays/ to know more about New Year's Day and for any other calendar needs. 
LAST-MODIFIED:20111213T123901Z 
LOCATION: 
SEQUENCE:0 
STATUS:CONFIRMED 
SUMMARY:New Year's Day 
TRANSP:TRANSPARENT 
END:VEVENT 


<?php 

echo : 

Однако вскоре, как я положил его в эхо-заявления так:

echo "BEGIN:VEVENT"; 

тогда она не работает. Я попытался добавить \ n,
все.

Также не работает, если я что-то вроде:

DTSTART;VALUE=DATE:<?php echo $date; ?> 

Может кто-нибудь еще увидеть решение здесь?

+0

если вы используете эхо, то оно должно быть в '' не так ли? – Sebas

+2

В чем разница в ** окончательном выходе **? – deceze

+0

Нет разрывов строк, когда я повторяю его с помощью php. только если я напечатаю его вне тегов. –

ответ

1

PHP's closing tag eats whitespace following it. Если вы хотите сохранить символы новой строки при выводе с PHP, вам нужно будет выполнить одно из следующих действий:

  • Вывод символа новой строки в явном виде:

    DTSTART;VALUE=DATE:<?php echo $date, PHP_EOL; ?> 
    
  • Использование heredoc syntax:

    echo <<<END 
    BEGIN:VEVENT 
    ... 
    DTSTART;VALUE=DATE:$date 
    END; 
    
0

Ваш веб-сервер, вероятно, не распознает файл .ics как скрипт, поэтому он не отправляет файл в гипертекстовый процессор (php) для обработки инструкций внутри тегов php. Вы должны сказать своему веб-серверу, чтобы рассматривать это как php-файл. Учебное пособие по добавлению пользовательского расширения можно найти здесь: http://creativebriefing.com/custom-file-extensions/.