我有這條線在PHP中:解析錯誤 - 語法錯誤,意想不到的T_NS_SEPARATOR
$bom != b"\xEF\xBB\xBF"
當我運行它,我得到的錯誤:
Parse error: syntax error, unexpected T_NS_SEPARATOR in
C:\xampp\htdocs\MediaAlbumWeb\Utils\Utils.php on line 218
什麼是在PHP中T_NS_SEPARATOR爲什麼它是意外的?
我有這條線在PHP中:解析錯誤 - 語法錯誤,意想不到的T_NS_SEPARATOR
$bom != b"\xEF\xBB\xBF"
當我運行它,我得到的錯誤:
Parse error: syntax error, unexpected T_NS_SEPARATOR in
C:\xampp\htdocs\MediaAlbumWeb\Utils\Utils.php on line 218
什麼是在PHP中T_NS_SEPARATOR爲什麼它是意外的?
您的代碼中可能在該行上方有未封閉的單引號或雙引號。
什麼是引號之外的b
?
如果它是一個比較,它可能是這樣的:
if($bom != "b\xEF\xBB\xBF")
{
//code
}
簡單的代碼來重現此錯誤在PHP中:
<?php
$arg = "'T'; //this unclosed double quote is perfectly fine.
$vehicle = ($arg == 'B' ? 'bus' : 'not a bus');
print $vehicle . "\n"; //error is thrown on this line.
?>
運行它,它打印錯誤:
PHP Parse error: syntax error, unexpected T_NS_SEPARATOR in
/var/www/sandbox/eric/code/php/run08/a.php on line 6
//確定是否文件有一個utf-8 bom並跳過它,如果它確實是 $ bom = fread($ fp,3); if($ bom!= b「\ xEF \ xBB \ xBF」) rewind($ fp); – 2011-06-07 09:32:15
你有很多Python嗎? b「字符串」不是用PHP編寫字符串的有效方式,儘管它是用Python編寫的。如果你只是想要字節,那麼你可以寫出字符串爲:
echo "\xEF\xBB\xBF";
這是行得通的。如果您想檢查不等式:
if($bom != "\xEF\xBB\xBF") {
}
什麼是你反正檢查?對於一個字節順序標記?如果是這樣的話:爲什麼呢?
我的不好:看來b「\ xEF \ xBB \ xBF」;在PHP中是有效的語法,但我從來不知道這一點。 – 2011-06-07 09:29:53
它正在檢查bom utf格式與否。我該如何解決這個問題? – 2011-06-07 09:30:00
Riaz;看起來語法*是*正確的。你介意顯示代碼的其餘部分,這似乎是一個問題。 – 2011-06-07 09:32:44
該行沒有解析錯誤。如果可能的話,粘貼你的整個代碼或者在第218行之前至少有幾行。 – codaddict 2011-06-07 09:20:10
請顯示一些與此相關的更多代碼。 – Gaurav 2011-06-07 09:20:30
只是一個瘋狂的猜測:嘗試刪除字符串前的'b'。錯誤消息提示名稱空間雖然 – knittl 2011-06-07 09:21:59