0

誰かが正しい方向に私を向けて、現在以下のようにリストされているスイッチコードを代わりにCSVファイルから描画されるように変換できますか:

    $video = (isset($_GET['video']) ? $_GET['video'] : null);

if($video) {
    switch($video) {
        case "apple":
                    $Heading ='Apple Heading';
            $Videonum ='1';
            $Content ='<h2>Apple Sub Heading</h2>
                               <p>Apple content</p>';
            $SideContent ='Apple side content';
break;

多くのケースが発生することになり、.csv ファイルから管理する方が簡単になります - ありがとう

4

2 に答える 2

0

csv ファイルを読む

$data = array();
$fp = fopen('manufacturer.csv', 'r');
while (!feof($fp)) {
    $line = explode(';',fgets($fp));
    $data[$line[0]]['heading'] = $line[1];
    $data[$line[0]]['video'] = $line[2];
    $data[$line[0]]['content'] = $line[3];
    $data[$line[0]]['side'] = $line[4];
}
fclose($fp);

あなたのcsvは次のようになります

apple;Apple Heading;1;<h2>Apple Sub Heading</h2><p>Apple content</p>;Apple side content
microsoft;MS Heading;1;<h2>MS Sub Heading</h2><p>MS content</p>;MS side content
...

次に、メーカー名でコンテンツにアクセスします

if(isset($data[$_GET['video']] && !empty($_GET['video']))){
    $Heading = $data[$_GET['video']]['heading'];
    $Videonum = $data[$_GET['video']]['video'];
    $Content = $data[$_GET['video']]['content'];
    $SideContent = $data[$_GET['video']]['side'];
}
于 2012-07-26T09:52:59.210 に答える
0

内部配列のキーとして識別子 ('apple' など) を持つ 2 次元配列が必要だと思います。CSV ファイルを解析すると、複数の行を含む配列が得られますが、必要なデータを含む行を検索する必要があります。必要なデータ配列を含む PHP ファイルを保存したり、データベースを使用したりすることもできます (おそらく、このような場合に最も一般的です)。

私が使用するターゲット配列:

$data = array(
    'apple' => array(
        'heading' => 'Apple Heading',
        'video_num' => 1,
        'content' => '<h2>Apple Sub Heading</h2>
                      <p>Apple content</p>',
        'side_content' => 'Apple side content',
    ),
    /* more manufacturer sub-arrays */
);

この最初のケースでは、配列から読み取るだけでデータ全体にアクセスできます。

if( !empty( $_GET['video'] ) && isset( $data[$_GET['video']] ) )
{
    var_dump(
        $data[$_GET['video']]['heading'],
        $data[$_GET['video']]['content']
    );
}
else
{
    echo '<p class="error">No video specified or "' . $_GET['video'] . '" is not available.</p>';
}

ご参考までに; CSV ファイルから取得した配列:

$data = array(
    1 => array(
        'manufacturer' => 'Apple',
        'heading' => 'Apple Heading',
        'video_num' => 1,
        'content' => '<h2>Apple Sub Heading</h2>
                      <p>Apple content</p>',
        'side_content' => 'Apple side content',
    ),
    /* more rows */
);
于 2012-07-26T09:49:08.847 に答える