HTML不显示在PHP脚本


html not showing up in php script

所以我有麻烦让我的html显示在我的php脚本foreach循环。我将数组包含在header。php页面中这也包含在我正在构建的网页中。现在我的网站只显示一个空井,因为我使用bootstrap。

我已经试过了,只是把常规的html在div和它的工作,这意味着有一些错误的php脚本。

My php arrays

    <?php
    //Teams
    $teams = array(
            "fnatic" => array(
                    title => "Fnatic",
                    teamLocation => "Sweden"
            ),
            "tsm" => array(
                    title => "TSM",
                    teamLocation => "Denmark"
            ),
            "envyus" => array(
                    title => "EnvyUs",
                    teamLocation => "France"
            ),
        );
?>
这是我的html。中间部分是我要显示foreach循环的地方。我已经包含了header.php,其中包含数组,以及footer.php,其中包含所有脚本。
<?php
    define('TITLE', 'PROS | CSGOPLAYER CONFIGS');
    include('includes/header.php');
    include('includes/minicarousel.php');
?>
<div class="container-fluid">
    <div class="row">
        <div class="well">
            <?php foreach ($teams as $team => $item) { ?>
            <h1><a href="team.php?item=<?php echo $team; ?>"><?php echo $item[title]; ?></h1>
            <p><?php echo $item[teamLocation];?></p>
            <?php } ?>
        </div>
    </div>
</div><!--Contect-->

<?php
    include('includes/footer.php');
?>

我的建议是在井中做$teamsvar_dump,然后exit()脚本来验证团队是否正确启动。

另外,我建议使用下面的语法,因为我觉得它更清晰,但你的里程当然会有所不同:

<?php
    $well = '';
    foreach ($teams as $team => $item) {
        $well .= <<<WELL
        <h1><a href="team.php?item={$team}">{$item['title']}</a></h1>
        <p>{$item['teamLocation']}</p>
WELL;
// The above line must start at column 1, to work as here-document
    }
    print $well;
?>

此外,您使用的语法应该发出大量未引号字符串的警告。您没有看到这些警告的事实告诉我,您将error_reporting设置得太低,并且可能也关闭了错误显示。这可以解释为什么你看到的是一个空井,而不是一个有用的错误信息。

   title => "Fnatic",
         teamLocation => "Sweden"

等,应该是

   'title' => 'Fnatic',
         'teamLocation' => 'Sweden'

单引号或双引号是一个选择的问题,但最好是一些引号总是在适当的位置。

说了这么多,你的代码应该是可以工作的,所以要考虑到其他地方可能出现错误的可能性。

你错过了你的a标签更近。还可以考虑在PHP中启用short_open_tags,并使用<??>(更有效)。尝试print代替echo。当在循环中执行print_r($item)时会发生什么?

<div class="container-fluid">
    <div class="row">
        <div class="well">
            <?php
                foreach ($teams as $team => $item) { 
                    ?>
                        <h1>
                           <a href="team.php?item=<?php echo $team; ?>">
                               <?php 
                                   print $item[title]; 
                               ?>
                           </a>
                        </h1>
                        <p>
                            <?php 
                                print $item[teamLocation];
                            ?>
                        </p>
                   <?php 
                } 
            ?>
        </div>
    </div>
</div><!--Contect-->

你应该去掉那个过时的逗号。

    $teams = array(
        "fnatic" => array(
                title => "Fnatic",
                teamLocation => "Sweden"
        ),
        "tsm" => array(
                title => "TSM",
                teamLocation => "Denmark"
        ),
        "envyus" => array(
                title => "EnvyUs",
                teamLocation => "France"
        )
    );

<?php
$html = array();
foreach($teams as $team => $item){
    $html[] = "<h1><a href='team.php?item=".$team."'>".$item['title']."</a><h1>".<p>".$team['teamLocation']."</p>"; 
}
?>

div.well内部

<?php echo implode('' , $html); ?>;

数组键也应该用引号括起来,如:

...
'title'=>'Fnatic',
...