php - new - Carácter inesperado en la entrada: ''/'(ASCII=92) estado=1
print namespace php (7)
Mi cliente dice que está recibiendo este error usando mi script:
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
La línea 34 en header.php
es simplemente use /Main/Class;
Ahora, le dije que tiene que tener PHP >= 5.3.0
y dice que su versión de PHP es 5.3.24
¿Cual podría ser el problema?
EDITAR: Las líneas antes y después.
30. // Define absolute path
31. define("ABSPATH", $abs_path);
32. $_SESSION["abs_path"] = ABSPATH;
33.
34. use /CNS/main/CNS;
35. $cns = new CNS();
EDIT 2:
Él me envió esto:
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
Ahora, le dije que tiene que tener PHP> = 5.3.0 y dice que su versión de PHP es 5.3.24
¿Cual podría ser el problema?
Su versión de PHP es en realidad <5.3.0, lo sepa o no.
Como dicen otros usuarios: el uso de espacios de nombres solo es válido para versiones de PHP superiores a 5.3.0, por lo que mi solución para poder incluir un uso opcional de una biblioteca utilizando espacios de nombres es verificar la versión de php y usar la función eval () para evitar que las versiones inferiores de PHP disparan un error, incluso en tiempo de compilación.
Algo como esto:
if ( phpversion() > ''5.3.0'' ){
include_once(''/path/to/Library.php'');
eval("Library/Foo::bar();");
}
Corrí el mismo problema, y haciendo algunas investigaciones logré solucionarlo. En mi caso, uso PHP7, y lo que tuve que hacer es editar el archivo de laravel ubicado en ~/.composer/vendor/laravel/installer/
, donde la línea de shebang era #!/usr/bin/env php
cambié a #!/usr/bin/env php7
Después de correr nuevamente el artesano, lo tengo funcionando:
-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.
Esto sucede si está tratando de usar espacios de nombres pero no tiene PHP 5.3. PHP 5.2 y anteriores no admiten espacios de nombres y lanzan este error cuando ven la barra invertida.
- Edición: mezcla las versiones. Es 5.2 y más abajo que no tienen espacios de nombres, si no me equivoco.
Pídale que cree un archivo con phpinfo()
. Probablemente no tenga la versión de PHP> = 5.3.0 .
Si aparece el error ''T_STRING inesperado'' después del error mencionado, debe instalar PHP 5.4+
<FilesMatch "/.(inc|php|php3|php4|php44|php5|php52|php53|php54|php55|php56|phtml|phps)$">
AddHandler x-httpd-php53 .php
</FilesMatch>
en .htaccess