0

vcalendarファイルがあります。このようにphpタグの間に入力すると完璧に機能します

?>


BEGIN:VEVENT
DTSTART;VALUE=DATE:20110422
DTEND;VALUE=DATE:20120529
DTSTAMP:20120529T124028Z
UID:7a6db67f3edff4729956c47ec@calendarlabs.com
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; ?>

他の誰かがここで解決策を見ることができますか?

4

2 に答える 2

1

PHP の終了タグは、それに続く空白を食べます。 PHP で出力するときに改行を保持したい場合は、次のいずれかを行う必要があります。

  • 改行文字を明示的に出力します。

    DTSTART;VALUE=DATE:<?php echo $date, PHP_EOL; ?>
    
  • ヒアドキュメント構文を使用します:

    echo <<<END
    BEGIN:VEVENT
    ...
    DTSTART;VALUE=DATE:$date
    END;
    
于 2012-05-29T23:36:02.717 に答える
0

Web サーバーはおそらく .ics ファイルをスクリプトとして認識しないため、ファイルをハイパーテキスト プロセッサ (php) に送信して、php タグ内の命令を処理しません。これを php ファイルとして扱うように Web サーバーに指示する必要があります。カスタム拡張機能を追加するためのチュートリアルは、http: //creativebriefing.com/custom-file-extensions/にあります。

于 2012-05-29T23:29:55.057 に答える