WebDAVはいまどきは文字化けをおこさないと思っていたのですが、mod_encodingがないと厳しいようです。ところが、このモジュールのインストール方法についてはいろいろ面倒なようなのが、導入を躊躇してしまう理由です。
「Linux」カテゴリーアーカイブ
ereg.php
PHPで正規表現を使う方法。
# php -f ereg.php
<a href="phpinfo.ps.pdf">phpinfo.ps.pdf</a>
# cat ereg.php
<?php
$fileName = ‘phpinfo.ps.ps’;
$downloadFileName = ereg_replace(‘\.ps$’, ‘.pdf’, $fileName);
$downloadFile = ‘<a href="’ . $downloadFileName . ‘">’ . $downloadFileName . ”;
echo $downloadFile;
?>
date, time (PHP)
PHPプログラムで時刻を扱う場合のサンプルです。time関数とdate関数を使えば大体のことはできそうです。
$ cat time.php
<?php
var_dump(time());
$currentTime=time();
var_dump(date('YmdHis', $currentTime));
var_dump(date('YmdHis'));
?>
ps2pdf
ps2pdfコマンドを使って、PSファイルからPDFファイルを生成するWebアプリケーションをPHPで実装してみました。ファイルアップロード、PDFファイル生成、ダウンロード用リンクの表示、という単純なものですが、結構使えると思います。あとは、3日たったらアップロードされたPSファイル、PDFを削除するcronを走らせておけば完成です。一応、複数名が使う事を想定すると、ログイン名や時刻を使ったりしてファイル名が衝突しないようにする必要がありますが、そのあたりはもう少し時間がとれてから対応しようと思います。PHPは簡単にLinuxコマンドを呼び出せるので、その点では重宝するのですが、フレームワークがなかなかこれ、というのがないので、それなりのWebアプリにするのは、意外と時間がかかるような気が最近はしています。生産性が高いようで低いのではないだろうか、とさえ思ってしまいます。ちなみに、参考にした本は「PHP ポケットリファレンス」です。
サンプルコードをざっとみているだけなので、資料として良いのか悪いのかまでは把握していませんが、インターネット上でバージョンやら環境やらを断片的な資料だけで判断しながら試行錯誤するよりは、速くプログラムができます。PHPはバージョンごとの差や、環境(使用するDBなど)ごとの差が大きいような気がしますから、どれか一冊購入して、その環境で対応するというのが現実的な気がしています。とはいえ、rpmなどで提供されているものを使う場合は、どうしても環境に合わせてコードを用意するしかないので、そのあたりは難しいところです。
ところで、今回はFedora 6 を使ったのですが、SELinux周りで若干はまりました。アクセス権まわりはすぐに忘れてしまっていけません。とりあえず checkpolicy とか setool をインストールして、それらに付属しているコマンドやツールを使って対処しました。日頃から慣れておかないと、実際にSELinuxベースで稼働させているサーバを管理するときに大変だからなのですが、やはり面倒くさいですね、SELinux。毎回、うまくいかないたびに、コマンドを確認して作業をしています。
その際に役に立っているのは、「Fedora7で作るネットワークサーバ構築ガイド」です。Fedora 7 ですが、Fedora系では同じなので、有用です。SELinuxについて、それほど詳しく書いてあるわけではありませんが、運用するにあたって最低限知っておくべき点は押さえられているので、重宝しています。
OOo
最近、OpenOfficeのImpressにかなりお世話になっています。図を描いてばかりいるのですが、PowerPointを購入するほどのお金もないので、OpenOfficeを使っているためです。ギャラリを充実させると結構使えるのですが、商用で購入してある図なども利用できるとずいぶん楽なのですが、マージ方法をきちんと調べていないので、いまだに使いきれていません。まぁ、イラスト専門家ではないので、それほどイラストは必要ではないのですが、たまには素材集とかで購入しておくのがいいのかもしれないなぁ、と思いました。ただ、いろいろなことを考えると、CG用PCを1台用意しておかないと大変なことになりそうだなぁと思っていたりします。フォントとか結構システムリソースへの影響が大きそうだからです。まぁ、なにはともあれ、もうしばらくは図を描いてばかりとなりそうです。
Roller Template
Apache Roller が4.0になっているので、ちょっと使ってみたりしているのですが、あいかわらずテンプレートについては謎の部分というか、使いにくい部分というか、そういうのがあります。まだまだノウハウが蓄積できていないということなのでしょう。
Mail script
メールを出すスクリプト。sendmailコマンドは、postfixのsendmail互換コマンドを使って確認をしました。mailaddressをメールアドレスへ置き換えれば、そこへメールが出せます。
$ smail.sh mailaddress
smail.shは次の通りです。「iconv -t iso-2022-jp」の代わりに 「nkf -j」を使ってもいいです。
——–
#! /bin/sh
PATH=/usr/sbin:/usr/bin:/bin ; export PATH
LANG=ja_JP.utf8 ; export LANG
smail() {
{
cat <<EOD
TO: $1
Subject: Thank you
FROM: hiro345
Hello $1.
メールありがとう
あとで返事するね
EOD
} | iconv -t iso-2022-jp | sendmail -it
}
smail $1
——–
こういうのが簡単にできるあたり、Linuxはやっぱり便利です。大量の同じ内容のメールを出す必要があって、Mewとか使っていれば楽にだせるのですが、最近流行のGUIメーラではそういった処理には弱いので、スクリプトで対応をすることにしてみたわけです。もちろんJavaでもできるのですが、スクリプトの方が断然らくにすぐにできてしまいます。ライブラリ化などが難しいので、何度も使うというのには適しませんが。