Я хочу написать скрипт на PHP для обработки текстовых файлов. Я знаю несколько способов сделать это, кроме одного, который я хотел бы сделать. Я хочу иметь возможность передавать имя файла, как в традиционном приложении командной строки.
Например:
php script.php textfile.txt
или же
script.php textfile.txt
Я предполагаю, что это может быть сделано, потому что вы передаете аргументы композитору. Я просто не могу найти, как это сделать в документации или Google.
Может ли кто-нибудь указать мне правильное направление? Или укажите мне язык, который поддерживает это (возможно, Python или Groovy, если PHP не вариант).
В php, если вы запускаете его из командной строки, вы можете рассматривать любое значение после php в качестве аргумента. Внутри вашего script.php
у вас будет доступ к этим аргументам в $argv
массив.
следующим будет ваш php скрипт:
<?php
// script.php
print_r($argv);
Затем, если вы запустите этот файл из командной строки:
> php script.php foo bar testfile.txt
вы получите следующий результат
Array
(
[0] => script.php
[1] => foo
[2] => bar
[3] => testfile.txt
)
Увидеть PHP документация для дополнительной информации.
Это очень простой способ создания сценария, но если вы хотите создавать расширенные программы инструментов командной строки, я рекомендую использовать Консольный компонент Symfony2.
Компонент консоли позволит вам инкапсулировать функциональность каждой команды в своем собственном классе. Затем вы можете создать простой «консольный» файл, который сможет выполнять любую из этих команд. Взгляните на простой пример приложения Вот.
Других решений пока нет …