2016-09-22 109 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

相关问题