0

私のウェブサイトには多くのページがあります。これらのページはすべて、上部にまったく同じヘッダーがあり、ログインしているユーザーのオプションと、Web サイトのさまざまなセクションへのリンクが表示されます。

このヘッダーの外観を変更したい場合は、すべてのページに変更を適用する必要があることに気付きました。これは回避できる問題のように思えたので、コードを mySQL データ ポイントに格納し、各ページに単純にエコー バックすることにしました。

これまでのところ、見事にうまく機能しましたが、その中にある PHP コード (ユーザー名の表示など) は、結果ではなく、物理コード自体のみを返します。

コードの呼び出しは正常に機能するため、呼び出されている実際の mySQL エントリは次のとおりです。

<table width="1332" border="0" cellspacing="0"><tr>
<td width="1002" style="background-color:#4DDB4D;">
<a href="http://www.AGLgaming.com/login/home"><img src="http://i378.photobucket.com/albums/oo223/Abyssion180/AGLLogoAlternate.png" alt="AGL Logo" width=170 height=90 align="left" /></a>
<img src="http://i378.photobucket.com/albums/oo223/Abyssion180/AGLBanner.png" width=825 height=90 />
</td>
<td width="330" style="background-color:#4DDB4D" align="right">
<div class="ex1">
<a href="http://www.AGLgaming.com/login/home/profile"><font color="blue" size="5">' . $user[0][0] . '</font></a>,<br>
<font size="1">Logged in: </font><a href="http://www.AGLgaming.com/login/home/logout"><font size="2" color="blue">Logout</font></a>
</div></td></tr>
<tr><td valign="center" style="background-color:#6EFF6E;height:31px;">
<div align="left"> ||
<a href="http://www.AGLgaming.com/login/home/forums"><font color="blue" size="5">Forums</font></a> |||
<a href="http://www.AGLgaming.com/login/home/guides"><font color="blue" size="5">Guides</font></a> |||
<a href="http://www.AGLgaming.com/login/home/external"><font color="blue" size="5">External</font></a> |||
<a href="http://www.AGLgaming.com/login/home/members"><font color="blue" size="5">Members</font></a> |||
<a href="http://www.AGLgaming.com/login/home/tournament"><font color="blue" size="5">Tournament</font></a> |||
<a href="http://www.AGLgaming.com/login/home/constitution_of_the_AGL"><font color="blue" size="5">Constitution of the AGL</font></a></div>
</td>
<td valign="center" style="background-color:#6EFF6E;height:31px;">
<div class="ex1" align="right">
<a href="http://www.AGLgaming.com/login/home/profile"><font color="blue" size="3">Profile</font></a> |
<a href="http://www.AGLgaming.com/login/home/denarii"><font color="blue" size="3">Denarii</font></a>: ' . $user[0][7] . ' |
<a href="http://www.AGLgaming.com/login/home/messages"><font color="blue" size="3">Messages</font></a>: ' . $user[0][9]; if($user[0][10]>0)  echo '<font size="2"><b>(' . $user[0][10] . ' New!)</b></font>'; . ' |
<a href="http://www.AGLgaming.com/login/home/settings"><font color="blue" size="3">Settings</font></a>
</div>
</td></tr></table>
4

3 に答える 3

4

私がこれを正しければ、(意地悪になりたくないのですが)コードを再考することを本当にお勧めします。MySQL データベースから HTML / PHP コードを本当にクエリしていますか? その場合は、1 つのサイト以外のコードを取得する別の方法をお勧めします。そのコードを 1 つの追加の php ファイルに入れます。たとえば、header.php で呼び出します。

<?php require_once('header.php');?>
于 2013-04-22T23:07:30.097 に答える
1

あなたが探しているのは一種のテンプレートシステムのようです。これを実現する最も簡単な方法は、HTML 内で特定のキーワードを使用し、それを PHP で抽出して置換することです。

たとえば、str_replace()関数を使用できます。

$processedHtml = str_replace('{__USERNAME__}',$userName,$htmlFromDB);

この例では、変数を表示するすべての{__USERNAME__}場所に文字列を挿入します。$userName


そうは言っても、あなたはかなり特殊な状況に直面していると思います.HTMLをデータベースに保存することは最善の選択肢ではないかもしれません. PHP のinclude()関数の使用を検討することをお勧めします。これにより、現在のスクリプトに追加のファイルを挿入できます。(名前が示すように) include ステートメントを配置した場所にそのコードをインクルードするだけです。これにより、共有ヘッダー コードを 1 つのファイルに集中させ、必要な場所に「含める」だけで、1 つのファイルを編集するだけで済みます。

于 2013-04-22T23:06:51.423 に答える
0

データベースを使用するのではなく、何をすべきかというと、これは php のインクルード関数になります。header.php というファイルに次のコードがあるとします。

Awesome header
<?php 
    echo "working code";
?>

他の各ファイルに入れることができます

<?php
    include "header.php";
?>
于 2013-04-22T23:05:19.973 に答える