小弟我遇到一個問題
index.php 的一開頭若有一個 <?php require_once('a.php'); ?> 的話
會自動引入一個換行,導致我排版錯誤。
大家可以直接拿下面的code去run看看
我的瀏覽器:google chrmoe, IE9, FireFox10.0.2(不會有這問題)
==================================
EXAMPLE
==================================
[index.php]
<?php require_once('a.php'); ?>
<html>
<head>
<title>abc</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div class="wrapper">
abcde<br />
</div>
</body>
</html>
==================================
[style.css]
body {
text-align: center;
margin: 0;
padding: 0;
background-color: #800080;
}
.wrapper {
width: 1000px;
margin: 0 auto;
text-align: left;
background-color: #C0C0C0;
}
==================================
[a.php]
<?php
define('AB', '1');
?>
==================================
產出的原始碼
<html>
<head>
<title>abd</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div class="wrapper">abcde<br />
</div>
</body>
</html>
==================================
問題:
我需要用到 "a.php"
可是一開頭的 require_once 會引入一個非預期的「換行」
該如何把這個非預期的換行給挪掉呢?
或者我該換用甚麼其他語法嗎?
感激不盡 !
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.78.106
1F:推 kerash:a.php 的內容是?另外html前面的一行拿掉? 04/14 21:29
2F:推 bibo9901:看看a.php是不是有輸出.. 04/14 21:30
3F:→ bibo9901:<html>前面那個空行應不致影響排版 04/14 21:31
4F:→ kerash:有時就怕很玄...所以才盡量能避免的就避掉 囧" 04/14 21:33
5F:→ tkdmaf:BOM??? 04/14 21:34
6F:→ ontario:a.php只有定義define(常數, ...)耶 ... 04/14 21:34
7F:→ tkdmaf:你把檔案全部都設定成無bom模式看看。 04/14 21:35
8F:→ ontario:要怎麼設呢?會有甚麼影響? 04/14 21:36
9F:→ ontario:多書來的這一行位在<body>和<div id="wrapper">之間... 04/14 21:37
10F:→ ontario:sorry, 是class="wrapper" ... 筆誤 04/14 21:37
11F:→ ontario:<html>前的那一個空白行也有拿掉了 04/14 21:38
12F:→ ontario:我做的實驗是,拿掉和留著require_once,會多一行 04/14 21:38
13F:推 kerash:所以不管有沒有都會多一行嗎? 04/14 21:43
14F:→ ontario:沒有require_once,就不會多一行 04/14 21:45
15F:推 kerash:貼出你的 a.php 裡面的內容看看吧 04/14 21:46
16F:→ ontario:有require_once的話,就會多一行在<body>和wrapper之間 04/14 21:46
17F:→ ontario:a.php裡面都是定義常數的語法。例:define('AB','1'); 04/14 21:47
※ 編輯: ontario 來自: 118.168.78.106 (04/14 21:57)
18F:推 kerash:能把網頁貼上來看看嗎?其實在中間出現有點神奇@@" 04/14 21:54
19F:推 dio833:多一行是指最後產出的HTML原始檔多一個<br>還是多一個"\n"? 04/14 21:54
20F:→ ontario:我有設定不同顏色,可以拿上面完整的code試試看 04/14 21:57
21F:→ dio833:如果真的找不到,就HTML換成echo "<body><div class=.."; 04/14 21:58
22F:→ ontario:我是用chrome的「檢查元素」發現的...不清楚是<br>還是\n 04/14 22:02
23F:推 kerash:我看好像是 \n.... br就會是br ... QQ 04/14 22:03
24F:→ kerash:測試確認了,是\n,那是因為你 abc 跟 div 不同行 04/14 22:04
25F:→ kerash:解答就是誤會一場XD 04/14 22:04
26F:→ dio833:我試過了正常耶,你可否把產出的的HTML原始碼貼出來 04/14 22:04
27F:→ kerash:突然看到原PO你寫會導致排版錯誤 ... 如果會錯應該不會是\n 04/14 22:05
28F:→ kerash:才對啊... @@ 04/14 22:05
29F:→ dio833:樓上說的對,是誤會一場的可能很大 04/14 22:07
30F:→ ontario:abc 跟 div 不同行,我這邊測試沒影響耶 ... 04/14 22:07
※ 編輯: ontario 來自: 118.168.78.106 (04/14 22:11)
31F:→ kerash:那就照 dio 說的,把你看到的原始碼貼出來,順便拍你出現的 04/14 22:09
32F:→ kerash:畫面看看@@.. 因為怕真的是誤會 04/14 22:09
33F:→ dio833:你的意思是不同瀏覽器結果也會不同?那就跟Server端沒什麼關 04/14 22:13
34F:→ ontario:產出原始碼重編在上面了。 04/14 22:13
35F:→ dio833:係了,你要不先加<!DOCTYPE html PUBLIC..... 這個在第一行 04/14 22:14
36F:→ dio833:你把你的產出原始碼放到Server端,用不同瀏覽器執行看看@@ 04/14 22:18
37F:→ MOONRAKER:PHP大猜謎 我投BOM一票 :D 04/14 22:58
38F:→ ontario:dio833...也試過了...一樣耶 04/14 23:21
39F:→ dio833:影片我看了,你不該用Developer Tools來看,要看的是生成的 04/15 00:20
40F:→ dio833:原始碼,透過developer tools看的東西,是經過整理過後的 04/15 00:20
41F:→ dio833:這樣很容易造成雞同鴨講的狀況,你應該是透過php生成的原始 04/15 00:21
42F:→ dio833:HTML程式拿來找問題,而不要聚焦在DOM工具上,所有的DOM都 04/15 00:22
43F:→ dio833:有一定的容錯性跟解讀HTML的方式,你的重點要擺在php將你的 04/15 00:23
44F:→ dio833:純文字檔改變了什麼!也就是你講兩次結果的純文字檔拿來比較 04/15 00:24
45F:→ dio833:,看看兩個純文字檔差別在哪裡,再透過差別去判斷問題。 04/15 00:26
46F:→ ontario:....請問,該怎麼看呢?sorry~我是自學的~有點弱XD 04/15 00:30
50F:→ MOONRAKER:我以前被DOM婊到兩次 第一次在php裡 第二次更玄在gif裡 04/15 01:20
51F:→ MOONRAKER:第一次我把輸出檔案save as存下來用hex editor看 04/15 01:22
52F:→ MOONRAKER:第二次我把gif拿來用hex editor看 所以-就是這樣! 04/15 01:22
53F:推 kerash:用notepad++ 開起來後,編碼有uft-8 NO BOM,再另存 04/15 10:02
54F:→ kerash:這是如果有遇到樓上說的BOM時可以測試的方法之一~ 04/15 10:03
55F:→ ontario:按照kerash的notepad++方法測試,我的問題解掉了! 04/15 12:51
56F:→ ontario:所以真的是因為看不見的"東西"造成的"編譯"錯誤?! 04/15 12:52
57F:→ ontario:有建議的Hex Editor嗎?(我查到Hex Editor XVI32推嗎? 04/15 12:54
58F:→ ontario:還有,檔首「有BOM」改成「無BOM」後,會有其他影響嗎? 04/15 13:11
59F:→ ontario:google一下後,只能說真的好複雜...有較簡潔的敘述嗎? 04/15 13:12
60F:→ ontario:謝謝所有熱心的各位,受小弟一大拜! 04/15 13:12
61F:推 tkdmaf:其實這問題我很久以前就遇過,所以一開始就覺得是bom。 04/15 13:43
62F:→ MOONRAKER:任何hex editor都可以,能看的就好了。絕不要把BOM直接 04/15 15:17
63F:→ MOONRAKER:修掉,用文字editor轉換就可以。我都用total commander 04/15 15:18
64F:→ MOONRAKER:贈送的viewer。 04/15 15:18
※ 編輯: ontario 來自: 219.84.60.175 (04/16 13:22)
65F:→ ontario:非常感謝各位!希望以後有遇到類似問題者可以參考這兒。 04/16 13:23
66F:噓 pptsodog:ㄏ 05/21 16:31