2016-09-22 101 views
0

我使用下面的代碼能夠輕鬆地測試我的dev的機器和共享主機上我的網頁:爲什麼我的include_path中的反斜槓會被破壞?

$include_path_afrihost = "../php/Services/facebook/php-graph-sdk-5.0.0/src/Facebook"; 
$include_path_dev = __DIR__."\sdk\facebook\php-graph-sdk-5.0.0\src\Facebook"; 
ini_set("include_path", $include_path_afrihost . PATH_SEPARATOR . $include_path_dev); 
require_once "Facebook.php"; 

當我嘗試和運行代碼,我得到以下異常:

require_once():需要打開失敗'Facebook.php' (include_path ='../php/Services/facebook/php-graph-sdk-5.0.0/src/Facebook; C:\ Dev \ PHP \ Projects \ Messenger \ Code \ FacebookClient \ sdkvertising \ php-graph-sdk-5.0.0 \ src \ Facebook')

請注意dev中的亂七八糟包含「\ FacebookClient \ sdkhotos \」路徑,其中反斜槓和'facebook'的'f'缺失。我直接從Windows文件資源管理器中的地址欄複製路徑,並且所有其他反斜槓都很好。

如果我改變了一行,並做出滑稽的雙反斜線,e.g:

$include_path_dev = __DIR__."\sdk\\facebook\php-graph-sdk-5.0.0\src\Facebook"; 

然後代碼工作正常。

+0

你使用哪個操作系統? –

+0

Windows 10. Duh,我是stoopid。這不是一個PHP的東西,它是一個Windows的東西; PHP只是通過它的路徑。 – ProfK

回答

1

\f正在被讀作轉義字符,與\n是如何換行相似。

使用第二個反斜槓轉義反斜槓:\\f變成\f。一般來說,你應該總是避免反斜槓來避免這個問題。

+0

謝謝。我認爲(noob)\並不是用於在PHP中進行轉義。相反,誰知道呢? – ProfK

相關問題