PukiWiki/Install/xrea.com/kakasiを使う
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*XREAでkakasiを使う [#q834ff2b]
**Perl版Chasen/KAKASIの利用法 [#i6b6ae8c]
~kakasi.cgi
#!/usr/local/bin/perl
use Text::Kakasi;
Text::Kakasi::getopt_argv('kakasi', '-kK', '-HK', '-JK');
@kata = ();
# PageReadingファイルパス指定
$fname = '/virtual/ACCOUNT ID/public_html/pukiwiki/cache...
open(IN, $fname);
while (<IN>) {
push(@kata, Text::Kakasi::do_kakasi($_));
}
close(IN);
Text::Kakasi::close_kanwadict();
open(OUT, "> $fname");
foreach $i (@kata) {
print OUT "$i";
}
close(OUT);
print "Content-Type: text/html\n\n";
exit;
~pukiwiki.ini.php
$pagereading_kakasi_path = '/cgi-bin/kakasi.cgid'; // UR...
~file.phpの604行目case 'kakashi'からcase 'none'までの間を...
case 'kakashi':
$tmpfname = CACHE_DIR . 'PageReading'; // PageReadingに...
$fp = fopen($tmpfname, "w") or
die_message("Cannot write temporary file '$tmpfname'.\...
foreach ($readings as $page => $reading) {
if($reading == '') {
fputs($fp, mb_convert_encoding("$page\n", $pagereadin...
}
}
fclose($fp);
chmod($tmpfname, 0666);
virtual($pagereading_kakasi_path);
$fp = fopen($tmpfname, "r");
foreach ($readings as $page => $reading) {
if($reading == '') {
$line = fgets($fp);
$line = mb_convert_encoding($line, SOURCE_ENCODING, $...
$line = chop($line);
$readings[$page] = $line;
}
}
fclose($fp);
unlink($tmpfname) or die_message("Temporary file can no...
break;
case 'none':
-XREAでChasenが使えるらしいのですが、うちで試してみてもNo...
--XREAでは、perlのモジュールで呼び出さないと行けないので...
-[[PukiWiki/Namazu]]に書いてあるようなことはできませんか...
-http://sb.xrea.com/showthread.php?t=8557を見ると、/usr/l...
--どうも無理みたい。cgiからでないと読みが正しく出てこない...
**質問箱から移動したもの [#uddffc45]
[XREA] Perl版Chasen/KAKASIの利用法
***質問 [#w3bc2456]
表題の通り、私がPukiwikiを使ってるXREAではPerlでChasen/KA...
そこで、こいつを使いたいのですが単純にpukiwiki.ini.phpで...
Perl版を使うには何か別の設定が必要なのでしょうか?
***回答 [#q08bab9e]
-Perlスクリプトが必要かと。次のようなスクリプトがシェルで...
use Text::Kakasi;
Text::Kakasi::getopt_argv('kakasi', '-kK', '-HK', '-JK');
print Text::Kakasi::do_kakasi('日本語の文章');
Text::Kakasi::close_kanwadict();
-実行方法も書いたほうがよかったですね。上記を例えばkatest...
-残念ながらシェル上でのperlの実行が制限されているようです...
-では名前をkatest.cgiとし、ファイル先頭に#!/usr/local/bin...
-その通りやってみると、きちんと「ニホンゴノブンショウ」と...
-おぉ。では次のようにすれば動くのかな。 -- [[さばぞう]] &...
~kakasi.cgi
#!/usr/local/bin/perl
use Text::Kakasi;
Text::Kakasi::getopt_argv('kakasi', '-kK', '-HK', '-JK');
while (<>) {
print Text::Kakasi::do_kakasi($_);
}
Text::Kakasi::close_kanwadict();
~pukiwiki.ini.php
$pagereading_enable = 1;
$pagereading_kanji2kana_converter = 'kakasi';
$pagereading_kakasi_path = 'kakasi.cgi'; // 絶対パスが...
~lib/file.php 402行あたり
$kakasi = "$pagereading_kakasi_path < $tmpfname";
-動い・・・たようなんですが、肝心の漢字が全て「記号」とし...
-- それは 単にエラーになっておらず、ブランクが帰って来て...
-それでは 動きません。XREAのPHPは、SAFE MODEですので、pop...
safe_mode On
safe_mode_exec_dir /usr/local/php/bin
safe_mode_gid Off
http://jp.php.net/manual/ja/features.safe-mode.functions....
//http://php.s3.to/man/features.safe-mode.functions.html
--virtual で perl script 動かして POST/GET でやり取りする...
-CGI版でインストールすると言う手を使うのがいいのかな? -- ...
-むぅ残念。結構な改造が必要そうですね。 -- [[さばぞう]] &...
-やはり簡単にはいきませんですか。 -- [[Lick]] &new{2004-1...
-cgi としてInstall すれば safe mode でないので使えますね ...
-一応、virtual版も作ってみました。ローカルマシンのWindows...
~kakasi.cgi
#!/usr/local/bin/perl
use Text::Kakasi;
Text::Kakasi::getopt_argv('kakasi', '-kK', '-HK', '-JK');
@kata = ();
# PageReadingファイルパス指定
$fname = '../htdocs/pukiwiki/cache/PageReading'; # XREA...
open(IN, $fname);
while (<IN>) {
push(@kata, Text::Kakasi::do_kakasi($_));
}
close(IN);
Text::Kakasi::close_kanwadict();
open(OUT, "> $fname");
foreach $i (@kata) {
print OUT "$i";
}
close(OUT);
print "Content-Type: text/html\n\n";
exit;
~pukiwiki.ini.php
$pagereading_kakasi_path = '/cgi-bin/kakasi.cgi'; // URL...
~file.phpの388行目case 'kakashi'からcase 'none'までの間を...
case 'kakashi':
$tmpfname = CACHE_DIR . 'PageReading'; // PageReadingに...
$fp = fopen($tmpfname, "w") or
die_message("Cannot write temporary file '$tmpfname'.\...
foreach ($readings as $page => $reading) {
if($reading == '') {
fputs($fp, mb_convert_encoding("$page\n", $pagereadin...
}
}
fclose($fp);
virtual($pagereading_kakasi_path);
$fp = fopen($tmpfname, "r");
foreach ($readings as $page => $reading) {
if($reading == '') {
$line = fgets($fp);
$line = mb_convert_encoding($line, SOURCE_ENCODING, $...
$line = chop($line);
$readings[$page] = $line;
}
}
fclose($fp);
unlink($tmpfname) or die_message("Temporary file can no...
break;
case 'none':
--%%をぉ、試してみたら動作しました(cgiからcgidに変更はし...
-そっかぁ tempファイル作ってやりとり. あと PageReadingフ...
-順調に稼働しているように見えましたが、ページが追加される...
-いろいろと試してみた結果、どうやらPageReadingを作成する...
ので、file.phpの~
unlink($tmpfname) or die_message("Temporary file can not...
の部分を削除すればいいのでしょうか。 -- [[Lick]] &new{200...
--それだとキャッシュがクリアされないからどんどんファイル...
-file.phpの最初のfcloseの後ろに次を追加してください。 -- ...
fclose($fp);
+chmod($tmpfname, 0666);
virtual($pagereading_kakasi_path);
-http://melfina.org/archives/2004/11/04_1256.html に書か...
//#comment
終了行:
*XREAでkakasiを使う [#q834ff2b]
**Perl版Chasen/KAKASIの利用法 [#i6b6ae8c]
~kakasi.cgi
#!/usr/local/bin/perl
use Text::Kakasi;
Text::Kakasi::getopt_argv('kakasi', '-kK', '-HK', '-JK');
@kata = ();
# PageReadingファイルパス指定
$fname = '/virtual/ACCOUNT ID/public_html/pukiwiki/cache...
open(IN, $fname);
while (<IN>) {
push(@kata, Text::Kakasi::do_kakasi($_));
}
close(IN);
Text::Kakasi::close_kanwadict();
open(OUT, "> $fname");
foreach $i (@kata) {
print OUT "$i";
}
close(OUT);
print "Content-Type: text/html\n\n";
exit;
~pukiwiki.ini.php
$pagereading_kakasi_path = '/cgi-bin/kakasi.cgid'; // UR...
~file.phpの604行目case 'kakashi'からcase 'none'までの間を...
case 'kakashi':
$tmpfname = CACHE_DIR . 'PageReading'; // PageReadingに...
$fp = fopen($tmpfname, "w") or
die_message("Cannot write temporary file '$tmpfname'.\...
foreach ($readings as $page => $reading) {
if($reading == '') {
fputs($fp, mb_convert_encoding("$page\n", $pagereadin...
}
}
fclose($fp);
chmod($tmpfname, 0666);
virtual($pagereading_kakasi_path);
$fp = fopen($tmpfname, "r");
foreach ($readings as $page => $reading) {
if($reading == '') {
$line = fgets($fp);
$line = mb_convert_encoding($line, SOURCE_ENCODING, $...
$line = chop($line);
$readings[$page] = $line;
}
}
fclose($fp);
unlink($tmpfname) or die_message("Temporary file can no...
break;
case 'none':
-XREAでChasenが使えるらしいのですが、うちで試してみてもNo...
--XREAでは、perlのモジュールで呼び出さないと行けないので...
-[[PukiWiki/Namazu]]に書いてあるようなことはできませんか...
-http://sb.xrea.com/showthread.php?t=8557を見ると、/usr/l...
--どうも無理みたい。cgiからでないと読みが正しく出てこない...
**質問箱から移動したもの [#uddffc45]
[XREA] Perl版Chasen/KAKASIの利用法
***質問 [#w3bc2456]
表題の通り、私がPukiwikiを使ってるXREAではPerlでChasen/KA...
そこで、こいつを使いたいのですが単純にpukiwiki.ini.phpで...
Perl版を使うには何か別の設定が必要なのでしょうか?
***回答 [#q08bab9e]
-Perlスクリプトが必要かと。次のようなスクリプトがシェルで...
use Text::Kakasi;
Text::Kakasi::getopt_argv('kakasi', '-kK', '-HK', '-JK');
print Text::Kakasi::do_kakasi('日本語の文章');
Text::Kakasi::close_kanwadict();
-実行方法も書いたほうがよかったですね。上記を例えばkatest...
-残念ながらシェル上でのperlの実行が制限されているようです...
-では名前をkatest.cgiとし、ファイル先頭に#!/usr/local/bin...
-その通りやってみると、きちんと「ニホンゴノブンショウ」と...
-おぉ。では次のようにすれば動くのかな。 -- [[さばぞう]] &...
~kakasi.cgi
#!/usr/local/bin/perl
use Text::Kakasi;
Text::Kakasi::getopt_argv('kakasi', '-kK', '-HK', '-JK');
while (<>) {
print Text::Kakasi::do_kakasi($_);
}
Text::Kakasi::close_kanwadict();
~pukiwiki.ini.php
$pagereading_enable = 1;
$pagereading_kanji2kana_converter = 'kakasi';
$pagereading_kakasi_path = 'kakasi.cgi'; // 絶対パスが...
~lib/file.php 402行あたり
$kakasi = "$pagereading_kakasi_path < $tmpfname";
-動い・・・たようなんですが、肝心の漢字が全て「記号」とし...
-- それは 単にエラーになっておらず、ブランクが帰って来て...
-それでは 動きません。XREAのPHPは、SAFE MODEですので、pop...
safe_mode On
safe_mode_exec_dir /usr/local/php/bin
safe_mode_gid Off
http://jp.php.net/manual/ja/features.safe-mode.functions....
//http://php.s3.to/man/features.safe-mode.functions.html
--virtual で perl script 動かして POST/GET でやり取りする...
-CGI版でインストールすると言う手を使うのがいいのかな? -- ...
-むぅ残念。結構な改造が必要そうですね。 -- [[さばぞう]] &...
-やはり簡単にはいきませんですか。 -- [[Lick]] &new{2004-1...
-cgi としてInstall すれば safe mode でないので使えますね ...
-一応、virtual版も作ってみました。ローカルマシンのWindows...
~kakasi.cgi
#!/usr/local/bin/perl
use Text::Kakasi;
Text::Kakasi::getopt_argv('kakasi', '-kK', '-HK', '-JK');
@kata = ();
# PageReadingファイルパス指定
$fname = '../htdocs/pukiwiki/cache/PageReading'; # XREA...
open(IN, $fname);
while (<IN>) {
push(@kata, Text::Kakasi::do_kakasi($_));
}
close(IN);
Text::Kakasi::close_kanwadict();
open(OUT, "> $fname");
foreach $i (@kata) {
print OUT "$i";
}
close(OUT);
print "Content-Type: text/html\n\n";
exit;
~pukiwiki.ini.php
$pagereading_kakasi_path = '/cgi-bin/kakasi.cgi'; // URL...
~file.phpの388行目case 'kakashi'からcase 'none'までの間を...
case 'kakashi':
$tmpfname = CACHE_DIR . 'PageReading'; // PageReadingに...
$fp = fopen($tmpfname, "w") or
die_message("Cannot write temporary file '$tmpfname'.\...
foreach ($readings as $page => $reading) {
if($reading == '') {
fputs($fp, mb_convert_encoding("$page\n", $pagereadin...
}
}
fclose($fp);
virtual($pagereading_kakasi_path);
$fp = fopen($tmpfname, "r");
foreach ($readings as $page => $reading) {
if($reading == '') {
$line = fgets($fp);
$line = mb_convert_encoding($line, SOURCE_ENCODING, $...
$line = chop($line);
$readings[$page] = $line;
}
}
fclose($fp);
unlink($tmpfname) or die_message("Temporary file can no...
break;
case 'none':
--%%をぉ、試してみたら動作しました(cgiからcgidに変更はし...
-そっかぁ tempファイル作ってやりとり. あと PageReadingフ...
-順調に稼働しているように見えましたが、ページが追加される...
-いろいろと試してみた結果、どうやらPageReadingを作成する...
ので、file.phpの~
unlink($tmpfname) or die_message("Temporary file can not...
の部分を削除すればいいのでしょうか。 -- [[Lick]] &new{200...
--それだとキャッシュがクリアされないからどんどんファイル...
-file.phpの最初のfcloseの後ろに次を追加してください。 -- ...
fclose($fp);
+chmod($tmpfname, 0666);
virtual($pagereading_kakasi_path);
-http://melfina.org/archives/2004/11/04_1256.html に書か...
//#comment
ページ名: