自定义命令行实用程序怎么样?

时间:2009-06-27 10:12:16

标签: api unix command-line sms

最近,我发布了一个开源类 - 一个主要的SMS网关提供的API函数包装,它提供了一个HTTP-API访问来发送短信。

现在我想创建一个自定义命令行utitity,可以在命令行的任何地方为用户提供,这样他就可以通过运行这样的控制台命令来发送短信:

$ my_custom_send_sms_command -u your_username -p your_password -k your_api_key 447771234567 'Hello from CLI'

请解释一下如何做到这一点?

更新:

类是用PHP编写的。

1 个答案:

答案 0 :(得分:0)

确保安装了PHP CLI包。在我的Ubuntu VPS上我必须运行:

$ apt-get install php5-cli

检查它是否已安装:

$ /usr/bin/php -v

然后,创建一个名为sendsms.php的文件,内容与此类似:

#!/usr/bin/php -q
<?php

  // command line parameters are in the format:
  //     key1 value1 .. keyN valueN number message

  $username = "";
  $password = "";
  $apikey = "";

  // process pairs of arguments up to the last two    
  for ($x = 0; $x < ($argc - 3); $x++)
  {
    if ($argv[$x] == "-u") $username = $argv[$x + 1];
    if ($argv[$x] == "-p") $password = $argv[$x + 1];
    if ($argv[$x] == "-k") $apikey = $argv[$x + 1];
  }
  $number = $argv[$argc - 2];
  $message = $argv[$argc - 1];

  // To do: call the SMS API
  // For now just output the info   
  echo("Username = " . $username . "\r\n");
  echo("Password = " . $password . "\r\n");
  echo("API key = " . $apikey . "\r\n");
  echo("Number = " . $number . "\r\n");
  echo("Message = " . $message . "\r\n");
?>

确保该文件具有执行权限:

chmod 755 sendsms.php

然后从当前文件夹中运行它:

$ ./sendsms.php -u your_username -p your_password -k your_api_key 447771234567 'Hello from CLI'