2013-01-08 2 views
6

私はいくつかの変更が必要なウェブサイトを継承しました。いつものように、ウェブサイト開発にはさまざまな方法があります。しかし、この特定のサイトで私は混乱しています。すべてのhtmlはheredoc PHPスクリプトを介して提供されます。しかし、PHP処理はありません。例えばPHP heredocを使用して単純なHTMLを生成するのはなぜですか?

(構造のみ)のindex.php:

<?php 
$html = <<<html 

<html> 
    <head></head> 
    <body> 
     {more simple HTML here. No php processing to be done} 
    </body> 
</html> 
html; 
echo $html; 
?> 

私はPHPを理解しますが、彼らはページを生成し、なぜ単にPHP変数処理せずに、それを実現するために反対するとして、私はこの方法を把握することはできません。その人が何をしているのか分からないと思う前に、私は尋ねると思った。何か案は?

これは私の最初の投稿StackOverflowで、フォーラムのエチケットに関するフィードバックも歓迎します。

+0

ここにheredocの詳細がありますが、役に立つかもしれません:http://in3.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc –

+0

一般的には実際のファイルに保存する前に再生するxmlドキュメントでこれを行う...今は、ページを構築したコーダが* lazy server * idealを気に入らないように思えます。 –

+1

SOのエチケットについては、[FAQ](http://stackoverflow.com/faq)を読んでください。あなたの質問はよく書かれ、明確です。これは素晴らしいスタートです! –

答えて

1

HEREDOC内でPHP変数を使用しようとしていた可能性があります。あなたの例はそれらを持っていませんが、私はそれらが場所で使用されていると推測する危険があります。そこから、私はHEREDOCが一貫性のためにどこでも使われていると考えています。

+0

これは正しいことが分かりました。ファイルはウェブサイト構築プログラムによって生成されたものです。 –

1

heredocの理由は、おそらく、引用符をエスケープしたり、引用符を心配する必要がなく、文字列リテラルではそれに応じて引用符を管理する必要があるからです。

HTMLを別のファイルに保存するか、テンプレートシステムを使用する方が一般的です。これは、一般に、heredocsや文字列リテラルよりも優れたオプションです。

+1

私は彼らが不思議に思っていると思います:なぜHTMLを変数に保存してからそれをエコーし​​ますか? PHPをエスケープして「裸」にするだけの方がいいでしょうか? –

+0

@GigaWattそれはまさに私が疑問に思っていたものです。純粋なhtmlのためにheredocフォーマットを使用することは奇妙に思えました。しかし、私は、PHPファイルは、サイトを作成するために使用される別のプログラムによって生成されたことがわかりました。これはジェネレータのデフォルトの出力方法です。 –

1

PHPファイルはすでにHTMLのテンプレートファイルです。

であなたのコードを置き換えます、<?php?>の外に、

ただ、PHPファイルの本文にHTMLを持つ
<html> 
    <head></head> 
    <body> 
     {more simple HTML here. No php processing to be done} 
    </body> 
</html> 

HTMLを返します。

+0

私は同意します。私はそれをより明確にするためにコードを変更するつもりです。 –

1

従来の開発者の頭を奪うために何週間も費やすことができ、時間が無駄になります。

私は、PHPでこれらのインスタンスで何も必要ないだけのコードをリファクタリングすることをお勧めします。彼らが行ったことには何のメリットもなく、編集に入るたびに邪魔になることでしょう。

+1

これは私がやることです。利点がないことに加えて、私のエディタはHTMLの代わりにPHPとしてコードを解析します。私にとっては痛みです。 –

関連する問題