.




Notice: Undefined index: showSubcatEntry in /virtual/tohokuaiki/xanhte/app/Xanhte_XeblogEntry.php on line 96
うぇブログ2
最新エントリ
トップ :  PHPメモ : 

« 1 ... 7 8 9 (10)

2004/09/26
カテゴリ : PHPメモ

執筆者: itoh (7:19 pm)
sendmailを使って直接メール送信をしたい。

と思った。理由は、メールを純粋に転送したいため。

PHPでは、mb_send_mailというメールを送るだけならとても便利な関数があるのだが、今回はコレを使うとヘッダ情報が全部吹っ飛んでしまう。まぁ、別に良いと言えば良いのだが、なんかいやだ。


そう思って、「直接systemの/usr/sbin/sendmailをたたいてやればよいのでは?」と思って試行錯誤。

とりえあず、
system("echo ?"{$mailcontent]}?" | /usr/sbin/sendmail -i {$to_addr} ");
などが最初に考えられるので、やってみるがうまくいかない。echo $mailcontentのぶぶんがうまく行かないようで、空のメールが送られる。

sendmailのコマンドの使い方が悪いのかと調べてみたけれど、よくわからない。うーん。困った。

そこへ、たまたま見た、PHP-users-ML:23361で「あぁ。これか」というのをみた。
引用:
$mp = popen("/usr/sbin/sendmail -f $from $to", "w");
fputs($mp, $headers);
fputs($mp, "?r?n");
fputs($mp, "$body");
pclose($mp);



実は、Perlのメール送信フォームでもここなどを読んで、STDIN(標準入力)から受け取る時は、open関数でやっているので、なんとなくこれでいけないかなぁとおもっていたところなので、とてもラッキー。これを使って問題なく完了。


しかし、apacheから呼んだ時に、system("echo hoge > /tmp/aaa.txt")などとした場合には、aaa.txtが/tmpに作成されなかったのだが、標準出力の方向はどこに行ってしまうのだろう?それは不思議だ。
itohさんのブログを読む | コメント (0) | トラックバック数 (0) | 閲覧数 (5473)
2004/09/23
カテゴリ : PHPメモ

執筆者: itoh (2:21 am)
というわけで、性懲りも無く自宅のMacOSXのPHPをimap関数が使えるようにしようと思ったわけで。

で、rootになって
# fink list | grep c-clinet
してみると、
irc-client [virtual package]
uw-imap-c-client 2002d-14 UW IMAP C-Client Library
uw-imap-c-client-ssl 2002d-15 UW IMAP C-Client Library *SSL VERSION*
uw-imap-c-client-ssl1-shlibs 2002d-15 UW IMAP C-Client Library *SSL VERSION*
uw-imap-c-client1-shlibs 2002d-14 UW IMAP C-Client Library
とでる。なんか、古いなーと思っていたら、
# fink install wu-imap-c-client
とやっても、やっぱりinstallできなかったわけで。


しょうがないから、PHPマニュアルページにあるとおりに、c-clientをtar.gzでもってきて仰せの通りにインストール。MacOSXでも、/usr/local/libにlibc-client.aを持ってくるのと、/usr/local/include配下に*.h類を持ってくれば良いのは一緒。
(といっても、手動では成功したこと無かったのだが)


さて、php-4.3.8のソースディレクトリに戻って、おもむろにconfigure

# ./configure --with-gd --with-jpeg-dir=/sw --with-png-dir=/sw --with-tiff-dir=/sr --with-zlib-dir=/usr/local --with-mysql=/usr/local/mysql --with-apxs --with-xml --enable-track-vars --enable-sockets --enable-ftp --enable-mbstring --enable-mbstr-euc-trans --with-config-file-path=/etc --with-imap=/usr/local

ところがエラー。

うーん。
table of contents for archive: /usr/local/lib/libc-client.a is out of date
とかでる。これは、config.log をみると、
引用:
ld: libc-client.a: warning: table of contents for archive is out of date; rerun ranlib(1)

とかでている。

これは、rootで
# ranlib libc-client.a
しなさいと言われているので、素直に従う。

で、再度configure ......

うまくいかない。

今度は相当悩んだ。configureファイルとか読んじゃって。9万行もあるのね。コレ。だいたい、Cなんてわかんないし。


ただ、わかんないにしても、じっとながめていると、(←コレ重要) ・・・・・・・ん〜、なんか、SSL関連で引っかかってるのかなぁ。という気になってきた。

そこで、さっきのconfigureオプションに、
--with-imap-ssl
をつけて再度挑戦。なんで、このconfigureオプションが思いついたかって言うと、それは前回のRedhatでのconfigure時に同じように--with-imapだけでやったら、
--with-imap-ssl --with-kerberos
をつけなさい。 と怒られたことに依る。経験は無駄にはならないんだなぁ。もっとも、ぼんやりとやっていると気がつかないだろうから、それはそれだけど。


さて、、、、、、


おぉ!成功だ!



これで、makeが通らなかったら泣きます。
MacOSX(10.3.4)は--with-keyberosは要らないみたい。
itohさんのブログを読む | コメント (1) | トラックバック数 (0) | 閲覧数 (2727)
2004/09/21
カテゴリ : PHPメモ

執筆者: itoh (4:49 pm)
imap関数ですが。

山本さんによると、imap_search/imap_sortは日本語には(というよりマルチバイトには)対応していないようだ。


で、パッチを用意してもらっているが、PHP4.3.2までで。

うーん。まいったなぁ。
というところであるか。
itohさんのブログを読む | コメント (1) | トラックバック数 (0) | 閲覧数 (2182)
2004/09/17
カテゴリ : PHPメモ

執筆者: itoh (12:58 pm)
imap_fetch_overview

array( $mail_infomation_object)
で返してくれるので、
返り値は、1つしか要素のない配列。
(だったら、オブジェクトで返してくれればいいじゃん)

imap_mime_header_decode
で、subjectを得ようとすると、配列になって帰ってくる。
これは、サブジェクト中に違う文字コードが混じると(というか、ASCIIと非ASCII)subjectが複数行になってしまうための対応だろう。

したがって、得るときもそれを考えないとsubjectが一部分しか得られないと言うことになる。
itohさんのブログを読む | コメント (0) | トラックバック数 (0) | 閲覧数 (2080)
2004/09/17
カテゴリ : PHPメモ

執筆者: itoh (10:58 am)
PHPにIMAPモジュールを組み込みたいと思った。
POP3が喋れるようになるので色々便利。

http://php.s3.to/man/ref.imap.html
を見つつ、c-clientライブラリをmakeして、インストール。
PHPを--with-imapでconfigureして・・・・と思ったら、エラー。

c-clientのrfc822.hが無いと言われる。
--with-imap=/usr/local/include/php
とインストールした場所を指定してconfigure。・・・・エラー。

libc-client.aが無いと言われる。
しかし、ちゃんと/usr/local/libに入っている。
--with-imap=/usr/local/libなどとしてもダメ。rfc822.hが無いって。



うーん。困った。と思い、
http://limu.is.kyushu-u.ac.jp/~yosimoto/memo/webserver.html
を読み、そうだrpmだ。と思い、使ってるのがRedhat 7.2なので、
imap-2000c-15.i386.rpm
imap-devel-2000c-15.i386.rpm
を入れる。で、configure

途中、--with-kerberos --with-imap-sslが無いといわれるので、
./configure --with-imap --with-kerberos --with-imap-ssl
としたら、


おお、configureが通った!!



感動しつつ、makeすると。。。。。

エラー

もう泣きそう。

ふと気が付いて、--with-imap-sslなのに、standardでsslが効いてないのでは?と思い、configureに--with-opensslをつける。


だめ。makeできない。

ふと、config.niceを見ると、(今まで./configureではなく、config.niceに新規オプションを付けてconfigureしていた。)
'./configure' \
'list' \
'--with-imap' \
'--with-kerberos' \
'--with-imap-ssl' \
'--with-openssl' \
'--with-imap' \
'--with-kerberos' \
'--with-imap-ssl' \
'--with-openssl' \
となっている・・・・なんじゃこりゃ?やはり横着はいかんなと、マジメに./configureに人つづつオプションを付ける。


ダメ。もうわからん。


で、手持ちのいろんなRedhatでやってみた。
結果、
Redhat7.3で、PHP-4.3.8に対して、
imap-200*.i386.rpm
imap-devel-200*.i386.rpm
をrpmでインストールして、
./configure --with-apxs --with-jpeg-dir --with-png-dir --with-zlib --with-xml --with-mysql --enable-track-vars --enable-ftp --enable-mbstring --enable-mbstr-euc-trans --with-imap --with-kerberos --with-imap-ssl

したら、make make installできた。なんでだろう?

まぁ、いいか。RedHatの専門家でもないから。
itohさんのブログを読む | コメント (0) | トラックバック数 (0) | 閲覧数 (13718)
2004/09/04
カテゴリ : PHPメモ

執筆者: itoh (2:48 pm)
・global宣言
function内で、global変数を使いたい時に使うが、変数がごちゃごちゃしそうで使ったことが無かった。

これで宣言した変数でglobal化が有効になるのは、「実行ファイルで使っている変数のみ」includeしたfunction内で呼んだのはglobal化されんよね。あたりまえだけど。

そうなると、include_onceが無かった時には結構大変だったような。


・クラスの継承(↓は、多分そう)
PHP4の継承では、スーパークラスのプロパティメンバは継承されないようだ。Javaと違って、継承時に暗黙的にスーパークラスのオブジェクトは作成されないようだ。

だから、スーパークラスのプロパティメンバを呼びたい時には、newで作成しなければ。でも、それってオブジェクト作りすぎるんじゃないですか?
継承クラスの中でつかうスーパークラスのオブジェクトは1つにしたいなぁ。
itohさんのブログを読む | コメント (1) | トラックバック数 (0) | 閲覧数 (1846)
2004/09/01
カテゴリ : PHPメモ

執筆者: itoh (1:58 pm)
array_push($array , $var);
の代わりに、
$array[] = $var;
とすることもできる。

ただし、array_pushは先に$array = array();とかやっておかないと、
parse errorを吐くのだが、$array[] = $varのほうは、何もいわずにハングする。注意。
itohさんのブログを読む | コメント (0) | トラックバック数 (0) | 閲覧数 (2778)
2004/08/29
カテゴリ : PHPメモ

執筆者: itoh (3:39 pm)
MacOSX10.3にデフォルトで入っているPHPは4.3.2で、GDが入っていない。
http://php.liukang.com/manual/ja/install.macosx.php
http://developer.apple.com/internet/opensource/php.html
を参考に、ソースからビルド。

とりあえず、
# fink install gd
# fink install gd2
とするが、--with-gd をつけて ./configureしても通らない。
# fink install libjpeg
# fink install libtiff
# fink install libpng
として、(libpngはなぜかインストールできなかったが)
./configure --with-gd --with-jpeg-dir=/sw --with-tiff-dir=/sw --with-png-dir=/sw
とすると、pngで止まる。pngには、zlibが必要だとのことで、
# tar -vzxf zlib-1.1.4.tar
# cd zlib-1.1.4
# make
# make install
として、インストール。これで--with-zlib-dir=を指定してうまくコンパイルできた。
下記がconfig.nice 。

'./configure'
'--with-gd'
'--with-jpeg-dir=/sw'
'--with-png-dir=/sw'
'--with-tiff-dir=/sw'
'--with-zlib-dir=/usr/local'
'--with-mysql=/usr/local/mysql'
'--with-apxs'
'--with-xml'
'--enable-track-vars'
'--enable-sockets'
'--enable-ftp'
'--enable-mbstring'
'--enable-mbstr-euc-trans'
'--with-config-file-path=/etc'
itohさんのブログを読む | コメント (0) | トラックバック数 (0) | 閲覧数 (2594)

« 1 ... 7 8 9 (10)



 





メインメニュー

カテゴリ一覧

Google Adsense

うぇブログ カレンダー


XoopsCube Ring
Amethyst Blue - BULLETIN


.