По сути, файл был взломан, где по пути от Windows7 до Ubuntu.
Как я могу посмотреть двоичное представление файла, чтобы узнать, что произошло?
Сценарий командной строки 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
Дважды проверьте строку состояния «Блокнот ++» в правом нижнем углу, чтобы подтвердить свой выбор.
После сохранения и запуска из командной строки вы должны найти, что директива интерпретатора PHP теперь правильно распознана.