PHP解析错误是由包含驱动器路径的字符串变量引起的


PHP Parsing error results from string variable containing a drive path

我收到一个错误

分析错误:语法错误,意外的T_STRING

在下面有$szSearchDBPath的线路上。PHP似乎不喜欢驱动器路径。

我花了几个小时在谷歌上搜索,试图找出问题所在,但没有成功。

根据我的理解,单引号字符串是不解析的,应该从字面上解释。

有人知道问题出在哪里吗?

<?php
$szHost = getcwd();
$szAddDir = "";
$g_bSaveSearch = 'True';
$szContentRoot = 'd:'websites'lycos'Alpha_Pourri'';
$szSearchDBPath = 'd:'websites'lycos'Alpha_Pourri'searches'';
$bPRODSite = 'False';
$i = 0;
...

由于反斜杠用于转义字符,您在结束的单引号前面放了一个反斜杠,从而意外地对其进行了转义。请尝试将所有反斜杠转换为双反斜杠,例如

$szContentRoot = 'd:''websites''lycos''Alpha_Pourri''';

Backsplash在PHP中从技术上讲是转义字符,因此必须对它们进行双重转义:

<?php
$szHost = getcwd();
$szAddDir = "";
$g_bSaveSearch = 'True';
$szContentRoot = 'd:''websites''lycos''Alpha_Pourri''';
$szSearchDBPath = 'd:''websites''lycos''Alpha_Pourri''searches''';
$bPRODSite = 'False';
$i = 0;

有关这方面的更多信息,您可以参考关于字符串的手动条目:

为了指定文字单引号,用反斜杠()对其进行转义。到指定一个文字反斜杠,将其加倍('')。。。

$szContentRoot = 'd:'websites'lycos'Alpha_Pourri'';

'转义单引号',因此字符串不在此结束。转义反斜杠

$szContentRoot = 'd:'websites'lycos'Alpha_Pourri''';

它应该足以转义最后一个(因为它是单引号)。但是,您可以将每个'替换为''。或者您只需要使用公共的正斜杠/,因为windows接受两者作为目录分隔符。