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

问题描述

| 我遇到错误   解析错误:语法错误,意外的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\\\\\';
    ,        反斜杠从技术上讲是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\\\\\';
足以使最后一个转义(因为它用单引号引起来)。但是,您可以将每个ѭ5替换为ѭ9。或者,您仅使用公共正斜杠“ 10”,因为Windows会将两者都接受为目录分隔符。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...