通过foreach循环php显示文本

时间:2013-10-20 01:39:16

标签: php text foreach hyperlink

我正在尝试为网站制作导航栏。我必须使用foreach循环来显示不同的页面。但是,每当我尝试显示它们时,它们都不会链接页面并显示错误的文本..这是代码:

<?php
//Main Navigation Function
function main_nav(){
$nav_sections = array("home"=>"","products"=>"products/","services"=>"services/",
                     "about"=>"about/", "contact"=>"contact/");
$output = "<UL>";
$i=0;

foreach($nav_sections as $nav){
    $output .= "<LI><A href=" . URL_ROOT . $nav . "></A>" . $nav . "</LI>";


}
 echo $output;
}
?>

URL_ROOT是一个定义的常量,它提供了根URL,但它没有通过文本链接页面。这是网站当前显示的内容:http://tomcat.cit.iupui.edu/gaddough/cit21500/assignment4/

1 个答案:

答案 0 :(得分:1)

您已经(正确地)将数组设置为键值对,这意味着您必须循环遍历它:

foreach($nav_sections as $title => $link) {
    $output .= "<li><a href=" . URL_ROOT . $link . ">" . ucfirst($title) . "</a></li>" . PHP_EOL;
}

ucfirst()使单词或句子的第一个字母为大写。

此外,在当前循环中,您可以打开并关闭锚点(链接),而无需为其指定任何文本(即<a href...></a>之间没有任何内容。

最后一点:您希望在$output<ul>个代码之间回显<ol>,而您的计数器$i在此特定代码段中是多余的。