0

我正在建立一个开发环境以在 php 站点上工作。我已将所有源代码复制到运行 wamp 的 Windows 7 机器上。

我正在尝试更新所有路径以反映我的开发箱上的正确位置。但是我对我的一些定义语句有疑问。例如,我有以下代码:

define ('DOCUMENT_ROOT', 'c:\wamp\www\myapplicationname\members\');
define ('DB_LOG', 'c:\wamp\www\myapplicationname\members\log\db');
define ('ERROR_LOG', 'c:\wamp\www\myapplicationname\members\log\errors');

当我尝试运行站点站点时,我收到以下错误消息:

解析错误:语法错误,第 39 行 C:\wamp\www\myapplicationname\members\includes\init.php 中的意外 T_STRING

第 39 行是我上面列出的第二个定义语句。我可以说存在问题,因为第二行的语法突出显示不起作用。它不识别“定义”语句。
如果我将第一行更改为:

 define ('DOCUMENT_ROOT', 'c:\wamp\www\myapplicationname\members\\');

然后突出显示再次起作用,但是当然,路径是错误的。

你能告诉我我错过了什么吗?

编辑 1

我试图将其更改为:

'define ('DOCUMENT_ROOT', 'c:\wamp\www\myapplicationname\members\'');

但是稍后在代码中,当我们像这样附加到 DOCUMENT_ROOT 时,

require_once DOCUMENT_ROOT.'\inc\exception.class.php';

我收到以下错误:

警告:require_once(c:\wamp\www\myapplicationname\members'\inc\exception.class.php) [function.require-once]:无法打开流:

4

2 回答 2

1

SO代码突出显示清楚地显示了问题:\是一个转义字符,它正在转义以下字符。'不被解释为字符串结尾,而是作为'该字符串中的一个字符。然后你的字符串跨越到下一行,这是不允许的,PHP 会抛出一个错误。

如果要\在字符串中使用,则需要键入\\- 第一个将转义第二个:

define ('DOCUMENT_ROOT', 'c:\\wamp\\www\\myapplicationname\\members\\');
define ('DB_LOG', 'c:\\wamp\\www\\myapplicationname\\members\\log\\db');
define ('ERROR_LOG', 'c:\\wamp\\www\\myapplicationname\\members\\log\\errors');
于 2013-02-16T18:06:59.110 回答
0

您想转义所有反斜杠,因为它们是 PHP 中的特殊字符:

define ('DOCUMENT_ROOT', 'c:\\wamp\\www\\myapplicationname\\members\\');
define ('DB_LOG', 'c:\\wamp\\www\\myapplicationname\\members\\log\\db');
define ('ERROR_LOG', 'c:\\wamp\www\\myapplicationname\\members\\log\\errors');
于 2013-02-16T18:04:13.540 回答