[PHP-users 33500] Re: 空メールサービスの自動返信機能プログラム内で mb_convert_encoding が動作しません

SHINICHI OGURI oguri @ fass.co.jp
2008年 4月 29日 (火) 09:28:24 JST


小栗です。
早速のレス有難うございます。

環境の事を書き忘れてました。
サーバーは、cobalt raq4で、
PHP4.1.2
Apache1.3.20
です。

> > 等から、WEBからのPHPの動作と、自動で実行するプロセスに
> > 何か違いがあり、
> > そこで、mb_string関数が使えるか使えないかが関わってい
> > るのだろうか・・?という
> > 気もしています。
>
>はい、その通りでしょう。
>
>WEBからは、module版のPHPが起動して
>自動起動では、cli版のPHPが起動してます。
>
>cli版の参照してるphp.iniが、web版とはちがっている
>のだと想像します。

少し調べて、cli版のphpinfo()を、
-------------
#!/usr/bin/php -q
<?php
phpinfo();
?>
-------------
として、ファイル名をinfo2.cgiにしてパーミッション755で表示すると、
モジュール版とは違う表示が出てきました。
・まず、Configure Command は、これだけでした。
※モジュール版の方はもっとたくさん書かれていました。
'./configure' '--disable-apxs' '--with-config-file-path=/etc/httpd'

まあ、これでmb_stringはつかえなさそうと。。。

・サーバーでfindコマンドで検索すると、2つ出てきます。
/etc/httpd/php.ini
/etc/admserv/php.ini

後者の方がcli版と思ったら、どうも同じものを見ているようです。
/etc/httpd/php.ini

cli版のPHPの方では、おそらくconfigureでmysqlとmb_stringが入っていないために
エラーが表示されます。
PHP Warning: Unable to load dynamic library '/usr/lib/apache/php/mysql.so' 
- /usr/lib/apache/php/mysql.so: cannot open shared object file: No such 
file or directory in Unknown on line 0
PHP Warning: Unable to load dynamic library 
'/usr/lib/apache/php/php_mbstring.dll' - 
/usr/lib/apache/php/php_mbstring.dll: cannot open shared object file: No 
such file or directory in Unknown on line 0 X-Powered-By: PHP/4.1.2 
Content-type: text/html

やりたいことは単純なのですが、
「メール受信起動で動くプログラムの中で、ファイルから取得した件名と本文をSJIS 
からJISに変換して送信したい」
のです。
・cli版でmb_stringを使えるようにする。
・自動起動PGで、モジュール版を動かす。
・mb_string以外の方法で、文字列のコード変換を行う

等など、有効(一番簡単)な方法はありますでしょうか?

>手っ取り早いのでは、phpinfo()の結果を、メールするといい
>でしょう。
>英文なので文字化けとは無縁ですから。

どういう風にすればいいかよくわからなかっったので、
結局cli版のphpinfo()を見るのに上記の方法をとりましたが。。

本題とは少しずれますが、後学の為(?)にできたら教えて頂けますでしょうか?
・単純に、自動起動PGの中で本文にphpinfo()の結果を入れてメールを送ろうと思い、
$honbun = phpinfo();
等と書いて動かしてみましたが。。。本文は「1」と言うだけのメールが届きまし 
た。。(残念!w)

以上です。長くなってすみませんでした。

SHINICHI OGURI





PHP-users メーリングリストの案内