今天配置了一个php页面去修改svn密码问题,结果调了半天,最后在Windows和 Linux的运行现象是不一样,运行结果更不一样了,关键是完全一模一样的代码。
最后发现是短标签引起的,Windows环境中短标签默认是打开的,Linux下 默认是关闭的。控制参数: short_open_tag = On 如果设置为Off,则不能正常解析类似于这样形式的php文件: phpinfo() ?> 而只能解析 <?php phpinfo() ?> 这样形式的php文件 所以要想php支持短标签,需要我们把short_open_tag 设置为On. <?php 这是完整标签<? 这是短标签
<?php 这是完整标签
<? 这是短标签
//php.ini中
short_open_tag = On
//除<?php ?>,可使用更灵活的调用方法
<? /*程序操作*/ ?>
<?=/*函数*/?>
php4种常见风格标签写法
<?php
echo “1111111111111 <br>”;
?>
<?
echo “222222222222 <br>”;
?>
<%
echo“333333333333 <br>”;
%>
(注释:这种写法在php配置中默认关闭了的,所以不能输出一行3.如果要正常输出,需要配置php.ini文件。在配置文件中找到asp_tags=off ,将off改为on。改动配置文件后需要重启apache。)
<script language=”php”>
echo“444444444444 <br>”
</script>
以上四种标签的区别:
第一种属于XML风格,当php代码需要嵌入XML文件中时需要使用这种形式的标签。第一种风格标签在配置文件中是不能被禁止的,其他的可以设置禁止或开启。第二种当嵌入在XML文件中时它会干扰XML文档声明,所以要禁止使用。第三种是asp.net的习惯写法,第四种是JS、VBscript等脚本程序员喜欢的风格。一般出租的服务器,后三种风格标签都是被禁止的,所以写成后三种形式的可能导致php无法动态输出。所以,建议最好使用第一种风格标签。