php-将swithch转换为.csv文件读取方法

php-将swithch转换为.csv文件读取方法,php,csv,switch-statement,Php,Csv,Switch Statement,请有人告诉我正确的方向,将我的开关代码从如下所示转换为从CSV文件中绘制: $video = (isset($_GET['video']) ? $_GET['video'] : null); if($video) { switch($video) { case "apple": $Heading ='Apple Heading'; $Videonum ='1'; $Conte

请有人告诉我正确的方向,将我的开关代码从如下所示转换为从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;
$video=(isset($\u GET['video'])?$\u GET['video']:null);
如果(视频){
交换机(视频){
案例“苹果”:
$Heading='Apple Heading';
$Videonum='1';
$Content='Apple副标题
苹果含量

'; $SideContent='Apple side content'; 打破

最后我会处理很多案例,从.csv文件管理会更容易-谢谢你

我想你需要一个带有标识符的二维数组('apple',…)作为内部数组的键。通过解析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 */
);
$data=array(
'苹果'=>阵列(
“标题”=>“苹果标题”,
“视频数量”=>1,
“内容”=>“苹果子标题
苹果内容,
“侧内容”=>“苹果侧内容”,
),
/*更多制造商子阵列*/
);
在第一种情况下,只需从阵列中读取即可访问整个数据:

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>';
}
if(!empty($\u GET['video'])和&isset($data[$\u GET['video']))
{
瓦鲁垃圾场(
$data[$\u获取['video']['heading'],
$data[$\u获取['video']['content']
);
}
其他的
{
echo“

未指定视频或“$\u GET['video']”不可用。

; }
仅供参考;从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 */
);
$data=array(
1=>数组(
“制造商”=>“苹果”,
“标题”=>“苹果标题”,
“视频数量”=>1,
“内容”=>“苹果子标题
苹果内容,
“侧内容”=>“苹果侧内容”,
),
/*更多行*/
);
读取您的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
...

我不确定你的报价比之前的报价有什么优势-你能进一步向noobie解释一下吗?目前我正在使用echos来引用交换机信息,就像我现在如何引用这些信息一样-是同样的方式吗?很抱歉我完全缺乏php知识如果这个答案不足以说明问题,我不知道如何表达这是一个更简单的方式。你知道这是一个程序员论坛吗?例如,
会变成
嘿,伙计,对不起,我不知道现在哪个回答更好?我用au csv文件回答你的问题,但结果是一样的。我尝试了上面的方法,但我修改了这行:if(isset($data[$\u GET['video']))&&!空($_GET['video'])){为了让它工作。有人告诉我应该改用这个方法吗?但是我不知道如何暗示它。通过你的代码,我没有收到错误消息,但它没有绘制内容。
fgetcsv
应该可以正常工作。你是否必须回显/打印内容。但我想你已经输入了HTML代码,例如表格。没有使用
empty()
时需要使用
isset()
,因为后者也会检查初始化…
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'];
}