2009-12-13 54 views
1

XML版本1.0編碼UTF-8在PHP,我曾嘗試:在PHP中xml版本1.0編碼utf-8?

echo '<?xml version="1.0" encoding="utf-8"?>'; 

但這並不驗證上W3C,在XHTML使用時,PHP的顯示錯誤。

什麼是解決這個問題的最簡單方法?有了它驗證

由於上W3C

錯誤:

第5行,列46:字符 「'」 不允許在序言

echo '<?xml version="1.0" encoding="utf-8"?>'; 

線5,柱45:XML解析錯誤:預計開始標記,'<'找不到

echo '<?xml version="1.0" encoding="utf-8"?>'; 

php error:

解析錯誤:語法錯誤,在/home/public_html//request.php意外T_STRING線路7

<?php 
session_start(); 
include ('../connection.php'); 
include ('../functions.php'); 
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; 
?> 
+2

和誤差...? – 2009-12-13 22:21:00

+0

「這不能驗證W3C」 - 錯誤信息是...? – VolkerK 2009-12-13 22:21:18

+0

我們需要看到(a)源和(b)(可能)輸出來告訴你什麼是錯的。說它「顯示錯誤」沒有幫助。什麼樣的錯誤?你有錯誤信息嗎?它會讓你的電腦爆炸嗎? – 2009-12-13 22:21:43

回答

3

問題是在php.ini

+1

時,它的w3c驗證程序發現錯誤是否可以在不訪問php.ini的情況下關閉它們? – Elliott 2009-12-13 23:05:06

+0

我相信short_open_tag是不可通過ini_set()更改的,您將不得不直接訪問php.ini – 2009-12-14 01:24:45

0

根據你的錯誤消息,對不起,如果這脫落居高臨下,而是你的代碼包在PHP中打開和關閉標記?

也就是說,你的文件是這樣的嗎?

<?php 
echo '<?xml version="1.0" encoding="utf-8"?>'; 
?> 

還是這樣?

echo '<?xml version="1.0" encoding="utf-8"?>'; 
+0

是它的包裝,大部分是xhtml我只是開始/結束PHP標籤,我需要包括PHP。 – Elliott 2009-12-13 22:28:23

1

您是否在腳本的開頭加入了<?php標記?

<?php 
echo '<?xml version="1.0" encoding="utf-8"?>'; 
?> 
+0

是不是通過echo'ing工作,只是它沒有通過,它*需要*到:p – Elliott 2009-12-13 22:31:26

+0

有沒有*在驗證後的源代碼中肯定沒有提及<?php? – 2009-12-13 22:36:47

+0

腳本的第一行是什麼樣的?如果第一行是一個XML聲明並且'short_open_tags'處於打開狀態,那麼你會得到一個解析錯誤。 – leepowers 2009-12-13 22:41:07

3

short_open_tag = On我傾向於同意瓦特/ @just,這很可能與short_open_tag = On做。以下是解決這個問題的幾種方法。

你會破壞代碼的成片(短,甜美,大方,但它的每一個實例做):

echo '<'.'?xml version="1.0" encoding="utf-8"?'.'>'; 

您可以修改php.ini直接(永久和全面的,最好的解決方案在我看來,但它需要modifo獲取IIS的php.ini和重新啓動Apache)。

或者,你可以使用htaccess to define the ini setting for you.這周圍獲取的問題,大部分問題W/1 & 2,但它需要Apache(我不知道如何讓IIS來完成這項工作)