2

PHP は実際には私が選んだ言語ではありませんが、PHP が次のifように使用されているのを見た覚えがあります。

<?php 
    if (blah) { 
?>
        // loads of html and js that doesn't need to be escaped since we closed
        // the php already with "?>"
<?php
    }
?>

または、このようなもの。私はそれが何と呼ばれているのかわからず、グーグルのphpが役に立たない場合。

この手法は何と呼ばれ、正しい構文は何ですか?

4

12 に答える 12

3

あなたが質問に投稿したように、またはこのように使用できます(私が好む):

<?php 
    if(blah):
?>
        // loads of html and js that doesn't need to be escaped since we closed
        // the php already with "?>"
<?php
    endif;
?>

これは、ロジックをまったく実行せず、単純ifloops次のようなテンプレートで最もよく見られます。

<?php foreach($something as $test): ?>
    <p><?php echo $test; ?></p>
<?php endforeach; ?>
于 2012-04-27T12:22:18.013 に答える
1

それらはphpタグと呼ばれます。ここを参照してください:

http://www.php.net/manual/en/language.basic-syntax.phptags.php

構文は、例で使用されているとおりです。バリエーションはありますが、こちらがおすすめです。

もう 1 つの「手法」は、制御構造を使用して呼び出されます。ここを参照してください:

http://ch.php.net/manual/en/control-structures.if.php

于 2012-04-27T12:22:17.900 に答える
1

あなたはこれをチェックアウトしたいかもしれません:

IFステートメントでHTMLをPHP内に埋め込むことはできますか

PHP マニュアル

于 2012-04-27T12:23:38.077 に答える
1

最もクリーンな方法は次のとおりです

<?php if ($test) : ?>
    <p>Some HTML</p>
<?php endif; ?>
于 2012-04-27T12:23:55.927 に答える
1

マニュアルページではHTML からのエスケープ
と呼ばれ ています。if

正しい構文は、コード スニペットで使用したものです。使用して?>PHP モードを閉じ<?php、再度開きます。その間のテキストはブラウザに直接表示されます。

この手法の使用は、PHP ベースのテンプレートに限定する必要があります。それでも、この目的には非常に役立ちます。

于 2012-04-27T12:29:38.740 に答える
1

その構文は正しいです。PHP と HTML を混在させる必要がある場合に、コードの可読性を向上させる代替構文もあります。

<?php if( blah ): ?>
  <!-- my HTML -->
<?php endif; ?>

私は、php と html を混ぜてはならないという包括的な声明を出す人々に同意しません。ifテンプレート システムを使用してアプリケーション ロジックを HTML から可能な限り分離していますが、テンプレート ファイル内にステートメントまたはforループが必要な場所がまだあります。

于 2012-04-27T12:25:47.950 に答える
1

別のユーザーが指摘したように、これは HTML からのエスケープと呼ばれます。これは、PHP の if ステートメント内にある HTML のすべての行をエコー/印刷する代わりの方法にすぎません。

そうは言っても、使用している構文は問題ありません。

// Option 1
<?php if ($variable) { ?>
<!-- HTML stuff here -->
<?php } ?>

または、別の方法:

// Option 2
<?php
if ($variable) {
    echo '<div>';
    echo '<span>Totally putting HTML here</span>';
    echo '</div>';
}
?>

または、user1266222 が指摘した 3 番目の方法:

// Option 3
<?php if ($variable) { include 'path/to/htmlfile/filename.html'; } ?>

そこにHTMLファイルが含まれるだけです。

方法はあなたが何をしたいかによって異なり、すべてがすべてのユースケースで実行可能ですが、HTML の非常に小さなスニペットのみの場合は、オプション 2 を使用します。HTML ファイル全体 (または部分的なもの) の場合、オプション 3 を使用します。 . 怠け者で HTML が長い場合は、オプション 1 があります。

于 2012-04-27T12:28:10.437 に答える
0

これは PHP を HTML に埋め込む (またはその逆) と呼ばれ、見た目を少し良くするための代替構文があります。

<?php if (condition) : ?>
HTML HTML HTML
<?php endIf; ?>

include(file.html);ただし、通常は使用する方が良い方法です。

于 2012-04-27T12:22:44.143 に答える
0

これは完全に有効な構文ですが、見栄えはよくありません。そのため、大量の HTML を含むファイルの場合は、次の構文も使用できます。

<?php if($foo) : ?>
<p>Unescaped html goes here</p>
<?php endif; ?>

http://www.php.net/manual/en/control-structures.alternative-syntax.php

于 2012-04-27T12:23:07.733 に答える
0

このようなことを意味しますか?

<?php include("filename.html"); ?>

または、php タグ内にない場合は、html コードを記述できます。

于 2012-04-27T12:19:51.707 に答える
0
<?php
if(blah){
include('htmlfile.html');
}
?>

htmlfile.html

<!-- Your HTML Code -->
于 2012-04-27T12:21:52.570 に答える
-1

あなたは考えるかもしれませんheredoc

http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

于 2012-04-27T12:22:53.363 に答える