Шебанг #! unrecognized в Ubuntu, Файл, созданный в Windows7 | Устранение неполадок при кодировании

По сути, файл был взломан, где по пути от Windows7 до Ubuntu.

Как я могу посмотреть двоичное представление файла, чтобы узнать, что произошло?

Related of "Шебанг #! unrecognized в Ubuntu, Файл, созданный в Windows7 | Устранение неполадок при кодировании"

Сценарий командной строки PHP по-прежнему должен иметь открыватель <?php в них.

 #!/usr/bin/php echo "hi mom!\n"; 

не будет работать, это должно быть

 #!/usr/bin/php <?php echo "hi mom!\n"; 

Это потому, что нет такой вещи, как «php script». Существуют только различные текстовые файлы, в которых встроены блоки кода PHP. Даже в режиме CLI PHP ожидает / требует увидеть хотя бы один блок <?php . В противном случае интерпретатор не будет пинать и не увидит ни одного кода, даже если вы заявили, что это скрипт PHP с помощью shebang.

Режим PHP cli в основном является взломанным. PHP начинался как синтаксический анализатор CGI на стороне сервера и принципиально не изменился с этого режима.

Вы бегали с ./ ?

IE:

 ./myscript.php 

Попробуйте открыть его с помощью vi (m), и вы увидите проблему. Это плохой intrereter (^ M) в конце каждой строки. Попробуйте преобразовать его (fromdos или dos2unix), это устранит проблему 😉

Я предполагаю, что файлы, созданные в Windows, имеют спецификацию, которая путает вопросы.

При использовании Notepad ++ на компьютере с Windows можно изменить символ EOL из Windows в UNIX, перейдя к

Редактирование> Преобразование EOL> Формат UNIX

Опция меню EOL в Notepad ++

Дважды проверьте строку состояния «Блокнот ++» в правом нижнем углу, чтобы подтвердить свой выбор.

Статус EOL в Notpadd ++

После сохранения и запуска из командной строки вы должны найти, что директива интерпретатора PHP теперь правильно распознана.