我有一个在PHP脚本中运行的循环,它是.inc.php的一部分(它是一个从.txt文件中读取的标题,因此它可以从仅来自.txt的信息中添加到其导航栏中)。例如,.txt可以是:
约
接触
支持
它逐行读取文本文件,并将每行作为字符串返回,然后作为链接在导航栏中回显。无论出于何种原因,about和contact链接都没有“.php”扩展名,但支持链接却有。无论放入.txt文件的内容是什么,它的最后一行总是得到扩展名,而其他行则没有。我在echo语句中引用了引文,但无济于事。关于如何解决这个问题的任何想法?
<?php
if (file_exists("pagespage.txt")) {
$newFile = fopen('pagespage.txt', 'r');
while (! feof($newFile)) {
$pagename = fgets($newFile);
$pagenamecap = ucwords($pagename);
echo "<li><a class=button href=" . "$pagename.php>" . $pagenamecap . "</a></li>";
}
}
?>
答案 0 :(得分:3)
您呈现的HTML如下所示:
<li><a class=button href=contact
.php>Contact
</a></li>
你能明白这可能是个问题吗?
首先,在属性周围添加引号。其次,trim
你的字符串。
$pagename = trim(fgets($newFile));
$pagenamecap = ucfirst($pagename);
echo '<li><a class="button" href="'.$pagename.'.php">'.$pagenamecap.'</a></li>';
(“支持”没有这个问题,因为它是文件中的最后一行,因此在它的末尾没有换行符)
答案 1 :(得分:2)
您的链接结构不正确。你需要在href附近引用。你不需要从回声中走出来连接起来。
echo "<li><a class=button href='$pagename.php'>$pagenamecap </a></li>";
您可以在变量名称周围使用大括号{}
,以确保它不会与任何其他单词混合:
echo "<li><a class=button href='{$pagename}.php'>{$pagenamecap} </a></li>";