kurukuru-papaのブログ

主に、ソフトウェア開発に関連したメモを書き溜めたいと思います。

バッチファイルやrubyで記述したPukiwikiプラグイン

Pukiwikiプラグインを自作するとき、PHPの知識が必要になりますが、私はほとんど知りません。私の知っているJavaRubyでプラグインを作成できると便利なのに・・・、と思って調査してみました。

PHPをまったく使わないプラグインを作成することは出来なさそうです。そのため、次のような方法になりそうです。

1.自由な言語で目的の処理をするファイルを用意する
2.PHPにて上記1を実行するだけのプラグインを作成する

バッチファイルによるPukiwikiプラグイン

pukiwikiホームディレクトリ\plugin\test20090409a.inc.php

<?php
function plugin_test20090409a_convert()
{
	$output = shell_exec('plugin\test20090409a.bat');
	$output = htmlspecialchars($output);
	$output = str_replace(array("\r\n", "\n", "\r"), "\n", $output);
	return '<pre>' . mb_convert_encoding($output, "EUC-JP", "SJIS") . '</pre>';
}
?>

pukiwikiホームディレクトリ\plugin\test20090409a.bat

echo "test20090409a.bat Start"
echo "test20090409a.bat End"

Ruby言語によるPukiwikiプラグイン

pukiwikiホームディレクトリ\plugin\test20090409b.inc.php

<?php
function plugin_test20090409b_convert()
{
	// 拡張子rbがrubyコマンドに関連付けられている場合
	//$output = shell_exec('plugin\test20090409b.rb');
	// rubyコマンドを指定して実行する場合
	$output = shell_exec('"C:\Program Files\ruby-1.8\bin\ruby.exe" plugin\test20090409b.rb');
	$output = htmlspecialchars($output);
	$output = str_replace(array("\r\n", "\n", "\r"), "\n", $output);
	return '<pre>' . mb_convert_encoding($output, "EUC-JP", "SJIS") . '</pre>';
}
?>

pukiwikiホームディレクトリ\plugin\test20090409b.rb

#! ruby
p "test20090409b.rb Start"
p "test20090409b.rb End"

動作環境