2012-08-13 57 views
2

我有我需要的幾頁,包括這樣一些文件,我使用類似
如何避免使用PHP的空白空間?

<html> 
<head> 
<title>This is a webpage</title> 
</head> 
<body> 
<div>Hello, this is a webpage</div> 
<?php include("header.html");?> 
<div>Some more text.</div> 
<?php include("BlockToInclude.php");?> 
<div>Even more text.</div> 
<?php include("footer.html");?> 
</body> 
</html> 

的問題是,每個include();我得到20像素的包含的內容之前,一個空格。我通過將第一個包含的塊的邊距減少20px來解決這個問題,但我更願意避免使用這個空間而不是補償它。另外,我對PHP很陌生,這是一種正常的行爲還是應該尋找我做錯的事情?

更新:我檢查了生成的代碼,並在每一個地方,我打電話給insert();函數它似乎是一個陌生人字符,不在原始文件(也不是調用者或包含)。我將Firefox代碼查看器中的代碼(其中不可見)複製到我的編輯器(Windows中的RJ TextEd),在其中顯示爲問號框中的問號;如果我將這段代碼保存爲一個靜態html,它將呈現相同的內容,但是如果我刪除這些字符,那麼空格將消失。有什麼想法嗎?

+3

這是你的HTML/CSS的問題,並沒有什麼用php做。看看由此產生的html,這就是你的問題所在。 – 2012-08-13 03:12:19

+1

查看包含的文件,看看是否有空格,然後結束只是爲了確保 – 2012-08-13 03:17:23

+0

這是你的html頁面的一個問題。 html頁面中的內容必須創建爲20px的空格,我認爲你應該使用firbug類型的工具進行調試。完全不用php包含函數的問題。 – d3vdpro 2012-08-13 03:37:47

回答

8

我發現這裏這個話題

有人賽斯:

我以前有這個問題。確保你用ASCII而不是二進制文件上傳你的文件。有時,對於某些FTP服務器,您必須手動設置。也可以嘗試在你的文本編輯器中將你的換行符轉換爲「\ n」。 Lemme知道你正在使用哪個編輯器,我會給你更具體的說明。

http://forums.digitalpoint.com/showthread.php?t=957679

而且有人解決了這個問題: 我解決使用記事本+記事本++和格式菜單(http://notepad-plus.sourceforge.net/) 打開PHP文件這個問題在UTF-8編碼選擇無BOM和保存。

希望這有助於

+0

是的,這是問題所在。謝謝。我不認爲這是一個編纂問題,因爲每個文件都是一樣的。我想知道是否有一些''可以避免這種情況。 – marlonob 2012-08-13 04:12:12

+0

嗯不知道,但我認爲,如果你有正確的編碼,你會解決你的問題。 – themis 2012-08-13 04:13:29

+0

對於那些使用Adobe Dreamweaver的用戶,如果「另存爲」頁面並用「包含Unicode簽名(BOM)」覆蓋它,則可以修復它。 – Paul 2015-10-16 18:57:29

1

包含文件末尾是否有空格?默認情況下,PHP不會從include指令中創建任何空格,除非在它後面留有空格,例如

沒有空格:

<?php include('x'); ?> 
</div> 

將包含空格的一行:

<?php include('x'); ?> 

</div> 

如果所包含的文件有空白的盡頭,那將得到輸出。

+1

據我可以告訴他,他正在問瀏覽器呈現的頁面佈局,html中的空白不應該影響到這一點。 – 2012-08-13 03:15:00

+0

文本中的空白可以排除佈局,特別是在像素完美的東西上。 – 2012-08-13 03:22:44

0

它的HTML行爲,因爲你把包括div標籤下,儘量把它it.Your代碼旁邊會是這樣

...</div><?php include("file.php") ?> 
0

這可以幫助你找到並減少空白。

  1. 看看源代碼,看看你是否可以找出哪些包含文件正在創建空白。

2.使用邊框顏色來劃分您的div塊,以便知道您的div塊有多少空間。

  1. 看看你是否可以讓你的代碼包含文件沒有任何空格或多餘的行。你可以在壓縮文件中包含的
1

不太一樣,但類似:

我有一個神祕的「1」在我的包含文件的點出現在我的HTML。

這是一個簡單和愚蠢的錯誤,我把包括在使用短標籤,如:

<?=include('social-media-box.php')?> 

,而不是正確:

<?php include('social-media-box.php'); ?> 

,這引起了「1」出現,無論出於何種原因。無論如何,使用完整的PHP標籤擺脫它。

希望它可以幫助別人。

+1

因爲在php中,當你使用<?=等於<?php回聲 – josecatalani 2015-01-12 11:39:13

0

把這個規則放在你的CSS的開始, 它將禁用頁面中元素的默認填充和頁邊距。

* 
{ 
    margin: 0; 
    padding: 0; 
} 
0

把它之前<!DOCTYPE...

這樣的代碼:

<?php include "config.php"; ?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

,寫你的網頁代碼......