-1

動的な FAQ ページを作成しようとしています。次の phtml サンプルがあります。

<div id="faq">
    <!-- Start FAQ "Navigation" -->
    <div class="faqBox">
        <? foreach($this->aFAQ as $k => $val) : ?>  
            <?= ($val['mQuestion']); ?>
            <?= ($val['mAnswer']); ?>
        <? endforeach; ?>
    </div>
</div>

次のように出力します。

追加の支払いオプション - 小切手または郵便為替については、次のアドレスまでお問い合わせください。iBrandingLevel == 2 ? $this->oStore->getSuppPhone()." Monday to Friday ".$this->oStore->getSuppHoursOpen()." - ".$this->oStore->getSuppHoursClose()." ".$this->oStore->getSuppTimeZone() : "(888) 455-3237 x2 from Monday to Friday 8:00am - 4:30pm MST/Arizona."; ?>

上記のテキストは、最初の $val['mAnswer'] にすぎません (正常に機能しているため、質問は含めませんでした)。

HTMLはレンダリングされていますが、明らかにphpはレンダリングされていません。とが削除され、コードだけが表示されます<??>これに対する修正はありますか?または私のアプローチは根本的に間違っています。

ありがとう

4

4 に答える 4

6

あなたのアプローチは根本的に間違っています.HTMLテキストであるかのようにPHPコードを出力し、それを実行しようとしています.

文字列からコードを実行することは可能です。PHP の Eval メソッド ( http://php.net/manual/fr/function.eval.php ) を見ることができますが、これを行うことはお勧めしません。特定の問題を解決するには、PHP コードを直接出力するよりも優れた方法があります。

あなたができることは、いくつかの変数をビューに送信し、そこで if 条件を使用することです。

ビューの前に必要な完全な文字列を準備することもでき、必要なのはそれを表示することだけです。

Eval について少し詳しく説明するには:

1- Eval 内で実行するコードがユーザーからのものである場合、非常に危険です。

2- そうでない場合は、多くの場合、問題に対するより良い解決策があります。Eval を使用すると、デバッグが難しくなります。

于 2013-06-25T21:47:15.650 に答える
0

Actually, I'm not sure I should answer this.

First, the answer to your request is the mixed eval ( string $code ) php function.

Second, FORGET IT. IMHO, this could be one of the most dangerous things you could think in.

于 2013-06-25T21:53:47.477 に答える
-1

PHPはサーバーサイド言語です。解釈する人がいないため、クライアントに出力しても意味がありません。

于 2013-06-25T21:48:43.263 に答える