【PHP】質問スレッド Part13

このエントリーをはてなブックマークに追加
807nobodyさん:04/02/01 20:12 ID:h+L5ojru
ZEND.COMって、zendoptimizerインストールされてるの?
zendだから、インストールされていると思うんだけど
おそい・・・
808771:04/02/01 21:08 ID:nBt98kgF
>806
ENVや SERVERとかの定義済み変数は Apacheなどの上位プログラムで
セットされるものなので、qmailでは取れないはず。
やるなら↓のような方法かな。

if( ( $stdin=fopen("php://stdin","r") )==true ){
while( !feof($stdin) ) $maildata.= fgets($stdin,4096);
fclose($stdin);
if( ( $contentlength=strlen($maildata) )>102400 ) exit;
}
809771:04/02/01 21:21 ID:nBt98kgF
>767
RedHat9でqmailをインスコする時には、パッチを当てないと必ず
コンパイルエラーが出るから気をつけて。
他にもqmail、checkpassword、ucspi-tcp、qmail-vida、daemontoolsで
同じエラーが出る(私もちょうどおとといvpopmailインストールしてた)。
詳しい対処法は下のサイトが参考になったYO
ttp://labo.d77.jp/cgi-bin/view.cgi?page=71

がんがってね
810806:04/02/01 21:41 ID:???
>>808
どうもです。自前でバイト数見てexitするようにしますです。
811767:04/02/01 21:51 ID:???
>>809さん
アドバイスありがとうございます。
今はRedHat8を使っているので関係なさそうです。
そういえばRedHat9で終わってFedoraとかいうのになったんでしたっけ…
812nobodyさん:04/02/02 00:12 ID:eK9GFRQq
XML DOMであるDOMツリーAに他のXMLファイルから作ったもう一つのDOMツリーBを
子供として追加したいんですが、Bのルートノードをdocument_element()
で取得してからAの適当なノードにappend_child()すると
Warning: append_child(): Can't append node, which is in a different
document than the parent node
になってしまいます。属しているツリーが違うからだと思うのですが、何か
解決策はないでしょうか。
813nobodyさん:04/02/02 01:02 ID:???
質問させてください。

aというファイルの中身が
baka
aho
tensai
で、bというファイルの中身が
1
2
3
だとして、

$c="2";
$data=file('a');
$data2=file('b');
for($i=0; $i<count($data); $i++)
{
if($data[$i]=$c)
{
$d=$data2[$i];
}
}
echo "$data[i] $d";

とすると、最後の部分がうまく表示されませんでした。
if($data[$i]==$c)にしてもうまく表示されませんでした。
ファイルbの中にある$cと一致する行を調べ(2行目)、
ファイルaの同じ行(2行目)を表示させたいのですが…
814nobodyさん:04/02/02 01:16 ID:???
php_mingって、win98系だと使えなかったりしますか?
815nobodyさん:04/02/02 01:24 ID:???
>>813
もっとよく整理しろ。
$c = "2";
$data1 = file('a');
$data2 = file('b');
for ( $i=0; $i<count($data1); $i++) {
if ( $data2[$i] == $c ) {
echo $d = $data1[$i];
}
}
816nobodyさん:04/02/02 02:43 ID:???
>>815
int型以外の変数の場合も、==で等しいかどうか確かめられるのでしょうか?
=にした場合は、ファイルbの中身すべてが表示され、
==にした場合は、何も表示されないのですが。
>>815さんの方法の場合も同じでした。
817nobodyさん:04/02/02 02:50 ID:???
"="は代入,"=="は比較,"==="は厳密な比較
818nobodyさん:04/02/02 02:57 ID:???
>>817
それならば==にした場合に何も表示されないのはなぜでしょうか。
等しくないのでifの中が実行されていないということでしょうか。
試しに$data2[$i]と$cをechoさせてみたところ、まったく同じ内容だったんですが…
819nobodyさん:04/02/02 03:30 ID:???
>>818
改行が入ってるだろ
820nobodyさん:04/02/02 04:40 ID:???
>>819
最後の改行のことでしょうか。
↑のコードでは最後の改行が表示されているようですが、
前にも書いた通り
> ファイルbの中にある$cと一致する行を調べ(2行目)、
> ファイルaの同じ行(2行目)を表示させたい
ということで、2行目が表示されてほしいのですが、どのようにすればいいでしょうか?
何度もすみません。
821nobodyさん:04/02/02 05:00 ID:???
>>818
ていうか>>813のコードだと一致する最後の行しか表示されないけど良いの?
なんとなくファイルの最後に空行が入っててそれが原因な気がするんだけど。
>>815は$c = 2;にすれば動く。
==は片方がintだともう片方の最初の文字が数字でそれが一致するならなら後ろに
ゴミが付いててもTRUE返す。
if ("2baka" == 2)はTRUE。もちろんif ("2baka" == "2")はFALSEだし
if ("baka2" == 2)もFALSE。

マニュアルのfile()のページに
> 配列に取り込まれた各行は行末文字も含みます。 行末文字を取り除きたい場
> 合にはtrim()を使用する必要があります。
って書いてあるじゃん。文字列で一致させたいならtrim()使え。
if($data[$i]=$c)なんてやったら代入成功するんだからTRUE返った上に
同じ内容になるに決まってるだろ。論外。
822nobodyさん:04/02/02 05:10 ID:???
そもそも
echo "$data[i] $d";
ってなんだよ。
echo "$data[$i] $d";
じゃないのか?
823nobodyさん:04/02/02 05:36 ID:???
もう答えはでそろった。一件落着。
次どうぞ↓
824nobodyさん:04/02/02 06:50 ID:???
>>821
trim関数は知りませんでした。
試してみたのですが、結果は同じでした。

>>822
すみません、打ち間違いです。
825nobodyさん:04/02/02 07:41 ID:???
>>821
trim関数で解決できました。
他にもところどころ間違いがあったようです。
何度も何度もお邪魔してすみませんでした。
826nobodyさん:04/02/02 08:29 ID:bxekPRhp
PHPを使う一番大きいメリットってなんですか?
827nobodyさん:04/02/02 08:59 ID:???
>>826
ID惜しいなぁ。もう少しでPhpだったのに。
828nobodyさん:04/02/02 09:23 ID:???
>>826
開発速度です。WEBに特化してて欲しい関数が最初からあって楽かも。
perlは昔めんどくさくて投げ捨てたけどPHPはラクチンでいい。
829nobodyさん:04/02/02 10:05 ID:???
PostgresQL-7.4 + PHP-4.3.4 使ってます。
テーブル mytable に bytea型の列 photo があります。

$sql = "SELECT photo FROM mytable WHERE id = 1";
$rec = pg_query($conn,$sql);
$row = pg_fetch_row($rec,0);
$image = pg_unescape_bytea($row[0]);
echo $image;

これで、登録されてる画像はとりあえず取り出せたのですが、これをブラウザに画像として表示する方法が分か
りません。そのファイルが jpg形式だと分かってるんですが、この後にどういう処理を追加すればいいですか?
830nobodyさん:04/02/02 11:07 ID:???
>>829
header関数で、コンテンツ タイプを吐けばいい。
831nobodyさん:04/02/02 11:39 ID:???
>>830
ありがとうございます。とりあえずその方法でブラウザ上で表示できた
んですけど、画像じゃなくテキストも混合させたいのです。となると一時
的にファイルを作成するとかしないと無理ですかね?

それならデータベースにしまう意味がなくなってしまいますね(´・ω・`)ショボーン
832nobodyさん:04/02/02 11:52 ID:???
>>831

普通はイメージだけ出力するphpスクリプトを書いて、そのスクリプトをimgタグで指定する。

<img src="imageshow.php?id=1" ... 見たいな感じです。
833nobodyさん:04/02/02 11:59 ID:???
>>832
できました。激しく感謝です。imageshow.php が出力した画像のフォーマットは自動で
判別してくれるんですね(IE と Mozilla)で確認。ありがとん!
834nobodyさん:04/02/02 12:03 ID:???
>>833
自動判別するかどうか試したことないが、httpヘッダで判別させるのが正解だろ。
835nobodyさん:04/02/02 12:14 ID:???
>>834
すいません。httpの仕組みをよく分かってないんですが。この例だと
showImage.php が "Content-Type: image/jpge" を出力すればブラウザ
はそれを解釈してくれるってことですか?

showImage.php の先頭に
header("Content-Type: image/gif");
を追加してみましたが、ブラウザはjpeg画像と解釈して正常に表示され
てしまいます。
836nobodyさん:04/02/02 13:16 ID:???
>>835
typoがあるけど、まぁ、前段は本来そういうこと。後段はブラウザが気を利かせているというか、
画像表示ルーチンが判別しているんでしょうよ。

ま、IEなんかは、plain/text でhtmlソースを出力しても、ソースをそのまま表示せずに
htmlなページを表示しちゃうからな。(Mozillaならhtmlソースを表示)
837nobodyさん:04/02/02 13:20 ID:???
ゴメソ。
× plain/text
○ text/plain
838826:04/02/02 13:33 ID:???
>>828
そんなありきたりな回答は求めていないんですが・・・・
839nobodyさん:04/02/02 14:07 ID:???
>>836
サンクス。とりあえず imageShow.php 側で正しいヘッダー
を出力しておくにこしたことはないですね。今後は気にする
ようにします。
840nobodyさん:04/02/02 15:49 ID:???
>>838
ありきたりなのはそれが一番大きなメリットだからだ、どあほう。
841nobodyさん:04/02/02 15:53 ID:???
>>838
ttp://www.nn.iij4u.or.jp/~nabe/osietekunn.html
の 3. に該当する人だね。
842nobodyさん:04/02/02 17:51 ID:???
>>841
次回からテンプレに入れといて。
843nobodyさん:04/02/02 18:10 ID:???
OK
844nobodyさん:04/02/02 18:24 ID:???
>>843
ありがと。
845nobodyさん:04/02/02 20:49 ID:???
亀レスすまそ。

>>747
> Cookie や GET、Session など、他の方法はいくらでもあるはず。
GETって何ですか?
846nobodyさん:04/02/02 20:56 ID:???
質問させてください。
php.iniファイルをレンタルサーバーの指定の場所にアップしたのですが
php.iniの設定が反映されるのは時間がかかるのでしょうか?
847nobodyさん:04/02/02 21:01 ID:???
鯖缶に聞いた方が良くないか
848nobodyさん:04/02/02 21:07 ID:???
厨な質問ですみません。
CGI版のPHPと普通のPHPでは、なにが異なるのでしょうか?
849nobodyさん:04/02/02 21:30 ID:???
>>846
   〃∩ ∧_∧
   ⊂⌒( ´・ω・)くぜんぶマニュアルに書いてあったでつ
     `ヽ_っ⌒/⌒c

設定ファイル(PHP 3.0では php3.ini、PHP 4.0 では php.ini)は、
PHP の起動時に読み込まれます。
PHPのサーバーモジュール版では、このファイルは、
Webサーバーの起動時に一度だけ読み込まれます。
CGIとCLI版では、起動する度にこのファイルが読み込まれ ます。
850nobodyさん:04/02/02 22:41 ID:???
Windows2000、php5.0.0b3、apacheでXML DOMを使いたいんですが、
domxml_new_doc()等の関数で定義されていないというエラーが出ます。
phpinfo()ではDOM/XMLはenabledとなっています。
どなたか同様の環境でXML DOMを使っている方、セットアップの手順を
教えていただけないでしょうか。

あと、現在php.netにあるマニュアルはphp4のものですが、
php5のマニュアルってあるんでしょうか。ドラフト版でもあれば参考に
なるので読みたいです。
851846:04/02/02 23:34 ID:???
.htaccessでもphpの設定を変えられるみたいなのですが
.htaccessの中身はどう書いたらいいのでしょうか?
852nobodyさん:04/02/03 01:55 ID:???
>>850
ttp://www.php.net/manual/ja/ref.domxml.php
に書いてある方法でいけるんじゃない?ver5はよくわからんけど。後は
ttp://www.geocities.jp/wingdraw/dom/dom2.html
とか参考が参考になるかもしれないけど・・・。

>>851
マニュアル読め
ttp://www.php.net/manual/ja/configuration.changes.php
853nobodyさん:04/02/03 08:59 ID:???
php+mysqlでデータの読み書きやってるんだけど
書き込みのときによく二重投稿になってしまうんですよね。

SQLの中のデータ参照して既に投稿しようとしてるものが入ってれば
もう投稿しない、っていうふうにやろうとしてたんだけど

送信ボタン素早く連打したら、一度目の送信のmySQL書き込み処理終わる前に、
2度目(誤動作)の処理がはじまってしまうみたいで
全然チェック機構として用をなしてません。
(タイミングの問題で・・・)

mySQL使った掲示板とかはどうやって二重投稿防げばいいんでしょうか?
やっぱファイルロックとか使うの?
854nobodyさん:04/02/03 09:13 ID:???
同じくPHP+Mysql使ってるのですが
キーワード検索がまったくうまくいきません
初心者なので四苦八苦しながらいろいろ試してますが
なかなか正確な検索ができないで困ってます。。
検索機能ってこんなものなのでしょうか?
855nobodyさん:04/02/03 09:47 ID:???
>>853
安直だが、unique(IDアドレス,本文) てな感じで制約を掛けてしまうとか。

>>854
書いたSQLを晒せ。
856nobodyさん
>>853
手っ取り早くJavascriptで解決

>>854
文字コードめちゃくちゃ層