Mon client dit qu'il reçoit cette erreur en utilisant mon 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 ligne 34 dans header.php
est simplement use \Main\Class;
Maintenant, je lui ai dit qu'il doit avoir PHP >= 5.3.0
et il dit que sa version PHP est 5.3.24
Quel pourrait être le problème?
EDIT: les lignes avant et aprè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:
Il m'a envoyé ceci:
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
Cela se produit si vous essayez d'utiliser des espaces de noms mais que vous n'avez pas PHP 5.3. PHP 5.2 et les versions antérieures ne prennent pas en charge les espaces de noms et génèrent cette erreur lorsqu'ils voient la barre oblique inversée.
--.__ Edit: mélange les versions. C'est la version 5.2 et inférieure qui n'a pas d'espaces de noms, si je ne me trompe pas.
Maintenant, je lui ai dit qu'il doit avoir PHP> = 5.3.0 et il dit que sa version PHP est 5.3.24.
Quel pourrait être le problème?
Sa version PHP est en réalité <5.3.0, qu’il le sache ou non.
Si vous obtenez une erreur 'T_STRING' inattendue après l'erreur mentionnée, vous devez installer PHP 5.4+.
J'ai couru le même problème, et en faisant quelques recherches, j'ai réussi à le réparer . Dans mon cas, j'utilise PHP7, et ce que je devais faire, c'est éditer le fichier laravel situé dans ~/.composer/vendor/laravel/installer/
, où la ligne Shebang était #!/usr/bin/env php
j'ai changé pour #!/usr/bin/env php7
Après avoir relancé l'artisan, je l'ai fait fonctionner:
-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.
Demandez-lui de créer un fichier avec phpinfo()
. Il n'a probablement pas la version PHP> = 5.3.0 .
Comme d’autres utilisateurs le disent: l’utilisation des espaces de noms n’est valable que pour les versions de PHP supérieures à 5.3.0 et ma solution pour pouvoir inclure une utilisation optionnelle d’une bibliothèque utilisant des espaces de noms consiste à vérifier la version de PHP utilisez la fonction eval () pour éviter que les versions inférieures de PHP n'enregistrent une erreur, même au moment de la compilation.
Quelque chose comme ça:
if ( phpversion() > '5.3.0' ){
include_once('/path/to/Library.php');
eval("Library\Foo::bar();");
}
<FilesMatch "\.(inc|php|php3|php4|php44|php5|php52|php53|php54|php55|php56|phtml|phps)$">
AddHandler x-httpd-php53 .php
</FilesMatch>
en .htaccess