input中意外的字符:'\'(ASCII = 92)状态= 1
我的客户说他正在使用我的脚本得到这个错误:
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /path/to//header.php on line 34 Parse error: syntax error, unexpected T_STRING, expecting T_CONSTANT_ENCAPSED_STRING or '(' in/path/to/header.php on line 34
header.php
的第34行就是use \Main\Class;
现在,我告诉他,他必须有PHP >= 5.3.0
,他说他的PHP版本是5.3.24
可能是什么问题呢?
编辑:之前和之后的行
30. // Define absolute path 31. define("ABSPATH", $abs_path); 32. $_SESSION["abs_path"] = ABSPATH; 33. 34. use \CNS\main\CNS; 35. $cns = new CNS();
编辑2:
他给我这个:
Program Version Apache: 2.2.24 CentOS: CentOS release 6.4 (Final) cPanel: 11.36.1 (build 8) Curl: 7.12.1 MySQL 5.5.30 phpMyAdmin 3.5.5 Python: 2.6.6 Program Version Perl: 5.8.8 **PHP: 5.3.24** ionCube Loader: 4.2.2 Zend Optimizer: 3.3.9 Ruby: 1.8.7 Rails: 3.2.8 OpenSSL: 1.0.0-fips
如果您尝试使用名称空间但没有PHP 5.3,则会发生这种情况。 PHP 5.2及以下版本不支持命名空间,并在看到反斜杠时抛出此错误。
– 编辑:混合了版本。 如果我没有弄错的话,它是5.2和以下的,没有命名空间。
现在,我告诉他,他必须有PHP> = 5.3.0,他说他的PHP版本是5.3.24
可能是什么问题呢?
他的PHP版本实际上是<5.3.0,不pipe他是否知道。
查看许多PHP版本中发生的错误 。
如果在提到的错误后出现“意外的T_STRING”错误,则需要安装PHP 5.4+
请他用phpinfo()
创build一个文件。 他可能没有PHP版本> = 5.3.0 。
我跑了同样的问题,并做了一些研究,我设法解决这个问题。 在我的情况下,我使用PHP7,而我所要做的就是编辑位于~/.composer/vendor/laravel/installer/
的文件laravel,其中shebang行是#!/usr/bin/env php
我改变了#!/usr/bin/env php7
之后再次运行的工匠,我得到它的工作:
-bash-3.2$ laravel Laravel Installer version 1.3.3 Usage: command [options] [arguments] Options: -h, --help Display this help message -q, --quiet Do not output any message -V, --version Display this application version --ansi Force ANSI output --no-ansi Disable ANSI output -n, --no-interaction Do not ask any interactive question -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug Available commands: help Displays help for a command list Lists commands new Create a new Laravel application.
<FilesMatch "\.(inc|php|php3|php4|php44|php5|php52|php53|php54|php55|php56|phtml|phps)$"> AddHandler x-httpd-php53 .php </FilesMatch>
在.htaccess中
与其他用户一样,使用名称空间只对大于5.3.0的PHP版本有效,所以我的解决scheme能够包含使用名称空间的库的可选用法,即检查php版本并使用eval()函数以避免较低版本的PHP发生错误。
像这样的东西:
if ( phpversion() > '5.3.0' ){ include_once('/path/to/Library.php'); eval("Library\Foo::bar();"); }