2

私は現在ウェブサイトをリファクタリングしていて、すべて同じように見えますが、いくつかの異なる変数/テキストを持っているリンクのグループに出くわしました。

私はループとすべてを理解しており、それが間違いなく必要なことですが、変化するさまざまなデータをどのように処理するのが最善かわかりません。

HTMLは次のとおりです。

<div class="featuredSide" style="border-color:#fff">
    <h3 style="font-size: 20px; margin-bottom: 12px;">$sectionName</h3>
    <img src="images/$imageName.jpg" width="50" height="60" style="float: left; margin: 4px 8px 16px 0px; border: 2px solid #fff;" />
    <h4 style="font-size: 11px;">$author</h4>
    <p class="lineAboveCol" style="clear: both; margin-bottom: 0px;"><a href="resources.php?section=$section">Click here for more information</a></p>
</div>

変更されるデータを置き換えるために変数を入力しました(これらはすべて現在HTMLで実行されています)。

したがって、このデータをループするための最良の方法は何でしょうか。単純な配列を使用することを考えましたが、長期的にはそれを維持するのは特に簡単ではないと思います。私が見逃している簡単な解決策はありますか、それともこのデータをMySQLテーブルに設定し、そこから直接プルする価値がありますか?

ありがとう。

4

3 に答える 3

0

これを行うことができます。

<?php
$theVars[0]['sectionName'] = "section name 1";
$theVars[0]['section'] = "section 1";
$theVars[0]['author'] = "author 1";
$theVars[1]['sectionName'] = "section name 2";
$theVars[1]['section'] = "section 2";
$theVars[1]['author'] = "author 2";
$theVars[2]['sectionName'] = "section name 3";
$theVars[2]['section'] = "section 3";
$theVars[2]['author'] = "author 3";

$htmlStr = "";    

for($i=0;$i<=2;$i++){
    $htmlStr .= '<div class="featuredSide" style="border-color:#fff">
                 <h3 style="font-size: 20px; margin-bottom: 12px;">'.$theVars[$i]['sectionName'].'</h3>
                 <img src="images/$imageName.jpg" width="50" height="60" style="float: left; margin: 4px 8px 16px 0px; border: 2px solid #fff;" />
                 <h4 style="font-size: 11px;">'.$theVars[$i]['author'].'</h4>
                 <p class="lineAboveCol" style="clear: both; margin-bottom: 0px;"><a href="resources.php?section='.$theVars[$i]['section'].'">Click here for more information</a></p>
                 </div>';
}

echo $htmlStr;

?>

私は野球場にいますか?

于 2012-10-03T14:52:21.293 に答える
0

私は配列から始めます:

$links = array(
    'section1' => array(
        'section'    => '...',
        'sectioName' => '...',
        'imageName'  => '...',
        'author'     => '...',
    //    'text' => 'Click here for more information',
    ),
);

次に、ループを実行します。簡単に適応でき、明確なプレゼンテーションとデータを保持し、将来的にMySQLまたは他の永続層に移動できます。おそらく、メンテナがセクションを編集できるようにするバックエンドインターフェイスを提供します。

セクション間のバリエーションが必要な場合は、それらを配列のキー(またはMySQLの列)にプルできます。

また、外部からHTMLを提供し、特別なタグのpreg_replaceを実行することもできます。たとえば{{ author }}、のコンテンツに置き換えられ$currentSection['author']ます。これは、どのテンプレートエンジンにも簡単に移植できます。

于 2012-10-03T14:52:49.480 に答える
0

この特定の目的にはphp配列を使用しますが、配列は別のファイルにあるため、更新/アップロードが簡単です。

私が使用するコードは次のようになります

section.values.php

$sections = array(
    'Section 1' => 'Author 1',
    'Section 2' => 'Author 2',
);

次に、html / phpページで:

<?php
    include("section.values.php"); //or any file name

    foreach($sections as $sectionName => $author){
        echo '<div class="featuredSide" style="border-color:#fff">
            <h3 style="font-size: 20px; margin-bottom: 12px;">' . $sectionName . '</h3>
            <img src="images/$imageName.jpg" width="50" height="60" style="float: left; margin: 4px 8px 16px 0px; border: 2px solid #fff;" />
            <h4 style="font-size: 11px;">' . $author . '</h4>
            <p class="lineAboveCol" style="clear: both; margin-bottom: 0px;"><a href="resources.php?section=' . $section . '">Click here for more information</a></p>
            </div>';
    }
?>
于 2012-10-03T15:03:35.687 に答える