0

我在作为 .inc.php 一部分的 PHP 脚本中运行了一个循环(它是一个从 .txt 文件读取的标头,因此它可以从仅来自 .txt 的信息中添加到它的导航栏)。例如,在 .txt 中可能是:

关于

接触

支持

它逐行读取文本文件并将每一行作为字符串返回,然后在导航栏中作为链接回显。无论出于何种原因,关于和联系链接没有“.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>";
        }
    }
    ?>
4

2 回答 2

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>';

(“支持”没有这个问题,因为它是文件中的最后一行,因此它的末尾没有换行符)

于 2016-07-25T20:25:00.990 回答
2

您的链接结构不正确。您需要在 href 周围加上引号。您无需退出回声即可进行连接。

echo "<li><a class=button href='$pagename.php'>$pagenamecap </a></li>";

您可以在变量名称周围使用大括号{},以确保它不会与任何其他单词混合:

echo "<li><a class=button href='{$pagename}.php'>{$pagenamecap} </a></li>";
于 2016-07-25T20:24:31.157 回答