您的位置:首页 > 编程语言 > PHP开发

关于PHP的short_tag_open

2012-02-16 14:10 176 查看
比较老的 PHP 程序,常常使用简短风格,为了使这种代码可以被解释,必须开启 short_open_tag选项; 如果不改则会出现如下错误:
Warning: Unexpected character in input: ‘\’ (ASCII=92) state=1 in
/home/http/…/index.php on line 485

Warning: Unexpected character in input: ‘\’ (ASCII=92) state=1 in
/home/http/…/index.php on line 485

Parse error: syntax error, unexpected T_STRING in /home/http/…/index.php on line 485
个人不喜欢把 short_open_tag 改成 On ,分析一下只要把代码中的
<? 改成 <?php ,
<?= 改成 <?php echo 。 一行Shell把它替换一下就OK:

user@~$ sed -i ‘s/<?[[:space:]]/<?php /g;s/<?$/<?php /g;s/<?=/<?php echo /g’ `find PATH/ -name “*.php” |xargs`

# 把 PATH 改成代码目录即可。

参考 php.ini 核心配置选项说明

http://www.php.net/manual/zh/ini.core.php#ini.short-open-tag
决定是否允许使用 PHP 代码开始标志的缩写形式( <? ?> )。如果要和 XML 结合使用 PHP,可以禁用此选项以便于嵌入使用 <?xml ?> 。否则还可以通过 PHP 来输出,例如:<?php echo ‘<?xml version=”1.0″‘; ?> 。如果禁用了,必须使用 PHP 代码开始标志的完整形式( <?php ?> )。
Note: 本指令也会影响到缩写形式 <?= ,它和 <? echo 等价。使用此缩写需要 short_open_tag 的值为 On。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: