关于php的标记带来的问题

来源:互联网 发布:类似初页的软件 编辑:程序博客网 时间:2024/05/18 02:51

     在部署GNUBoard4的时候,发现这个由韩国人开发的代码中,显示变量的标记都是用这样的方式:<?=$val ?>,再或<?=oulogin()?>

有点类似<%=%>的风格。我打开浏览器运行代码,发现出现错误,代码不能正常运行,看了看代码发现并对原gnuboard代码做过多的修改。再看了看php运行版本,疑惑是不是原来运行的php版本是否过低,结果发现确实是php4,而我本机是php5版本,但是应该做到向下兼容的啊,况且php4的代码在php5大都可以跑起来的。怎么回事呢?

   ... ...

   后来发现了问题的根源,是因为我的php配置中,没有设置short_open_tag参数。在php.ini中,设置short_open_tag = On;程序立即跑起来了。以往都是使用php标准推荐的<?php ?>的标记,但是没有意识到php的其他标记法。

 

  搜索了一遍,对于php四种标记总结如下:

   第一种: 标准标签:< ?php .. ?>

 第二种: 脚本标签:< script language=”php”>…< /script>

 第三种: 短标签:< ? … ?> 需要在php.ini中设置short _open_tag=on,默认是on,或者在 PHP 编译时加入了 –enable-short-tags 选项。(PHP 3版本还可以通过 short_tags() 函数激活使用短标记。)

  第四种:asp标签(PHP 3.0.4 版后支持): 需要在php.ini中设置asp_tags=on,默认是off。