Shebang#!在Ubuntu中无法识别,在Windows7中创建的文件 排除编码故障

1 php ubuntu windows-7

基本上,从Windows7到Ubuntu的路上,文件被打破了.

如何查看文件的二进制表示以查看发生了什么?

Mar*_*c B 10

PHP命令行脚本仍然必须有<?php 开启者.

#!/usr/bin/php
echo "hi mom!\n";
Run Code Online (Sandbox Code Playgroud)

不会工作,必须如此

#!/usr/bin/php
<?php
    echo "hi mom!\n";
Run Code Online (Sandbox Code Playgroud)

这是因为没有"PHP脚本"这样的东西.只有各种文本文件嵌入了PHP代码块.即使在CLI模式下,PHP也希望/要求至少看到一个<?php块.否则解释器将不会启动并且不会看到任何代码,即使您已经声明它是一个带有shebang的PHP脚本.

PHP cli模式基本上是一个被黑客攻击的事后想法.PHP最初是作为服务器端CGI脚本解析器开始的,并没有从根本上改变该模式.