2016-07-25 39 views
0

我有一个循环运行在PHP脚本中,它是.inc.php的一部分(它是一个从.txt文件中读取的头文件,以便它可以从信息中单独添加到它的导航栏中来自.txt)。例如,在.TXT可能是:字符串在PHP中不会正确拼接

接触

支持

它读取由线的基础行的文本文件,并返回每个线作为字符串,然后作为导航栏中的链接回显出来。无论出于何种原因,about和联系链接都没有“.php”扩展名,但支持链接确实如此。无论将什么内容放入.txt文件,它的最后一行总是会得到扩展名,而其他的则不会。我在回声陈述中引用了引号,但无济于事。任何想法如何我可以解决这个问题?

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

(“支持”,没有这个问题,因为这是文件的最后一行,因此在它的结束并没有一个换行符)

2

您的链接结构不正确。你需要引用href。你不需要从echo中退出来连接。

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

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

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

引用在属性值周围是技术上可选的,只要它们包含的符号有限。 –

+0

嗯。有趣。我想它是如此根深蒂固在我的脑海中。这对我来说并不合适,使用它们可能更好。 – aynber

+1

哦,绝对。不否认这一点。但是这并不能解决问题,因为'href'将会是'contact%0D%0A.php',这无疑会导致404错误:) –