ALPSLAB routeをwikiに貼り付ける

http://route.alpslab.jp/で地図上に簡単にルートを作り、共有することが出来るサービスが始まりました。
とりあえず地元のとあるルートを作ってみました。
http://route.alpslab.jp/watch.rb?id=d5a2305d295b4b1d965682a9ec069eeb


このルートをブログ等に貼り付けることも出来るそうです。
これがかなり面白いので、wikiにも貼り付けたいなと。
俺が所属していたサークルで最近wikiを使うようになったので、そこに貼り付けるようなpluginを作ってみました。Pukiwiki用のpluginです。


サンプル


ソースコードは以下においておきます。



alpsroute.inc.php

<?php
/*
 *  ALPSLAB route Plugin for Pukiwiki
 *
 *  改造・再配布等は自由です
 *  2006/11/03 kappe
 *  http://d.hatena.ne.jp/kappe1982/
 *
 *  Usage:書式 
 *  #alpsroute(route id, [align])
 *    引数     : 意味     : デフォルト
 *    route id : ルートID : 必須
 *    align    : 配置     : left
 *
 */
//*****   定数 ****************
//
//          デフォルト設定
//          原則として変更の必要は無い
//
define("DEFWIDTH",  320);          // 幅
define("DEFHEIGHT",  240);         // 高さ
define("DEFSRC",  "http://route.alpslab.jp/fslide.swf");   // フラッシュのURL
define("DEFAPPLICATION", "application/x-shockwave-flash"); // アプリケーションタイプ
define("DEFALIGN", "left");        // alignの指定



//**************************
//
//    インライン
function plugin_alpsroute_inline()
{
  $args = func_get_args();
  array_pop($args);  // インラインの場合引数の数+1になる
  array_push($args,"inline");
  return call_user_func_array('plugin_alpsroute_convert', $args);
}
//****************************
//
//    コンバート
//
//
function plugin_alpsroute_convert()
{
  $argc = func_num_args();

  if ($argc < 1) {
    return FALSE;
  }
  
  $argv = func_get_args();
  if($argv[$argc-1] == "inline") {
    $binline = 1;
    array_pop($argv);
  }
  $id = htmlentities($argv[0], ENT_QUOTES);

  // パラメータ
  $width = DEFWIDTH;
  $height = DEFHEIGHT;
  $url = DEFSRC;
  $apptype = DEFAPPLICATION;
  $align = DEFALIGN;
  
  if ($argc > 1)  $align = preg_replace('[\s]', '', htmlentities($argv[1], ENT_QUOTES));
  
  // 出力タグ
  $rt = <<<EOD
  <object width="$width" height="$height">
    <param name="movie" value="$url" />
    <param name="flashvars" value="routeid=$id" />
    <embed src="$url" width="$width" height="$height" type="$apptype" flashvars="routeid=$id" />
  </object>
EOD;

  if ($binline==1)
    return "$rt";   // インライン出力
  else
    return "<div align='$align'>$rt</div>";  // ブロック出力    divで括る

}
?>


どうにも正規表現が苦手です。ちゃんと勉強しないと。