2016-07-25 85 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錯誤:) –