twitter投稿用のプログラムを少し修正してみる。
http://ja.doukaku.org/278/lang/php/ を少し修正してみました。
<?php // php this.php -u user -p pass -s "status" $options = getopt('u:p:s:'); $errmsg=""; if (!isset($options["u"]) ) { $errmsg .= "-u ユーザ名\n"; } if (!isset($options["p"]) ) { $errmsg .= "-p パスワード\n"; } if (!isset($options["s"]) ) { $errmsg .= "-s メッセージ\n"; } if(!empty($errmsg)){ echo "オプションが足りません\n".$errmsg; exit(1); } echo(TwitterUpdate($options['u'], $options['p'], $options['s'])); function TwitterUpdate($user, $pass, $status){ $request = "POST /statuses/update.xml HTTP/1.0\r\n"; $request .= "Host: twitter.com\r\n"; $request .= "User-Agent: PHP/".phpversion()."\r\n"; $request .= "Authorization: Basic ".base64_encode($user.":".$pass)."\r\n"; $postdata = "status=".urlencode(mb_convert_encoding($status, 'UTF-8', 'SJIS')); $request .= "Content-Type: application/x-www-form-urlencoded\r\n"; $request .= "Content-Length: ".strlen($postdata)."\r\n"; $request .= "\r\n"; $request .= $postdata; $fp = fsockopen('twitter.com', 80, $errno, $errstr, 30); if (!$fp) { die("$errstr ($errno)\n"); } fputs($fp, $request); $response = ""; while (!feof($fp)) { $response .= fgets($fp, 4096); } fclose($fp); return $response; }
って引数のバリデーションを入れただけですが・・・
*** twitter.php.org 2010-08-17 00:38:16.459381900 +0900 --- twitter.php 2010-08-17 00:43:01.699696700 +0900 *************** *** 1,9 **** <?php // php this.php -u user -p pass -s "status" $options = getopt('u:p:s:'); echo(TwitterUpdate($options['u'], $options['p'], $options['s'])); ! ?> ! <?php function TwitterUpdate($user, $pass, $status) { $request = "POST /statuses/update.xml HTTP/1.0\r\n"; --- 1,25 ---- <?php // php this.php -u user -p pass -s "status" $options = getopt('u:p:s:'); + + $errmsg=""; + if (!isset($options["u"]) ) { + $errmsg .= "-u ユーザ名\n"; + } + if (!isset($options["p"]) ) { + $errmsg .= "-p パスワード\n"; + } + if (!isset($options["s"]) ) { + $errmsg .= "-s メッセージ\n"; + } + if(!empty($errmsg)){ + echo "オプションが足りません\n".$errmsg; + exit(1); + } + echo(TwitterUpdate($options['u'], $options['p'], $options['s'])); ! ! function TwitterUpdate($user, $pass, $status) { $request = "POST /statuses/update.xml HTTP/1.0\r\n";