1

文字列内に HTML コードを記述して返すことはできますが、いつも少し面倒です。これに対するより良い解決策はありますか?

例 1 - 改行 HTML

HTML の行ごとに改行。HTMLコードを書くのは非常に厄介な方法です。

function my_function()
{
    $html = '<div class="hello">';
    $html .= 'A very long text';
    $html .= '</div>';
    return $html;
}

例 2 - HTML ブロック

HTMLコードを書くにはまだ厄介な方法です。もう 1 つの欠点は、'cite' 文字を書くのが難しいことです。

function my_function()
{
    $html = '
        <div class="hello">
            A very long text
        </div>';

    return $html;
}

例 3 - ob_get_contents

ob_get_contentsを使用できます。これで PHP が HTML から分離されます。しかし、私はそれが悪いパフォーマンスであることを読みました。

function my_function()
{
    ob_start();
    ?>
        <div class="hello">
            A very long text
        </div>';
    <?php
    $html = ob_get_contents();
    ob_end_clean();
    return $html;
}

質問

良い方法で HTML を PHP から遠ざける別の方法はありますか?

4

4 に答える 4

1

はいといいえ、

3つの例のいずれも、「phpをhtmlから遠ざける」という目的からはほど遠いものです。そしてそれらの中で、それらは他のものより優れているわけではありません.

プレゼンテーション レイヤーをロジックに接続したままにすることは、適切な方法とは見なされません。
どちらの解決策も、初心者向けの簡単な方法とは言えません。より短い学習曲線で最も簡単なのは、smarty のようなテンプレート エンジンを使用することです。

http://www.smarty.net/

プレゼンテーションをコードから少し遠ざけるのに役立ちます。

しかし、そのための一般的に受け入れられている戦略は、ソフトウェアを 3 つのレイヤー内に分離する MVC です。モデル ビューとコントローラー。この記事ではphpを中心にmvcとは何かを簡単に解説します。

http://onlamp.com/pub/a/php/2005/09/15/mvc_intro.HTML

多くの人がより良いと考える他のアーキテクチャとプラクティスがありますが、これが私が信じている基本です。

于 2013-02-15T14:58:44.457 に答える
1

HTML 構造がプレースホルダー値を含むテンプレート ファイルに保存されているテンプレート ファイルを使用して、それを読み込んで、プレースホルダー値を実際のコンテンツに置き換えることができます。

そうすれば、文字列を読み込んで、一連の「置換」を実行して変換し、結果を返すだけです。

于 2013-02-15T14:52:49.893 に答える
0

2つを離しておく簡単なアイデア:

//php function
    function stuff(){
          $arr = array();
          $arr['text'] =  'A very long text';
          $arr['class']  = 'hello';


        return $arr;
        }

HTMLページ:

<html>
<?php $thing = stuff(); ?>


<div class="<?php echo $thing['class']; ?>">
<?php echo $thing['text']; ?>
</div>

</html>
于 2013-02-15T15:02:13.170 に答える
0

「良い方法で HTML を PHP から遠ざける別の方法はありますか?」

  • はい - MVCと PHP での実装方法 (例: Smartyの使用)について読む必要があります。
于 2013-02-15T14:53:04.433 に答える