【PHP】質問スレッドpart23【php】

このエントリーをはてなブックマークに追加
105nobodyさん
PHPからSQL Serverに接続したいのですが、接続がうまくいかず困っています。
SQL Server(データベース)自体は自家サーバー上に設置してあり、このデータベースに
レンタルサーバー上にあるPHPページから接続してデータを処理したいのですが、
そもそもこれは可能でしょうか?

PHPマニュアルのサンプルコードを参考に
$conn=odbc_connect("DRIVER=SQL Server;SERVER=".$ser.";UID=".$user.";PWD=".$pass.";
DATABASE=".$db.";Address=".$ser.",1433","","");

という感じで接続を試みているのですが、

「S1090 文字列またはバッファの長さが無効です」というODBCエラーが出ます。
このエラーの意味するところがまた良くわからず閉口してます。

ちなみに自家サーバー上に実際に接続を行うPHPページを置いた場合は接続がうまくいきました。

今までACCESSのmdbファイルにodbc_connect()で直接接続していたのですが、
今回MS SQL Server経由で接続することになったため、そのままなんとかodbc_connect()で
接続しようとしてるんですが、mssql_connect()に切り替えれば済む話なのでしょうか?

どなたかお助け下さい!

106nobodyさん:04/10/07 19:24:41 ID:???
>>105
そのまんまじゃ先ず無理。
レンタルサーバ屋に設定してもらう必要があるが、
そこまで顧客の要望を受け入れるクラスのサービスを借りてるの?
107nobodyさん:04/10/07 19:34:54 ID:Q6Hyz1ya
>>106
書き込みありがとうございます。
レンタルサーバー会社にその辺の問い合わせをしてみます。
ちなみに通常、サーバー会社にはどういうことを設定してもらう必要があるんでしょうか??
SQL Serverをインストールしてもらう、とかでしょうか???

108nobodyさん:04/10/07 20:03:39 ID:???
>>107
?Windowsのサーバなの、借りてるのは。

サーバ屋にも、借りてるサービスの内容にもよる。
細かく設定について依頼をしないと駄目な場合と、
借りてるサーバで動いてるPHPから自宅のMS SQL-Serverに
ODBCで繋げたいから、そっち側の基本的な設定やってくれで済む場合もある。
インターネットを経由したリモートのDBMSから情報を引き出すって、
結構高度というかそれなりに必要があってやることだけど
PHPの動いてるWebサーバとDBMS間の通信のセキュリティとか考慮してる?
ただ今借りてるところでMS SQL-Serverが使えないって理由だけなら
使えるようにセットになったWindowsサーバのサービスを借り直した方が良いよ。
109108:04/10/07 20:10:19 ID:???
回線の太さや契約条件、その他諸所の条件に合うのなら、
簡単なのは自宅の方にWebサーバを立ててしまうことだ。
外のコンテンツから必要に応じて取り込んでもいいし、
全部自宅から出力してもよい。
110nobodyさん:04/10/07 20:34:52 ID:Q6Hyz1ya
>>107
>>108
レスありがとうございました!

セキュリティに関しても気にはなっていたのですが、
108さんのおっしゃるように自家サーバーにデータベースに接続するページだけを
置いてレンタルサーバー上の他のページからリンクするようにすれば、
WEBサーバーとDBMS間の通信のセキュリティはとりあえず大丈夫!
ということでしょうか?

いろいろ聞いてすみません。はっきり言ってド素人なもので。。。

111nobodyさん:04/10/07 20:36:04 ID:Q6Hyz1ya

108、109さん宛の間違いでした。
112nobodyさん:04/10/07 20:49:09 ID:???
ド素人なら素直にDB使えるサーバに移るべし。
113nobodyさん:04/10/07 20:59:45 ID:kpmAjhNu
殺人事件続報
http://tatsume.net/123456/
114nobodyさん:04/10/07 21:07:21 ID:???
>>105
問題は自宅側だろ?
自宅のMS SQL-ServerはちゃんとODBCの外部接続はできるように
してあるんだろうな?
115nobodyさん:04/10/07 21:25:53 ID:???
>>110
単純に繋ぐとそれもダダもれなんで、自己認証でもいいからHTTPSで喋る
ようにするとか工夫しないと充分とは言えないと思う。
最もセキュリティは扱う情報のレベルの応じて考えるものなんで、
そんなことは不要かもしれないし、そもそもWebサーバから
読めるようにしてはいけないのかも知れない。

ド素人だったら全部込みでセキュリティ関係の設定も
考慮されてるサービス選ぶのが最適解だと思うよ。
共有サーバなんて危なくて使えネェぐらいと言えるぐらいの
知識を付けた賢い客になるべきで、賢い技術者になる必要はない。
116nobodyさん:04/10/07 21:45:38 ID:eGrZpUzk
PHPで文字列を括る場合「"」と「'」どちらで統一するのがいいですかね?
やっぱC言語風に「"」ですか?
117nobodyさん:04/10/07 21:48:36 ID:???
>>116 ケースバイケース、どうしても「統一」したいなら半島へ逝け。
118nobodyさん:04/10/07 21:52:17 ID:???
>>115
>そんなことは不要かもしれないし、そもそもWebサーバから
>読めるようにしてはいけないのかも知れない。

そんなんじゃ、Webアプリの価値なんてなくなるよ。
必要なら、Webサーバ-DBサーバ間を暗号化すればいいじゃない。
まあ、セキュリティのみに関して言えば、共用サーバという時点で
論外だけどな。
119nobodyさん:04/10/07 21:55:24 ID:???
>>116
もしその違いがわからないとしたら致命的。
プログラマすら名乗れない。
120nobodyさん:04/10/07 22:13:38 ID:???
>>118
いや、Webアプリの価値は開発から運用まで巷のツールなどが利用できること。
そこで言いたいのは、VPNとかの採用を考慮すべきで情報の内容ではないのかってこと。
121nobodyさん:04/10/07 22:45:14 ID:???
>>116
まぁ、マニュアルでも読めや
122nobodyさん:04/10/07 23:09:19 ID:YIBUt39D
>>118
>必要なら、Webサーバ-DBサーバ間を暗号化すればいいじゃない。

話が高次元になったところですみませんが、この暗号化は実際にはどうすればできますか?
PHPの関数でcryptみたいなものを使うのでしょうか?

サーバーを適切なところに変えるのが一番安全なのかもしれませんが、
理由あって変えないで済むならなんとか方法を探したいと思っており。。。
12398:04/10/07 23:40:46 ID:???
>>104
レスありがとうございました
【php パーサ バックスラッシュ エスケープ】でぐぐったら
http://php.s3.to/man/ref.info.html
がかかりました。
DB側でなくphp側でエスケープ処理がかかってたんですね。
で、
phpinfoのmagic_quotes_gpc,magic_quotes_runtime,magic_quotes_sybase
はLocal、Masterとも全部Offになっていましたが
それでもエスケープしてしまうものでしょうか?
マニュアルはOnの時にエスケープ処理が入るとありましたが
他にも関係する設定箇所があるのでしょうか?
124nobodyさん:04/10/07 23:43:17 ID:???
>>117
その使い分け方を教えてくれませんか?
125nobodyさん:04/10/07 23:49:48 ID:???
>>124
マニュアルくらい読めよ

オレは「統一」なんて大それた事はできないけどな。
12698:04/10/07 23:50:15 ID:???
>>124
シングルだと変数が展開されなかった気がします。
127nobodyさん:04/10/07 23:57:13 ID:???
128118:04/10/08 00:03:08 ID:???
>>120
>105がどういう内容のアプリを作ってるのか知らんから適当に言うが、
VPNは外部公開せずに拠点間をネットワークで繋ぐエクストラネットだろ?
今回はそういう話じゃないと思うんだがな。
VPNの導入だってめんどくさいし。freeのでなけりゃコストもかかるし。

>>122
phpの関数レベルじゃできないと思うよ。
OpenSSL、OpenSSHのSSHポートフォワーディングでいけるが、
共用サーバなので、root権限を使った設定は無理だろうな・・・。
ということで、どこまでのセキュリティを確保したいかで、
変わってくるけど、その共有サーバでは無理かもよ?
129nobodyさん:04/10/08 00:17:17 ID:???
マニュアル嫁=日本語がふじゅうな人

本当に理解してないから、すぐ言えないんだよね
感覚でしか覚えてないから。
130nobodyさん:04/10/08 00:30:25 ID:???
>>124
>>126が正解だけど、使い分けに関しては慣れだね。
俺の場合は連想配列のキーや文字列リテラルは「'」で
シーケルは「"」で括るのが個人的に見やすいと思ってそうしている。
もちろん、改行・インデント・コメントの三大マナーをきっちりやった上でね。
131nobodyさん:04/10/08 00:53:26 ID:???
PHP初心者スレ誰か立ててくれ、
>>129みたいなウザキモ甘ったれ粘着厨
 でも相手してやれるような。
132nobodyさん:04/10/08 00:57:34 ID:???
マニュアル読めなんて極めて親切な回答じゃん。

マニュアルも読めないほど日本語不自由な人は別としても。
133nobodyさん:04/10/08 01:04:06 ID:???
のびた「宿題教えて」

パパ「百科事典嫁」

↑ドラえもんでのネタ
134nobodyさん:04/10/08 01:12:58 ID:???
>>131
痛いところを突かれたからって、いちいちレスするな。見苦しい。
熟練者ならどんな些細な質問にも初心者が一番理解しやすい方法で回答できる。
135nobodyさん:04/10/08 01:13:57 ID:???
一気にネタ臭くなった
136nobodyさん:04/10/08 01:15:57 ID:???
さらに、君が些細な質問にすら簡潔な回答ができないとすると、
それは君が実装方法を丸暗記しているだけで概念も含めた総論として
その解決方法を理解できていないからではないかね?
137nobodyさん:04/10/08 01:18:56 ID:???
各種MLを拝見していると常に感じることだが、
この世界には>>136で挙げたような「なんちゃって習得者」がいかに多いことか。
いいかげんPGはコーディングできる技能を"特別な技能"だとする思い上がりを捨てるべきだ。
138nobodyさん:04/10/08 01:20:10 ID:h9hTVebP
つーかさ、トリップつけてくんない?
139nobodyさん:04/10/08 01:20:57 ID:???
自分でいうのも何だが、PG・SEなんてものは事務員に毛が生えた程度の職業だと思う。
少なくとも俺は自分のことを"エンジニア"とは称さない。
140nobodyさん:04/10/08 01:23:57 ID:???
まあ理系の就職相談の指導者が生徒に将来なるなとまず言う職業は
SEだからね。
141nobodyさん:04/10/08 02:20:58 ID:???
>137
それは同意だが、マニュアル嫁はとても良い回答だと思うよ。
俺は家電のマニュアルもちゃんと読む。、
142nobodyさん:04/10/08 03:12:11 ID:Gf9YwG4z
phpのコーディングをしてるときは「完璧なインデント!」と思うが、
いざ出力されたhtmlを見るとげんなりする。
みなさんどうしてますか?
143nobodyさん:04/10/08 03:14:19 ID:???
意味わかんね
HTMLのインデント?
144nobodyさん:04/10/08 03:22:19 ID:???
出力されたhtmlのソースのインデント。
145142:04/10/08 03:22:43 ID:???
↑142です
146nobodyさん:04/10/08 03:23:16 ID:???
インデントするようにコーディングすればいいじゃん。
147142:04/10/08 03:26:59 ID:???
…それだとphpのコーディング時に読みづらくないですか?
148nobodyさん:04/10/08 03:33:34 ID:???
根本的に>>142は勘違いしてる気がする
149nobodyさん:04/10/08 03:35:38 ID:???
>>142
出力されるhtml(と解釈されるテキスト)には、
インデントはおろか改行すら入れないようにしている。
どうせデバッグの時しか見ない、転送量の削減等の理由で

よく動的に生成されるページでコメントとか入っているのがあるが
あれはデザイナ向けか?
150nobodyさん:04/10/08 03:36:20 ID:???
そもそも、どういう書き方してるんだよ。
151142:04/10/08 03:38:21 ID:???
!!
デバッグ終わったら整形してうpすりゃいいってことか。
何もそのまま使うことはないのか…おれの馬鹿
152nobodyさん:04/10/08 03:51:51 ID:???
日本語の検索で詰ってる
調べてみたらmb_を使えばいいと出てるが、
設定しなきゃいけないらしい

指示通り設定したら、こんどは何か足りないと注意された。
分かりにくすぎだろ〜これ・・・・
153nobodyさん:04/10/08 03:53:40 ID:???
いや、く全国100万人のPHPデベロッパーは
ちゃんと設定できてるよ
154nobodyさん:04/10/08 03:58:39 ID:???
さすがに馬鹿のたまり場になったのでスレを分けよう。
質問スレが隔離効果を狙って立てられているのは知っているつもりだが、
ごく普通のPHPの疑問を解決するスレが欲しいユーザはきっと漏れだけじゃないはず。
そこで問題になるのがスレタイなのだが。

聞いてばっかりになりがちな「質問スレ」というのは止めにして、
お互い問題を提出して有益な情報を出し合えるようなものにしたいところ。
言葉にするとしゃらくさいものに思えるかもしれないが、そういうものが必要だ。

しかしCommonGatewayInterfaceスレのように廃墟になるのはごめんだし、
PHPト学会スレじゃなんのことかさっぱりだ。何かハッとするようなブレイクスルーを
持っている人はいないかい。
155nobodyさん:04/10/08 04:03:27 ID:???
もうちょっと暖かく見守ってくれ
回答者がスレのレベルを決めてどうするんだ
最終的には難しい質問しか書けなくなって、誰も答えられない
自慢大会みたいなスレにならない?

---------------
まぁ初心者スレがないから、ココに書いてるのもあるけど。
156nobodyさん:04/10/08 04:17:30 ID:???
> 最終的には難しい質問しか書けなくなって、誰も答えられない
> 自慢大会みたいなスレにならない

初心者スレと別れていたころがあるが、そうはならなかった。
なぜ今後そうなると考えているのか理由もかいてくれないと何とも判断のしようがない。
このスレッドはあっていいんだ。"と'の違いや=&、&$が何か、「設定ができない」とだけ
書いてあって救いようの無いレスを打ち合うスレがあるのは否定しない。

けれども最低限マニュアルを読み、テストをする姿勢を要求するスレッドがあっても
いいんじゃないだろうか。その上で自己解決困難な問題について議論してみたら、
有意義な結果が得られることにならないだろうか。別にソースハックを当然のように
要求するスレッドを作りたいわけではない。

読んでくれなかったようだが、「ごく普通のPHPの疑問を解決するスレ」が一本あって
いいんじゃなかろうか、という程度の話だ。大げさに考えることは無い。
157nobodyさん:04/10/08 04:26:15 ID:???
PHP質問スレ自体は今後ますます必要になるだろうな。
調べずに聞いてもいい・簡単なことを聞くのは恥じゃない
となったあたりから、うんざりする質問が増えてきて
スキルのある人は出て行ってしまった感がある。
汎用的なスレや板ほど、何でも書けるせいかダメになりやすい。
あまり伸びず情報もさして出てこないような個別スレのほうが
まともなまま生き残る。どっかで分けなきゃいけない気もするね。
158nobodyさん:04/10/08 04:30:58 ID:???
以前、スレを初質とその他に分けたけど
質問者どころか回答者も使い分けれないって事で
また合体したじゃん。

放置とかスルーとかできるほど民度が高くないから
分けても無駄無駄。
159nobodyさん:04/10/08 04:31:38 ID:???
>>126
変数以外にも、エスケープシーケンスも展開されない。

>>124
使い分けに関しては、変数などの展開が必要ならば「"」不要なら「'」
文字列リテラルに「$"\」などの記号を多く含む場合は「'」程度かな。
必然的に>>130に近い使い分けになると思う。

>>142
テンプレートを使ってるよ。
160nobodyさん:04/10/08 04:32:28 ID:???
>>155
初心者スレもあったけど、初心者スレとPHP質問スレを
分けて使ってくれないんで無駄つーことで合体したんじゃなかったっけ
マニュアル読まない>>1読まないエラー読まないってな人は初心者スレを作ってあげても
住み分けてくれない罠
161nobodyさん:04/10/08 04:33:52 ID:???
>>158
質問スレと初心者の質問スレを分けるんじゃダメだ話でしょ >>154

162nobodyさん:04/10/08 04:35:56 ID:???
>>126
変数以外にも、エスケープシーケンスも展開されない。

どういうことよ
'\''がパースされないって認識?
163nobodyさん:04/10/08 04:36:48 ID:???
設定変えてApache再始動したら、mb対応した。
またバカなこと書いたと反省した(・∀・)
164157:04/10/08 04:39:41 ID:???
質問スレもう一個立てるってのは分けることになら
んでそ。そういうことじゃなくてさ。「質問」のためのス
レッドじゃ上手くいかないから別用途でってことね。
レベル分け無理ってのは同意。
165nobodyさん:04/10/08 04:42:25 ID:???
>>162
エスケープシーケンスつーとあれだけど、'\n'とかね。'/\n/'はPHPが賢いので有効。
16698:04/10/08 09:28:37 ID:???
棲み分けに関して
何回かこの板で質問させてもらった98ですが、
スクリプト改造スレみたいに【希望するレスの形】別なんてどうでしょう?
自分がつまずきレベルを考えたら3種類あって
【1、マニュアルの該当しそうな所が予想つく→マニュアル読む】
【2、マニュアルのどこに該当するのか見当つかない→キーワードでぐぐる】
【3、なにでぐぐっていいのかすらわからない】
くらいに大別できるかなと思うので3番目は論外にせよ
ヒントをくれるスレ、マニュアルのどこそこに該当するからそこ嫁、なんて
2番目の状態でぐぐっても何もなかった時に質問できるスレがあったらいいなぁ
なんて思います
長文スマソ
167nobodyさん:04/10/08 09:31:09 ID:wO90jo1V
$log = fopen(log.dat,"r+");
set_file_buffer($log, 0);
flock($log, LOCK_EX);
$kiroku = file(log.dat);
処理
rewind($log);
ftruncate($log, 0);
fputs($log, 処理の結果);
flock($log, LOCK_UN);
fclose($log);

排他ロックはこれでOK?
168nobodyさん:04/10/08 09:45:19 ID:???
>>167
flock() に失敗したときの処理はどうなってるの?
169167:04/10/08 10:09:33 ID:???
>>168
サーバーをリブートさせてます。
170167:04/10/08 10:27:11 ID:???
if (!flock($log, LOCK_EX)){ echo"ロックに失敗しました"; }
171nobodyさん:04/10/08 13:21:18 ID:???
凄く遅レスだけど、動的ページでhtmlにコメント入れてあるのは
自動巡回&切り出しソフトとかで切り出すのに重宝するよね。

>>167,170
if (!flock($log, LOCK_EX)){ echo"ロックに失敗しました"; }
else {処理;}
とかいう突っ込みをしてみる。
172nobodyさん:04/10/08 13:45:17 ID:???
safe modeがオンのときに画像アップロード等の
phpアプリを実行することはできますか?
173nobodyさん:04/10/08 13:52:52 ID:???
試してどうだったんだ。
174nobodyさん:04/10/08 13:55:25 ID:???
>>172
環境とコードによるけど、セーフモードつったって只のIDチェックでしょ?
http://jp.php.net/manual/ja/features.safe-mode.php#ini.sect.safe-mode
175nobodyさん:04/10/08 17:43:50 ID:???
馬鹿がいる。
176159:04/10/08 18:11:51 ID:???
>>162
'/''のエスケープは有効だったね。
>>152 は、(マニュアル通り) *特殊文字の*エスケープシーケンスに訂正します。

>>165 フォローthx u
177nobodyさん:04/10/08 19:08:16 ID:EsMqKh23
日付を使って条件判断したいのですが
以下のようにやってもうまくいきません。
例えば10月の分は全部syori2に行き11月の分はsyori1になります。
どっか間違っていますでしょうか?

if(date("Y/m/j")<date("Y/m/j",mktime(0,0,0,$month,$day,$year))){
syori1
}else{
syori2
}
178nobodyさん:04/10/08 19:13:40 ID:???
>>177
これならへたれな俺でも回答できる
UNIXタイムスタンプで比較すれ
179nobodyさん:04/10/08 21:13:17 ID:???
180nobodyさん:04/10/08 21:17:26 ID:???
えっ?それは・・・
181nobodyさん:04/10/08 21:21:51 ID:???
>>163
mb関数はバグがあるからちゃんと返却値を確認しつつ使う必要があるよ。
例えば、mb_convert_kana()などは、全角スペース→半角スペースの変換ができないから
preg_replace()なんかで受ける必要があったりとか。

>>177
なぜ数値として比較したいのに「/」を入れて文字列にしてるのかと小一時間(w
182179:04/10/08 21:24:55 ID:???
ごめん、質問をよく読まないで書いた。
よく読んだら
【10月の分は全部syori2に行き11月の分はsyori1になります。】
これが望んでいる動作なのか望まないのに
そのように動作しているのかすらわからなかったorz
183nobodyさん:04/10/08 22:42:04 ID:???
プログラミングではなくスクリプトそのものをフリーで探しているのですが、
その場合の質問もこちらでいいのでしょうか?

ギャラリー系のPHPスクリプトでPHP4.0.6/DB無し/ImageMagik・NetPBT(?)無しのサーバーで
ブラウザからUpload出来、自動リサイズ可能で各画像/アルバムのDiscriptionの編集が効くようなスクリプトはご存じないでしょうか?
注文が多くてスミマセン。
184183:04/10/08 22:42:32 ID:Us1p5CHj
連続カキコすみません。
ageるのを忘れていました。
185nobodyさん:04/10/08 22:48:39 ID:???
>>182
危うく同じ過ちを犯すとこだったよ <-- if ($month == 10) と書こうとしてた

>>177
とりあえず、"Y/m/j"の場合は、桁数が可変なのでこれを固定長にする。
その前に日付フォーマット文字の(j)は"分"なんだけど、比較したいのは"日"(d) なんじゃないかな?
186185:04/10/08 22:55:59 ID:???
>>185 自己レス
> 日付フォーマット文字の(j)は"分"
ごめん、勘違いしてた.

> j ... 日。先頭にゼロをつけない。1 から 31
> d ... 日。二桁の数字(先頭にゼロがつく場合も)01 から 31
187nobodyさん:04/10/08 23:02:06 ID:???
>>183-184
あースレ違いだから
188nobodyさん:04/10/09 00:02:04 ID:???
>>183
Web製作板のほうにCGI探しスレがあるんでそっちで。こっちは自分で作る板。
向こうアホが張り付いて荒らしてるんで心して行った方がいいよ。
189カポコン:04/10/09 00:36:55 ID:???
よぉ、ネタが途切れてるみたいなんで振っとくよ。
PHPではポインタの中身は見れないんだよな〜。
見たいなー見たいなー、見れる方法あればきぼんなんだな〜。
<?php
$a = 0xff;
$b =& $a;
echo(printf("%p",$b));
?>
とかじゃー、出ないし・・・orz。
190nobodyさん:04/10/09 00:44:57 ID:???
まだ参照をポインタだと勘違いしてるのか。
期待してるんだからもっと勉強しろよ。
191nobodyさん:04/10/09 00:47:07 ID:???
ポインタアドレスをPHPで使う必要が皆無なので出来ません
192nobodyさん:04/10/09 00:50:51 ID:???
もうちっと勉強できたらバカボンを名乗るのを認めてやろうぜ
193nobodyさん:04/10/09 01:42:07 ID:???
PEARで使えるものって何かあります?
194nobodyさん:04/10/09 01:47:43 ID:???
>>193
意味不明
195nobodyさん:04/10/09 01:55:11 ID:???
素人は引っ込んでろ
196nobodyさん:04/10/09 02:01:22 ID:???
>>193
引っ込んでろってさ。
197nobodyさん:04/10/09 02:02:07 ID:???
>>189
引っ込んでろってさ。
198nobodyさん:04/10/09 02:24:49 ID:???
自分で作りたくなくて、便利でオススメなモノだ
199nobodyさん:04/10/09 03:50:28 ID:???
板違い
200199:04/10/09 03:52:38 ID:???
誤爆った
201nobodyさん:04/10/09 05:23:42 ID:???
php4のクラスって5でもほとんどそのまま使えるんだね。
4のスタイルで書いた方が面倒くさくなくていいかも。
202nobodyさん:04/10/09 05:33:48 ID:???
デリファレンスしたり@accessに気をつかったりスタティックなプロパティはメソッド
にもたせないといけなかったりオブジェクトは必ず変数にしまう必要があったり等々で
4のオブジェクトはめんどい。んでE_STRICTでとんでもないことに。
もちろん自分で使う分にはいいんだけど。
203nobodyさん:04/10/09 06:26:47 ID:Iitzl1Oa
redhat9
apache2.0.52

php5.0.2をインストールしてapacheを再起動すると下記のようなエラーがでますが、
何のバージョンをあげればいいのでしょうか?
mod_php.cで20020628のファイルなんて見あたらないのですが・・・

-----------------------
# /usr/sbin/httpd -k restart
>httpd: module "/home2/Download/php-5.0.2/sapi/apache2handler/mod_php5.c" is not compatible with this version of Apache (found 200
>20628, need 20020903).
>Please contact the vendor for the correct version.
204nobodyさん:04/10/09 12:32:31 ID:KzxQhnSE
質問です。

function hoge($a,$b,$c,$d,$e,$f,$g,$h,$i,$j,$k) {
処理;
}

みたいな引数が多い自作関数てやめたほうがいいですか?
なんかごちゃごちゃして分かりにくいきがするのですが。
皆さんは自作関数の引数はどれくらい持たせるのでしょうか?
205nobodyさん:04/10/09 12:37:31 ID:???
>>204
配列渡せば?
206nobodyさん:04/10/09 12:38:46 ID:JKfj4SS6
処理によりけり。
てか、何故にそんなに引数いるねん。
多分どっか無駄があると思うで。
207204:04/10/09 12:44:30 ID:???
>>205
>>206

204の例はちょっと極端でした・・・
今までは引数が2,3こくらいしか扱ったことが無くて、
今回いきなり引数が6つくらいあるのです。
だからあまり多い引数の関数に慣れていないというか。
引数6つって普通でしょうか?
208nobodyさん:04/10/09 12:48:54 ID:???
>>207
>>204がいいこと言った。
209nobodyさん:04/10/09 12:49:41 ID:???
hogeってなんなんだろうか?
なんだかすごい響きが間抜けな気がするんだが。ホゲ!
210nobodyさん:04/10/09 13:19:41 ID:???
Huge Over Gigantic Expletive
211nobodyさん:04/10/09 14:22:32 ID:???
>>207
6つ全部が本当に必要なパラメータなら引数にとるしかない。
しかし引数が多い場合は大抵、関数の設計に問題がある。

関数の行数が長すぎたり、ひとつの関数のなかで複数の目的を
果たそうとしていたり、引数のフラグ値によって処理を切り替え
たりしていたら、危険信号。

少し古い本だが、「CODE COMPLETE」には引数はおおむね7個
以下に抑えるべきだと書いてある。
212nobodyさん:04/10/09 14:30:53 ID:???
>>204
連想配列やデフォ値の設定をうまく使ったほうがいいんじゃないかい?
function rect($options)
{
.....
}
$options = array(
'color'=>'blue',
'width'=>60,
'height'=>100,
);
rect($options);
213nobodyさん:04/10/09 14:39:11 ID:80FyrwRs
php で webアプリを作る時、ディレクトリ構成どうしてますか?
いつも最初悩むんです。

設定ファイルをどこに置くとか、設定ファイルやライブラリへのパスは相対パスにするか
絶対パスにするかとか include_path にいれちゃうとか。
smartyのテンプレートをどこに置くとか、compile_dir をどこにするとか。

レンタルサーバーで 全部public_htmlの中にいれなくてはいけなかったりとか
いろいろ環境によって違うので悩みます。

漏れはこうしてるぜ!ってのあったら教えてください。
214203:04/10/09 14:57:11 ID:Iitzl1Oa
誰かわかりませんか?
215nobodyさん:04/10/09 15:04:30 ID:WliLpyVq
ttp://aavideo.s11.xrea.com/cgi-bin/aadb/select_form.cgi
こんな感じのPHPないでしょうか
216nobodyさん:04/10/09 15:17:04 ID:???
>>215
>>188

>>213
PHPでなくてもいいからフレームワーク弄ってみたら。
ドキュメントルート下に全てを置くような制約があるなら、
もう全て諦めて適当においても良いくらいの状況。
217nobodyさん:04/10/09 15:31:59 ID:???
P H P
218nobodyさん:04/10/09 17:16:40 ID:???
hogeって「なになに」とか「ほにゃらら」という意味だと思ってた…
219nobodyさん:04/10/09 17:22:33 ID:???
hoge&fuga文化も知らない輩でも使ってるPHPって・・・・。
220nobodyさん:04/10/09 17:25:51 ID:???
PHPの「参照」って、ポインタと思って間違いない?
レクチャーしてほしいんだが・・・
221nobodyさん:04/10/09 17:29:59 ID:???
>>220
はぁ・・・
222nobodyさん:04/10/09 17:48:10 ID:???
>>220
だめだこりゃ
223nobodyさん:04/10/09 18:17:17 ID:???
こういう時こそマニュアルですよ。
http://www.php.net/manual/ja/language.references.php
> これはCポインタのようなものではなく ...
224nobodyさん:04/10/09 18:26:42 ID:???
>>203
INSTALLに書いてある通りにインストールしろ
225213:04/10/09 18:36:46 ID:???
>>216
mojavi でも眺めてみます!
226nobodyさん:04/10/09 19:49:02 ID:???
>>223
要するに、Cのポインタは ポインタ側にその構造(intなのかcharなのか等)を保持しているけど
PHPの参照(リファレンス)はその情報すらもヒープかそれに相当する部分にあり
参照に使う変数はもとの変数やオブジェクトのエイリアスとしてしか機能しない
ということね
227nobodyさん:04/10/09 20:17:56 ID:???
ファイルにポツポツと出力するとき
いちいちfopenして書いたりするのと
system("echo $hoge >> file"); とか書いちゃうのと
どっちがダサい?
228nobodyさん:04/10/09 21:47:59 ID:???
>>226
> Cのポインタは ポインタ側にその構造(intなのかcharなのか等)を保持している

してねーよ。Cのポインタはただのアドレス値。
型はコンパイラが知ってるだけ。


> 参照に使う変数はもとの変数やオブジェクトのエイリアス

シンボルテーブルのエイリアスって書いてあるから
変数の別名を作れるだけでヒープ上のオブジェクトの参照は作れないだろ。
229nobodyさん:04/10/09 22:09:46 ID:???
>>228
>型はコンパイラが知ってるだけ
わかってるよ。便宜上そう書いただけ。
インクリメント等の挙動はポインタ側で決定されるでしょ。
230nobodyさん:04/10/09 22:32:30 ID:???
231nobodyさん:04/10/09 22:33:31 ID:???
荒れる前に言っとくと、
PHPスレだから、Cのコンパイラの実装方法なんてどうでもいいよ。
ポインタ型がインクリメントを適切に扱えればCを使う人にはそれ以上気にする必要が無い。
同様にPHPを使う人は、PHPにポインタが無いことと
ポインタ型の概念を持ち込むことは無意味だということを知っていさえすれば良い。
232nobodyさん:04/10/09 22:36:10 ID:???
>>231
オレも実装の方法はどうでもいいと思ってるよ
233nobodyさん:04/10/09 23:26:42 ID:???
>219
hoge&fuga文化って何ですか?
検索してもサンプルの山に埋もれて出典が発見できませんでした
234nobodyさん:04/10/09 23:30:28 ID:???
>>233
このページが参考になるかも知れません。
ほげを考えるページ
http://kmaebashi.com/programmer/hoge.html
235nobodyさん:04/10/09 23:32:43 ID:???
つーかこんなくだんない知識でアンデンティティ保とうとすんなよ
236nobodyさん:04/10/09 23:33:11 ID:???
>234
ありがとうございました。
まさかとは思っていましたが「ほげ〜」のほげだったとは…
237nobodyさん:04/10/10 01:31:38 ID:???
hoge、fuga、foo、bar
238nobodyさん:04/10/10 02:34:08 ID:???
foo fightersだよ
239にゃんこ:04/10/10 02:34:10 ID:DhJ+i6pZ
こんにちは。
ちょっと探しもの中です。

テキストカウンターで昨日・今日・合計が表示されるやつで
ちょっとやそっとじゃ、飛ばないカウンターを探しています。
バックアップ機能がついてると、さらに嬉しいのですが・・・
残念ながら、
ttp://php.s3.to/
さんの昨日今日カウンターは、すぐに飛びました。。。。 (ToT)


アクセス多くても、あんまり飛ばないよ!っていうのを知ってる方、
ぜひ教えてください。宜しくお願い致します。
240nobodyさん:04/10/10 02:37:39 ID:???
241nobodyさん:04/10/10 02:59:03 ID:???
>>239
過去にもあったなそれ。
数スレ前に飛ばないようにする改造点が上がっている。
242nobodyさん:04/10/10 03:01:29 ID:???
数スレどころじゃなかった
【PHP】質問スレッド Part14
http://pc2.2ch.net/test/read.cgi/php/1076163015/401-
243nobodyさん:04/10/10 08:00:23 ID:6dJYwntE
以前作ったファイルの条件分岐(while)の部分を修正したいんですが、
無限数を表現する記号かなんかってありますか?


$hoge=200;

if($a==$b){
 $hoge=∞; ←ココ(無限大マーク)
}

while($hoge > 100){
//処理
}

みたいな感じで書きたいんです。
それがあれば簡単に修正できるんですが…。

ちなみに単純に、

while($hoge > 100 || $a==$b)

って書き方したら「あるいは$a==$b」の部分は無視されて、
最初の「$hoge > 100 」の部分がfalseになった時点でループが終了してしまいました。
while文ってそーゆーもんなんですね…。
244nobodyさん:04/10/10 08:00:46 ID:iO0fDOFW
あるオブジェクト(A)の返り値としてオブジェクト(B)を作ったとします。
この(B)って、自分で破棄しなくていいんでしょうか?
メモリーリークの原因になったりはしませんよね?
245243:04/10/10 08:05:55 ID:6dJYwntE
あ、全然別のところをいじることで今解決しました。
すいません。
246nobodyさん:04/10/10 11:35:18 ID:???
>>243
ワケワカラン
247nobodyさん:04/10/10 11:42:19 ID:???
>>244
PHPではオブジェクトの破棄は必要なし。
放っておけば良いです。
248nobodyさん:04/10/10 19:04:14 ID:TR7Uhe7O
Apache/1.3.28 (Unix) PHP/4.3.5
PHP Accelerator v1.3.3r2
MEMORY:160MB

上記の環境で使用しているのですが、apacheのログに時々次のようなメッセージが記録されます。

[warn-phpa] No mempool 2 memory (pid xxxx)
[notice-phpa] shm cache temporarily disabled (pid xxxx)

'phpa_cache_admin -mv'を実行すると'cache disabled'と表示されるため、
毎回手動でキャッシュを有効にしているのですが、他に解決方法はあるでしょうか。
249nobodyさん:04/10/10 20:15:52 ID:???
>>243
while文は関係ない
||演算子は OR 論理演算子

 A || B

という式があった場合
Aが真である限り、Bは評価(実行)されない
250nobodyさん:04/10/10 21:29:41 ID:???
>>249
ん?評価されないのか!
これはまた一つ勉強になった!ありがとう。

ってことは
真 || func()
とかやってもfunc()は実行もされないと解釈していいのかな?
251nobodyさん:04/10/10 21:32:26 ID:???
試そうともしてないし、一つも勉強になってないですね。
252nobodyさん:04/10/10 21:39:25 ID:???
Cから勉強しなおせ。短絡論理演算子とビット論理演算子の違いも分からんのは辛いな
253249:04/10/10 21:47:04 ID:???
>>250
A || B は AまたはB が真である場合に真となる
左辺値から順に評価を行い、結果が真であった時点で
論理演算の結果を真として、その右辺値以降の評価は行わない

(問1)
$a = 0;
if ($a == 0 || ++$a == 1) ++$a;
echo $a;

(問2)
$a = 0;
while ($a < 4 || $a % 2 == 0) ++$a;
echo $a;

練習問題でもやって覚えんさい
適当な問題ですまんけど
254nobodyさん:04/10/10 22:06:21 ID:???
てか>>250は or die() を使ったことがないんだろうか…
255250:04/10/10 22:19:55 ID:???
あぁ、or die()も A or BでAが偽の時点でBが評価されるという意味か、、、
ってかそんなことも考えずに使ってました orz

>>253,254
分かりやすい解説&ヒントありがたいです。
256248:04/10/10 23:15:25 ID:???
見事にスルーですね
デナオシテキマス
257nobodyさん:04/10/10 23:57:46 ID:???
>>248
てか、それだけだとPHPの問題かどうかすらも分からんです。
OSのヴァージョンから洗いなおしたほうが良いのではないっすかね?
メッセージからしてアロケートエラーの類ではないかと思えますし。
258nobodyさん:04/10/11 00:01:29 ID:???
PEARのhtmlテンプレートでどれが一番いいですか?
259nobodyさん:04/10/11 02:43:49 ID:???
>>258
Smarty使えば?
http://smarty.php.net/

日本語マニュアルあるから、安心しる!
260nobodyさん:04/10/11 04:42:24 ID:???
なんなんだコイツら
261 :04/10/11 04:42:47 ID:CqR/mj9n
OSがWINDOWS XP HOMEで自宅サーバ上でアパッチを使って画像投稿CGIを実行したのですが、画像が表示されません。
ローカルフォルダのイメージフォルダに画像は保存されている
のですが、 x印になります。
どの画像掲示板スクリプトを使っても、そういう症状になります。
ちなみに、PNG画像カウンタなどは正常に数字画像が表示されます。

CGIスクリプトのイメージの設定は以下のようにしました。
$ImgUrl = "http://localhost/cgi-bin/clip/img/";

それと、直接画像にアクセスしようと以下のURLを入力したの
ですが、Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
と出ます。

http://localhost/cgi-bin/clip/img/4.png

使用ソフトは、Apache/2.0.52  PHP/4.3.9 ActivePerl-5.8.4.810
です。
httpd.confかphp.iniが問題だと思うのですが、アパッチかPerlの設定のどこを直せばよろしいでしょうか?
教えてください。
262nobodyさん:04/10/11 04:56:42 ID:???
>>261
その画像404だったぞ?URLあってる?
263 :04/10/11 05:16:21 ID:CqR/mj9n
>>262
自宅のパソコンのローカルホストのURLです。
インターネット用のURLではありませんで、何の汎用性もありません。
264nobodyさん:04/10/11 05:38:49 ID:???
/cgi-bin/ディレクトリ配下の画像やHTMLが表示できない
http://acorn.zive.net/~oyaji/faq/apache_cgi5.htm
265nobodyさん:04/10/11 05:40:20 ID:???
天然だな・・・


>>261
症状からして板違い
原因が何か分かってりゃ該当する板(スレ)へたどり着けると思うが、
それすら出来ないならもっと基本的なところから始めたほうがいい

http://www.google.co.jp/
266nobodyさん:04/10/11 05:43:24 ID:???
>>261
エラーログは見てみた?
267nobodyさん:04/10/11 05:53:20 ID:???
>>262-263
天然だ
268nobodyさん:04/10/11 06:00:16 ID:???
おお天然じゃ。ありがたやありがたや
269nobodyさん:04/10/11 06:45:52 ID:CqR/mj9n
>>264
ありがとうございます。
リンク先の3番目の方法を試しましたがうまくいきません。

<Directory "C:/Program Files/Apache Group/Apache2/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
AddHandler image/gif .gif
AddHandler image/jpeg .jpeg .jpg .jpe
AddHandler image/png .png
</Directory>

どうしてでしょうか?
270nobodyさん:04/10/11 07:28:34 ID:???
「上手くいかない」んだとよ>>264
どうしてかって聞かれてるぞ>>264
271269:04/10/11 07:29:54 ID:CqR/mj9n
http://localhost/にimg-boxというディレクトリを作ってCGIの参照
URLも変更しましたがダメでした。
$img_dir_url='http://localhost/img-box/';
PHPスクリプトはちゃんと画像が投稿、表示ができるのになぜでしょうか?
272269:04/10/11 07:58:55 ID:CqR/mj9n
これが自宅サーバの画像掲示板です。
http://moelove.sytes.net/cgi-bin/clip/clip.cgi
pngアクセスカウンタはログもちゃんと動くのですが、スクリプトと
アパッチなどの相性が悪いのでしょうか?
いろんなサイトの画像掲示板を使っても画像が表示されませんでした。
http://moelove.sytes.net/cgi-bin/pngcntr/pngcntr.cgi?logfile
273nobodyさん:04/10/11 08:31:01 ID:???
>>272
画像だけにアクセスしてもInternal Server Errorがでてるよ。
http://moelove.sytes.net/cgi-bin/clip/img/soon.gif

あとソースみたらさ、
http://localhost/って画像のパス指定してるから、外部から
ローカル参照させて見えるわけない。
相対パスで指定するとかしないと。
274273:04/10/11 08:31:45 ID:???
こうなってる

<dd>
<p><img src="http://localhost/cgi-bin/clip/img/soon.gif"><p>
<font color="">test</font><br><br clear=all>
<dt><hr>[<b>2</b>] <font color="#008040"><b>テスト</b></font> 投稿者:<b>ななし</b> 投稿日:2004/10/11(Mon) 04:41 [<a href="./clip.cgi?res=2">返信</a>]   <br><br>
<dd>
275nobodyさん:04/10/11 08:39:00 ID:???
Apache 使ったこともないなら黙ってろ
276273:04/10/11 08:46:51 ID:???
>>275
すまん。

一応使ったことはあるんだけど・・・。
27745:04/10/11 08:47:01 ID:???
>>273
だから、自宅ではそれでいいのです。
CGIをネットで見せる時は、ドメインサーバによってttp://localhostが
ttp://moelove.sytes.netに自動変換されるのです
278nobodyさん:04/10/11 08:48:25 ID:???
>>277
ソース見たら変換されていないわけだが。

逆に変換されるとしたら串通さないと自分のPCからは画像は見えないはず。
279nobodyさん:04/10/11 08:49:36 ID:???
あ、下のほうはドメインサーバが判断してくれるのか。
280273:04/10/11 08:51:28 ID:???
>>277
おれが言ってるソースはPHPのソースじゃなくて
PHPが吐いてるHTMLのソースなんだけど・・・
28145:04/10/11 09:06:51 ID:???
>>278
でも、画像を直リンしてもcgi-binディレクトリの下では
ローカルでもネット上でも見れないのです。
http://moelove.sytes.net/cgi-bin/clip/img/soon.gif

localhostディレクトリに直接置けば見れますが、
アパッチのhttpd.confでcgi-binディレクトリ以下で
CGIが動くようになってますので、localhostディレクトリ
に直にフォルダを置いて、下のようにCGIの設定をしても、
$img_dir = '/localhost/img-box';
$img_url ='/localhost/img-box';
HTMLを吐き出す時に、
http://localhost/cgi-bin/img-box/img20041010232143.jpg
のように、cgi-bin/が余計に付いてきます。
282nobodyさん:04/10/11 09:11:50 ID:???
すみません。
PHPがCGIでサーバにインストールされているときは
モジュールの時と同様にPEARがつかえますか?
28345:04/10/11 09:13:29 ID:???
>>282
マイコンピュータの環境変数をいじると使えるらしいよ。
284nobodyさん:04/10/11 09:15:44 ID:???
>>281
なぜに絶対パスにこだわる?
285nobodyさん:04/10/11 09:18:09 ID:???
つーかそもそも500で見れないんだから>264の話だと思うんだがなぁ。
とりあえず directry 指定は最後にスラッシュ入れた方がいいとして、
リスタートしてないとかそういう話じゃないよな?
286nobodyさん:04/10/11 09:21:21 ID:???
>>285
リロードに一票
28745:04/10/11 09:24:33 ID:???
>>284
絶対パス以前に、普通に画像に直リンしても見れないんです。
ローカル、ネット上を問わず。
画像自体は決して見れない設定になってませんし、アパッチと
パールの設定の問題だと思うのですが。
>>285
リスタートはちゃんとしてます。
288nobodyさん:04/10/11 09:30:22 ID:???
>>287
画像をそのフォルダにcgi通さずに置いてもみれないの?
だとしたらapacheの問題。もしくは両方悪い場合もあるかもだけど。

もしそれで見えるならcgiの問題
289288:04/10/11 09:56:22 ID:???
>>288
直接コピーして置いても見れません。
http://moelove.sytes.net/cgi-bin/clip/img/8a2b5a5e24fd380f22.jpg

PHPは問題なく画像が表示できるのですが、CGIをやりたいので。。
http://moelove.sytes.net/home/futaba.php
290nobodyさん:04/10/11 10:02:43 ID:???
>>289
画像以外のファイルだとどう?
291nobodyさん:04/10/11 10:03:54 ID:???
どう考えても
>>275=>>289
だよな・・。
ひど・・。
292nobodyさん:04/10/11 10:10:10 ID:???
>>282
dl('php_win32std');
win_message_box('試せよ。エラーが出たなら書けよ。使えないと思うなら理由を書けよ。');
293nobodyさん:04/10/11 10:30:09 ID:???
┌───────────────┐
|   PHP.                 |
├───────────────┤
|試せよエラーが出たなら書けよ   ..|
|使えないと思うなら理由を書けよ  ..|
|分かったらOKを押してもいいぞ   .|
| ┌───┐               |
| | OK..  |               |
| └───┘               |
|                       |
└───────────────┘      
                     || ̄ Λ_Λ
                     ||_(Д`; ) 「キビスィ・・・」
                     \⊂´   )
                       (  ┳'
294nobodyさん:04/10/11 10:51:08 ID:???
つまるところ>>267な訳だ
295nobodyさん:04/10/11 12:58:59 ID:???
>>272-281,284-290
天然もこれだけあると効用が下がる
296nobodyさん:04/10/11 13:05:57 ID:???
なに言ってんねん!
297nobodyさん:04/10/11 15:55:41 ID:???
完全に板違いだなw
余所でやってくれ
298nobodyさん:04/10/11 17:28:46 ID:???
PHPのgrepって処理用の関数を作って
その関数名を文字列で渡さないといけないんだね。
ぶっちゃけ屑だな。
299nobodyさん:04/10/11 17:37:26 ID:???
( ´,_ゝ`) ヘェーヘェー
300nobodyさん:04/10/11 18:42:33 ID:???
>>298
grepに渡す関数でスコープ内の変数参照したいとか?
それだったらcreate_functionで無名関数作れるけど。
301nobodyさん:04/10/11 23:37:57 ID:???
初歩的で行き詰まりました。


echo "<table><tr>";
if($dh = opendir($dir)){
while(($file = readdir($dh)) !== false){
$link = $dir.$file;
$size = @getimagesize($link);
if(eregi("\.(gif|jpe?g|png|bmp)$",$link)) echo "<td><img src=$link width=".$size[0]." height=".$size[1]."></td>";
}
closedir($dh);
}
echo "</tr></table>";


これだと $link をすべて一行で表示してしまうので
10個単位(もしくは $link 全数が割り切れる数)で行を追加したい。

けどできない・・・

count() で除算しても何故か一つのセルで一行になってしまうのです。
やり方が悪いのか、思惑通りにならないよ〜〜〜

(´・ω・`)ヘルプミ
302nobodyさん:04/10/11 23:44:44 ID:???
>>301
てか、HTMLがわかってないやんw
303nobodyさん:04/10/12 00:01:47 ID:4ikvnffT
WindowsでPHPを使う場合なんでActivePerlみたいに
手軽にできないのかね?インストールした後にPath設定したり
PHPファイルの関連付けとかしたり、すげぇ面倒なんですけど。
304nobodyさん:04/10/12 00:12:49 ID:koXfXZjL
>301

$count=0;
echo "<table><tr>";
if($dh = opendir($dir)){
while(($file = readdir($dh)) !== false){
$link = $dir.$file;
$size = @getimagesize($link);
if(eregi("\.(gif|jpe?g|png|bmp)$",$link)) echo "<td><img src=$link width=".$size[0]." height=".$size[1]."></td>";
$count++;
if($count%10 == 0) echo"</tr><tr>";
}
closedir($dh);
}
echo "</tr></table>";
305nobodyさん:04/10/12 00:25:11 ID:???
>>303
厨除けでつ
306nobodyさん:04/10/12 00:56:23 ID:???
>>303
手軽にインストールできる物もあるけどな。
あんたが知らないだけで。
307nobodyさん:04/10/12 00:58:27 ID:???
>>303
窓鯖だけどそんなことやったことないんですけど
308nobodyさん:04/10/12 01:08:07 ID:???
>>305
もう少し徹底して頂きたく

>>303
PHPDEVとか色んなのが一括してWindowsインストールできるやつあるやん。
309nobodyさん:04/10/12 02:12:45 ID:???
>>304
死ねよ
310nobodyさん:04/10/12 03:07:39 ID:bZlbaUCT
php.iniは、output_buffering = 4096
[mbstring]
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.detect_order = auto
mbstring.substitute_character = none
なのですが、
<form method="post" action="https://www.example.com/admin/example.php">
<input type="text" name="categorytitle" value="Outlook トピックス" />
(中略)</form>
をsubmitすると、
/admin/example.php
の中で、

$categorytitle = addslashes(getParam('categorytitle'));
print $categorytitle;
exit;
//-------------------------------------
function getParam( $name )
{
    $val = $_GET[$name];
    if( $val == "" ){
        $val = $_POST[$name];
    }
    return( $val );
}
の結果が、
「Outlook gsbNX」と表示されてしまいます。(本来は「Outlook トピックス」と表示されるはず)
こんな文字化けの仕方は初めてみたので、どこが悪いのかちょっと検討がつきません。
どなたか解決方法ご存じのかた、教えて頂ければ幸いです
311310:04/10/12 03:09:03 ID:???
すいません、言い忘れましたが、PHP5.0.2です。
312nobodyさん:04/10/12 03:38:30 ID:???
>>310
Apacheの設定はどうなのよ?
313310:04/10/12 04:26:44 ID:???
>>312
えと、apacheの設定ですか。
普通に、
LoadModule php5_module libexec/libphp5.so

<IfModule mod_php5.c>
 AddType application/x-httpd-php .php
 AddType application/x-httpd-php-source .phps
</IfModule>
と書いてますが・・・ごめんなさい、回答、はずしてます?
314301:04/10/12 05:47:58 ID:???
>>304 (・A・)イクナイ
315301:04/10/12 06:48:29 ID:???
if($file % 10 == 1) echo"<tr>";
if($file % 10 == 0) echo"</tr>";

これで解決しますた!
316nobodyさん:04/10/12 11:28:18 ID:scXqgxmN
おいお前らちょっと教えてください。

任意の秒数($sec)を時間、分、秒に換算したいのだけど
これをスッキリとコーディングするにはどうするの?
今は下のように書いています。

<?php
$hour = floor($sec/3600);
$amari_hour = $sec%3600;
$min = floor($amari_hour/60);
$amari_min = $amari_hour%60;

echo $hour."時間".$min."分".$amari_min."秒";
?>

こんな計算に4行もつかうのは嫌です。
誰か何とかして。
317nobodyさん:04/10/12 11:40:31 ID:???
ちょっと質問。

当方、仕事ではASP.NET使ってるんだが、PHPでも同じ動作をするように
色々試してるんだが、正直ちょっと・・・

例えば、SQLを発行してTABLEに検索結果を一覧表示した場合、
業務系だとテーブルの列名の部分などをクリックしてソートさせたいなどの需要がある。
ASP.NETだとグリッドコントロールですぐに出来るがPHPだとこの部分は自前で実装しないといけない。

自前で実装するには、その列が昇順降順のどれでソートされてるのか保持しておき
クリックされた列でSQLを発行してソートの方法を変えれば良いので、実装自体に問題は無い。(面倒だけど)

そこで問題というかこだわりなんだが、ASP.NETではグリッドでソートを変更した場合は、
別途DBなどに接続は行われれず、ADO.NETの仕組みで取得済みのデータで勝手にソートしてくれる。
対してPHPだとソートさせるだけで再度SQLを発行してDBに接続しなければならずに、
レスポンス等の面から見てもちょっと不満を感じる。

俺のPHP技術が未熟なのは認めるが、PHPでもASP.NETと同じような挙動のプログラムは書けるのだろうか?
また、どのようにして実装すればよいのだろうか?
318nobodyさん:04/10/12 11:43:07 ID:???
>>316
その$secにはどういう値が入るの?
time()を入れれるなら、そのようにすりゃdate()関数で楽に処理できるが、
仕様的に無理なのか?
319nobodyさん:04/10/12 11:44:58 ID:???
>>317
XML+XSLT
320nobodyさん:04/10/12 11:45:00 ID:???
>>317
例えばMySQLならmysql_pconnect()なんてのがあるが、そういう意味ではない?
321316:04/10/12 11:49:17 ID:???
>>318
UNIXtimeは入らないんです(´・ω・`)
10〜100000秒くらいの任意の秒が入るんです。
322nobodyさん:04/10/12 11:51:59 ID:???
>>317
DOM
323nobodyさん:04/10/12 12:00:07 ID:???
>>316
時間だけ普通に計算して、後は date() に任せるとか?
本当に正しいか調べてないけど。

echo floor($sec/3600) . "時間" . date(" i分 s秒", $sec);
324316:04/10/12 12:12:58 ID:???
>>323
うわ、いい感じです。
少し調べてみて、良ければ使ってみたいと思います。
ありがとうございました。
325nobodyさん:04/10/12 12:33:18 ID:???
>>310
mbstring.http_input = auto
をautoじゃなくて決めうちにしたら?

ttp://ns1.php.gr.jp/pipermail/php-users/2004-June/022966.html
のスレッドを参照
326nobodyさん:04/10/12 14:27:41 ID:???
>>317
a. クライアント側でdata binding < XML/XSLT, DOM ...etc
b. 自前で実装する場合、ソートの可能性があるクエリーの結果のキャッシュを追加。
c. 使ったことないけど PEAR の Structures_DataGrid
.Net frameworkのDataGridと同じようなコンセプトのライブラリ.
さっとソース眺めてみた所、クエリの結果のキャッシュまでは現状では面倒みてくれないみたい
それどころか、DB使ってる場合はソートはDB側で済ませた方が早いからこのメソッドは使うな
とコメントに書かれている.
d. Zend Performance Suite (引用: 不要なDBアクセスを含むPHPスクリプトの実行が抑止されます。)
e. http://jp2.php.net/dotnet
327nobodyさん:04/10/12 15:54:49 ID:???
何でもかんでもDBに繋ぎに行くのはアレだよな・・・

俺が担当したシステムだと、船舶とかで使用するWebシステムで、
航行計画書やら、港についたときに備品など購入するための備品搬入の管理システム作ったけど、
何せ海の上だから船舶電話だと金掛かるし通信速度遅いし、回線切れるし・・・
だから、衛星対応の携帯で通信するシステムにしたんだけ、
やっぱりパケット量とかの問題で通信費やら実行速度遅くなるから、
ASP.NETみたいな仕組みは楽だったなぁ。

PHPでも確かに同じようなこと実装できるけど、そういうのって業務ロジックじゃないしな。
正直、そんなものにお金も時間も掛けたくない。
328nobodyさん:04/10/12 16:38:42 ID:seDWSO57
質問させてください。

同一サイトでユーザ別にブログを立ち上げさせたいと思っています。

たとえば、http://hoge.jp/username/を開いたとき
http://hoge.jp/hoge.phpを叩くようにしたいと思っています

このとき、ブラウザのアドレス表記上では
常に、http://hoge.jp/username/hoge.php
という形で表示させたいのですが、この方法がわかりません。

(要は、ユーザ別にアドレスを綺麗に分けたいのです)

どうすればよいか教えてください。m(_ _)mペコリ
329nobodyさん:04/10/12 16:46:26 ID:???
>>328
mod_rewrite
330nobodyさん:04/10/12 17:01:33 ID:seDWSO57
>>329
ありがとうございました。
助かりました。
331nobodyさん:04/10/12 17:38:47 ID:???
↓これを実装しようと思ってるんだけど、関数の一覧ってどうやったら出せる?
(defun php-complete-function ()
"Complete the function name at the point from known PHP functions."
(interactive)
(message "php-complete-function not implemented yet")
;; how to read the list of functions from a separate file?
)
332nobodyさん:04/10/12 18:06:22 ID:???
>>331
get_defined_functions()
333nobodyさん:04/10/12 18:18:54 ID:???
>>332
(゚Д゚)ハァ?
334nobodyさん:04/10/12 19:14:06 ID:???
> how to read the list of functions from a separate file?
do it yourself with get_defined_functions() ってことじゃねえの?
335nobodyさん:04/10/12 20:02:40 ID:iIJDed89
携帯サイト向けに、アップロードした画像をgifとpngで90×60ぐらいに
縮小して別のフォルダに保存するスクリプトを作りました。imagegifて
やっただけなのです。しかしファイルサイズが5KB以上になってしまうものが
多く、pngでは10KBにもなるものがありました。
jpegだとクオリティを指定しながら2KB程度に収められるのですが、gifや
pngの場合、関数で簡単に色数を落としたりしてサイズをさげることは
できないのでしょうか?
336nobodyさん:04/10/12 21:23:54 ID:???
>>335
とりあえず、基本情報技術者試験でも受けなはれ
337nobodyさん:04/10/12 21:33:17 ID:???
>>317
糞のような思いつきなんだけどセッション変数にブチ込むのはどうだ?
とりあえずリザルトセットがどこかしらPHPから簡単に操作できるリソースに
保存されればいいんだろ?
338nobodyさん:04/10/12 22:38:39 ID:???
>>316
本題からはずれるけど、おれはこっちのほうが好き。

(1)
$h=floor($sec/3600);
$m=floor(($sec-($h*3600))/60);
$s=$sec-($h*3600)-($m*60);
echo sprintf("%02d時%02d分%02d秒",$h,$m,$s);

ちなみに、
(2)dateだけ版
echo sprintf("%02d時%02d分%02d秒",date("H",$sec)-date("H",0),date("i",$sec),date("s",$sec));

(3)>>323版変形
echo sprintf("%02d時%02d分%02d秒",floor($sec/3600),date("i",$sec),date("s",$sec));

この3つをそれぞれ1000回実行するのにかかった平均時間は
(1)0.008534
(2)0.033852
(3)0.02452
date関数がいかに遅いかよくわかった。
339nobodyさん:04/10/12 22:53:12 ID:???
dateって遅いんだ…
340nobodyさん:04/10/12 23:37:03 ID:4ikvnffT
変数をダブルコーテーションで括ると変数が展開されますが、
$str = "this is $foo['bar']";
このようにするとエラーになります。
どうすればよいでしょうか?
341 ◆.jC7ANgFY. :04/10/12 23:41:01 ID:???
>>338
echo gmdate('H時i分s秒', $sec);
これも試してみて。
# 本来ならgmdate("H\\\x8e\\\x9ei\\\x95\\\xaas\\\x95\\\x62", $sec);
# とちゃんとエスケープして書くべきかもしれない。(これはSJIS
342 ◆.jC7ANgFY. :04/10/12 23:41:58 ID:???
>>340
そのままこのように書けばよいのですよ
$str = "this is $foo[bar]";
343nobodyさん:04/10/12 23:42:07 ID:???
>>340
$str = "this is {$foo['bar']}";
344nobodyさん:04/10/13 00:01:07 ID:???
>>341
>>338の(2)もそうだけど、それでは24時間以上は調べられないから意味がない。
>>321では10から100000秒まで範囲という話だから、24時間以上の数値が入ることが
あり得る。
345 ◆.jC7ANgFY. :04/10/13 00:03:26 ID:???
ついでに独自調査。338と同速度になるよう調整済み。

// 25.8μs
$s = $sec % 60;
$m = ($sec / 60) % 60;
$h = floor($sec / 3600);
"{$h}時{$m}分{$s}秒";

// 9.8μs
gmdate('H時i分s秒', $sec);

// 10.3μs
sprintf("%02d時%02d分%02d秒",$sec/3600,($sec/60)%60,$sec%60);

// 35.6μs(338と同実験により1割ほどこちらのほうが低速)
echo sprintf("%02d時%02d分%02d秒",date("H",$sec)-date("H",0),date("i",$sec),date("s",$sec));
346 ◆.jC7ANgFY. :04/10/13 00:05:57 ID:???
一行目の、"338と同速度になるよう調整済み。"は間違い。
調整しようと思ったがミスがあったので一番下から再度計算してください。

こちらの結論としては24時間分までしか計算できないものの、
gmdate('H時i分s秒', $sec);が一番高速。
347nobodyさん:04/10/13 00:14:48 ID:???
>>340
>>343の方をお勧めしとく。
取り合えず{ }でくくれば良い。
他にも $str = 'this is ' . $foo['bar'];
という書き方もあり、速度的にはこっちの方が早いというデータをどっかで見た気がする
が、分かりやすさからいって{ }でくくるのが一番かと思う。
348nobodyさん:04/10/13 00:29:46 ID:???
>>331 マジレスして欲しいのか?
「スレ違い。elispスレに池」
あるいは
「a separete fileの仕様も出さずにどう答えろというのだ」

まあここに張り付いている連中にはelispなんぞ分からんっちゅうことはよく分かったろ?
349 ◆.jC7ANgFY. :04/10/13 00:33:06 ID:???
資料2
// 7.9 μs 7.9 μs "this is $foo[bar]";
// 14.4μs 14.3μs "this is {$foo[bar]}";
// 8.1 μs 8.2 μs "this is {$foo['bar']}";
// 5.5 μs 5.6 μs 'this is ' . $foo['bar'];
350nobodyさん:04/10/13 05:59:21 ID:I9UFXdzG
なんかスレ違いかもしれませんが許してください。

今、私2chの過去ログを保管するサイトを運営しているのですが、
スレの進行が結構速くて正直更新が大変です
それで、phpで、技術的には
この作業を全自動化することなんかはできますかね・・?

2chのスレ一覧を読み込み、そのスレだと思われるものを特定してログの取得を開始

1001まで行ったらそれを鯖側に出力 同時に次スレのログの取得も開始

出力されたスレへのリンクをhtmlに書き込む

こんな感じで・・・
Readだけだったら、2chは外部からの規制してませんし、いけそうな気がするんです
あ、「こういうPHPをください」っていってるわけではないので・・あくまでできるかどうかききたいんです
もしできるようでありましたら、ちょっと本買って本気でPHPの勉強しようかと思ってます
ちょっと来年あたりから現実が忙しくなるから、少しでも更新を楽にしようかと思いまして

ではよろしくおねがいします
351nobodyさん:04/10/13 06:23:21 ID:???
>>350
出来るよ。

但し、php"だけ"では無理だった希ガス。
・phpだけでやる場合
→何かトリガーになるページを置いてそこにアクセスするたびにスクリプト実行
但し、タイムアウトになる可能性がある。(マニュアルにそうならない方法は書いてあるけど)
・そうでない場合
→cronが使えるならそっちの方が確実だしタイムアウトもない。
352nobodyさん:04/10/13 09:19:32 ID:???
>>350
ログの取得を全自動にするつもりならPHPで作る意味はない。
Perl, Python, Rubyあたりでやるほうがいろいろな意味で楽。

それと過去ログ収集サイトはけっこうあるからどんな仕組みなのか
ひととおり見て回ったほうが吉。
353nobodyさん:04/10/13 09:47:04 ID:???
やっぱりPHPでGD使うやつって馬鹿ですか?
普通FlashやSVGとの連携でやりくりしますよね?
354nobodyさん:04/10/13 10:10:27 ID:???
じゃあそれ使ってろや坊主
355250:04/10/13 10:40:33 ID:???
GD使ったっぽい鯖ログのグラフとかってよく見かけるから
別に馬鹿ではないんじゃない?
356nobodyさん:04/10/13 10:49:41 ID:???
>>353
その根拠はなんだよ
357nobodyさん:04/10/13 10:58:22 ID:???
>>350
鯖の制約やプログラミングの経験がどんなもんかわからねーと何ともイエネ。
Subject.txtを取得して適当な単語を含むDatを選んでローカルと比較、更新されてるか初物なら取得、
デコードしてHtml化して保存、1000ならHtmlも更新、程度なら超簡単。HTTPの知識がネックか。
データ取得しっかりやると面倒だけど、最悪 $data = file('thread url'); でOK。この手軽さは泣ける。

リスト化したり人手を偽装したり検索なんかの活用も考えてスレタイの変更にも耐えて
間違ったの取得したら削除して、Html化待ちならログインしてテンプレートエンジンつかって
コメント受け付けてレスアンカー書き換えてJavascriptでポップアップしたりimu.nu置換したり
Htmlに改行つけたり〜みたいなことやりだすと糞面倒。

あとread.cgiから読み出すのは公衆道徳上よろしくないし、Htmlをパースすんのは面倒くさいと思う。
datはtransfer/contentエンコしたものしか取れないとかphp以外に2chの特殊な仕様の知識も必要に。
358nobodyさん:04/10/13 11:07:11 ID:???
MacromediaFlashが立地クライアントとしてブレイクするつーのは完全にガセだったな。
カールと比べてアレだけ普及しているにもかかわらずだから救えない。ColdFusionは専用言語を除いて悪くない製品だが。
はい手を引くのが遅かった負け組みですが何か。
359nobodyさん:04/10/13 11:15:13 ID:???
とりあえず松屋の牛めし食べてくるよ。
360nobodyさん:04/10/13 13:21:56 ID:???
ちょうどGDの話題なんで聞きたいんですが、
GDで円グラフとか折れ線グラフって描けます?
そもそもドロー描画できるんでしょうか?
361nobodyさん:04/10/13 13:42:06 ID:qHQqzIaw
パラメータがAだったら1 Bだったら2という風に変換したいんですが
if文やswitch文で一つずつ書く以外に簡単な方法ってないでしょうか?
362nobodyさん:04/10/13 13:44:49 ID:???
>>361
3項演算子
363nobodyさん:04/10/13 13:48:55 ID:???
>>360
jpgraphでも使ったほうがいいんじゃないの?
364nobodyさん:04/10/13 14:14:22 ID:???
jpgraはgdだね
365nobodyさん:04/10/13 14:15:17 ID:???
結構すじばってて歯ごたえあった。
366 :04/10/13 15:48:11 ID:???
php5のデフォではmysqlに接続できない仕様みたいですが、
接続する方法が分かりません。

教えてください。お願いします。
367nobodyさん:04/10/13 15:57:01 ID:???
お前はもういいよ。飽きた
368nobodyさん:04/10/13 16:04:37 ID:???
mb関数でエンコーディングの自動判別 'auto' は使わない方が安全という話をちらほら聞くのですが、
変換元のエンコーディングが不明の場合は、どのような対応をとればいいでしょうか?

変換対象は複数の項目があり、
文字長が長いものと短いものがあります。
エンコーディングは、複数の項目間では一緒です。

自分で考えた方法ですが、
mb_detect_encoding()で長い項目からエンコーディングを取得し、
全ての項目をそのエンコーディング扱いで、
mb_convert_encoding()してやろうと思うのですが。
369nobodyさん:04/10/13 16:20:22 ID:???
>>366
PHPのMySQL拡張(ついでにMysqliも)を有効にする。
370 :04/10/13 16:51:23 ID:???
>>369
繋げられたみたいです。ありがとうございました。

調べたらPHP5でのmysql接続出来ない状況は
多いみたいでした。
371 ◆.jC7ANgFY. :04/10/13 17:26:13 ID:???
>>350
私のサイトは30分ごとに取得作業を行ってる。

// 30分ごとに実行するプログラム
include_once(DIR . 'lib/2chpilot.phps');
$chp = new chpilot();
$chp->maxlog_get();

// 呼び出されるファイル
ttp://f9.aaacafe.ne.jp/~fcafe/fbox/lib/2chpilot.phps
// 中で呼び出されるHTTP接続ライブラリ
ttp://f9.aaacafe.ne.jp/~fcafe/fbox/lib/sock.phps

酷いプログラムだけど見てみるとよろし。参考までに。
372nobodyさん:04/10/13 19:43:23 ID:hDof3Q9h
特定のHTMLファイルを読んで、
その一部分をちょっと可変(brタグとか入れる)して他のHTMLに出力するのって簡単??
なんか>>350に似てるけどスレ読むわけじゃないです
自分のサイトの中のHTML読んで、同じく自分のサイトの中のHTMLに出力したいです
373nobodyさん:04/10/13 19:57:25 ID:???
>>372
超簡単。
374nobodyさん:04/10/13 19:58:15 ID:???
>>372
それはどうしてもPHPを使わなきゃダメなのか。
375340:04/10/13 20:02:13 ID:???
Perlと同じなんですね。答えてくれた人ありがとう。
376nobodyさん:04/10/13 20:06:23 ID:hDof3Q9h
>>373-374
まさかhtmlだけでもできるとかですか!?!?あqwせdrftgyふじこl
377nobodyさん:04/10/13 20:07:19 ID:???
SSI・・・
378nobodyさん:04/10/13 20:46:58 ID:???
もし、非常に基本的なことでしたら申し訳ありません。

モジュール版PHPで使っていた「virtual」関数が、CGI版PHPでは
使えないと知りました。
CGI版PHPの場合だと、別途で動作しているCGI(Perl)を、例えば
「sample.php」内で実行させることは不可能でしょうか?
それともPHPを諦めてSSIにしてしまう方がいいのでしょうか?
379nobodyさん:04/10/13 21:01:43 ID:hDof3Q9h
>>377
SSIって、読み込んだ部分を弄って出力できるんですか?
380nobodyさん:04/10/13 21:09:08 ID:wYSmj1/u
皆さんがオススメするPHP勉強の書籍おしえてください
ちなみにPHPは一切しりません 1からです(´・ω:;.:...
381軟式PHP:04/10/13 21:11:33 ID:q2MkK+Af
PHPマニュアル
382nobodyさん:04/10/13 21:13:18 ID:???
383nobodyさん:04/10/13 21:43:38 ID:???
たとえばこんな処理↓があった場合、
<input type="text" name="name" value="'. $_COKKIE["hoge"] .'" />

フォームの初期値に、クッキーの値が入った状態で表示されると思うんですが
この時点でクッキーの値は、サーバー←→クライアント間を渡ってますか?
384nobodyさん:04/10/13 21:51:50 ID:???
( ゚Д゚)・・・
385nobodyさん:04/10/13 22:28:12 ID:???
>>383
いや意味わからんて。
クッキーもブラウザの表示もクライアント。
サーバーってのは見えないところで動くものだよ。
386383:04/10/13 22:29:38 ID:???
ネスケみたいにIDやパスが始めから記入された状態になるのを
IE6でやりたかったんですが、クッキー値の表示がクライアント側だけで処理されてるなら
この時点ではSSLとか通さなくていいなー、という願望があったんですけど……

まあ、普通に渡ってますよね。すいません。
387nobodyさん:04/10/13 22:36:17 ID:???
あ、レス重なっちゃった……

サーバーが、一旦クライアントのクッキーを取得してから、それごとブラウザに出力してるのか、
『ここに$COKKIE["hoge"]の値を入れろ』って命令だけをクライアントに出力してるのか聞きたかったのです。

質問がまとまってなくてすいません。
388nobodyさん:04/10/13 23:15:07 ID:cB7iGFRX
PHPが動作しているのがサーバとクライアントのどちらなのかを考えれば
すごく簡単なことだけど。
ブラウザに対してPHP言語で命令したところで、ブラウザが正しく解釈して動作するとでも思う??

HTTPヘッダの勉強も合わせてオススメしておきます。
389nobodyさん:04/10/14 00:03:21 ID:DAgLrERP
Tomcat上でPHPを動かすにはどのようにすればいいでしょうか?
390nobodyさん:04/10/14 02:26:40 ID:???
>>383
とにかくクッキーが何であるかをまず勉強して欲しい。
まあ、君の書き込みを見てカタルシスを得ている輩もいるようだが。
391nobodyさん:04/10/14 04:12:14 ID:???
(´-`).。oO(cookieなのに・・・という突っ込みは野暮だから止めておこう・・・)
392nobodyさん:04/10/14 06:11:43 ID:???
>>350
【合法】【スクリプト】【PHP】【2ch】2chまとめサイト用、現在進行スレ自動リンク.zip Q0Wcfwt4o8 2,494 be17b15acfb4910cb1aab0225201f9ea
393nobodyさん:04/10/14 10:07:39 ID:O0i9cJSU
<?php
$a="太郎";
$m="{$a}さん、こんにちは。";
print $m;
?>
これは、「太郎さん、こんにちは。」って表示されますよね。
この、$mの部分を別ファイルに書き出して、
m.txtとかにして、
<?php
$a="太郎";
$m=file("m.txt");
print $m[0];
?>
としても、うまくいきません。
「{$a}さん、こんにちは。」とそのまま表示されます。
これを、{$a}が変数に展開されるうまい方法はありませんか?
394nobodyさん:04/10/14 10:19:54 ID:???
395nobodyさん:04/10/14 10:20:45 ID:???
>>376
いいからPHPでやってみろ。
できなかったら質問しろ。
396nobodyさん:04/10/14 10:21:22 ID:???
>>394
次の質問はパーサエラーかなw
397nobodyさん:04/10/14 11:26:05 ID:???
OOで書かれたソースを読んでいたら、なんか $this に代入してるコードに
でくわしました。これは途中で自分が切り替わったりするんでしょうか?
398397:04/10/14 11:27:07 ID:???
読んでいたソースというのは PukiWiki です。
399軟式PHP:04/10/14 11:34:46 ID:???
俺はどうも""の中に直で変数書くのが嫌だなぁ。
$a = "{$a}さん、こんにちは。";
より
$a = $a."さん、こんにちは。";
としてしまうよ。まぁ、どっちでもいいんだけど。
400nobodyさん:04/10/14 11:41:56 ID:???
そうだな
401nobodyさん:04/10/14 12:08:20 ID:???
>>394
evalで出来ました。トンクス!
ちょっとエスケープする文字が多いのが
めんどっちい感じだけど。例も
そうなってるから、仕方ないね。

>>399
Smartyとかのテンプレートでやってるみたいに、
メッセージの記述とロジックの部分を分離
したいんですよ。
そうすれば、m.txtを書き換えるだけで、
「春ですね、{$a}さんはどこかへ行きましたか?」
とかに変更できるでしょ?
402軟式PHP:04/10/14 13:01:34 ID:???
>>401
いや別にやりたいことがわからない訳じゃないよw
データ・ロジックの分離なんて基礎中の基礎だし。
コーディングの違いということです。まぁ、本当どっちでもいいことだから気にせず。
403nobodyさん:04/10/14 14:09:58 ID:???
>>401
SmartyみたいなことやりたいならSmarty使えばいいのでは?
と思ってしまう俺は負け組?
404389:04/10/14 15:09:31 ID:TTA2I0is
誰かやってる人いませんか?
405397:04/10/14 15:16:01 ID:???
>>404
Tomcat上でPHPを動かせると思った理由を聞いてみたい。
406nobodyさん:04/10/14 15:19:26 ID:???
Smartyはめちゃめちゃロジック書けるけどね。
つーかビュー側でEvalして変数展開ってすげー無駄だ罠。
コンパイルされてて処理があるならともかくエコーしてテキストを
取り出すだけって、、、そういうのもテンプレートって言っていいのかどうか。

>>398
つーことはpukiはphp5では動かんね。やはり無茶はよくない。
407nobodyさん:04/10/14 15:31:48 ID:???
>>403
こういうのはsmartyの仕事じゃないと思われ
本来、piたるphpそのものの範疇かと
程度問題ですけども

>>406
2重処理くさくもあるが、viewでやってるとは限らない罠
408nobodyさん:04/10/14 15:34:00 ID:???
>>405
単体でも簡易的なhttpdの機能があるからそう思ったんじゃないの?
「上」では無理。CGIを使った連携は…出来たっけ、アレ。
409nobodyさん:04/10/14 16:42:23 ID:???
PEARのMDBを利用しているのですが、
excuteMultipleで値を格納すると、値が文字化けしてしまうのですが、
queryで値を格納すると、文字化けせずに正常に実行できます。

他のスクリプトではこんな現象はなく、格納しようとしている文字列と
DBの文字コードは一致しています。

何か考えられる原因はあるでしょうか?
410nobodyさん:04/10/14 16:49:18 ID:???
>>407
ご推察の通り、viewではないのです。
411nobodyさん:04/10/14 16:54:46 ID:???
>>407
そもそも「こういうの」ってのは、デザインとロジックの分離の話ではないのか?
412nobodyさん:04/10/14 17:25:04 ID:???
俺も401を読むに実際にやってることは全然違うんだろうな・・・と
413nobodyさん:04/10/14 17:37:03 ID:???
>>412
>ちょっとエスケープする文字が多いのがめんどっちい感じだけど。

怪しいのはここら辺?
414nobodyさん:04/10/14 17:42:38 ID:???
たまにPHPなんだからテンプレートいらねーよって言う人いるけど、逆は初めて見たw
わざわざ無駄なことしなくてもいいのに

>>409
executeQueryメソッドが怪しい。何がどう化けてるのか知らんが
415nobodyさん:04/10/14 18:20:08 ID:???
mysql_escape_string って addslash や magic_quotes と何か違うんですか?
416389:04/10/14 18:20:38 ID:TTA2I0is
>>405
CGIが動くみたいなのでそれならPHPもいけるかと
思ったのですが
417nobodyさん:04/10/14 18:27:00 ID:???
>>415
もちろんでつ
418nobodyさん:04/10/14 18:28:03 ID:qGGw0aZU
FreeBSD で ports を使って PHP4 をインストールしようと思うのですが、
・lang/php4, www/mod_php4, www/php4-cgi ってどう違うの?
・とりあえず lang/php4 をインスコしたんだけど、"Premature end of script" って出るんですが・・AddType は書いた気がするし、php.iniも作った気がする。

FreeBSD 5.2.1-R, Apache 2.0.49, PHP 4.3.9 っぽいです。チェックポイントなど教えて下さい。
419405:04/10/14 19:11:47 ID:???
>>414
VALUESを収めた配列がおかしかったのが問題だった。
確認ミス。
420nobodyさん:04/10/14 19:13:07 ID:???
>>416
「CGIが動く」ならPHPも動くでしょ。それもCGI(のSAPIのPHPなら)なんだから
tomcatが動く環境でありながら、PHPが動かない環境は多分無い。
ビルド済みのバイナリが用意されてる/されてないはあるかも知れんが。
421nobodyさん:04/10/14 20:10:02 ID:???
>>397
$this 、つまりインスタンスは別のものに置き換わる。
滅多に目にしないが、一体どんな目的のコードだ?
422nobodyさん:04/10/14 20:21:12 ID:???
>>421
「滅多に目にしない」ということは、たまに見るのか?
423nobodyさん:04/10/14 20:47:49 ID:???
>>422
PEARパッケージのコードの話ですが、コンストラクタから別のメソッドを呼び
出すような場合に、エラー発生時はPEAR_Errorまたはそのサブクラスのインス
タンスをセットして返すという方法が、以前はよく使われていました。
その方法ではPHP5でエラーになるため、最近は使われないようになってきてい
ます。
424nobodyさん:04/10/14 22:54:39 ID:QAwUm/MO
2004-10-13T02:19:16+09:00
↑のような、blogで使われる日付を複数とって
どちらが新しいか?を比べたいのですが、
1文字1文字比較する以外の方法があるでしょうか?
javaで(int)2004-10-13T02:19:16+09:00みたいな。
425nobodyさん:04/10/14 23:02:21 ID:???
>>424
あるよ

PHP: 日付・時刻関数 - Manual
http://jp2.php.net/manual/ja/ref.datetime.php
426424:04/10/15 00:06:21 ID:r1Bc5wsz
>>425
strtotimeですね!
ちょー便利!
ありがとう。
427nobodyさん:04/10/15 00:09:50 ID:???
>>414
煽りではなく、PHPのテンプレートエンジンだかを使う人って
自分の理解の浅さを理解したほうがいいですよね?
include()とか超々基本的な技法すら理解できてないから、
テンプレが有用だと思えてしまうということを気づいて欲しい。
428 :04/10/15 00:11:17 ID:???
>>427
規模による
429 ◆.jC7ANgFY. :04/10/15 00:16:55 ID:???
>>427
私は出力コントロールを使ってスキン適用してる。
mod_layout使おうと思ったけど面倒で、

でもやっぱり分けれたほうが楽だからさ。
テンプレートエンジンは使ってないけど大まかにはわけてるよ。
プログラム部分とデザイン部分とで。
430nobodyさん:04/10/15 01:30:24 ID:???
テンプレートまんせ〜
431 :04/10/15 01:37:47 ID:???
PHP Warning: Unknown(): (null): Unable to initialize module
Module compiled with module API=20040412, debug=0, thread-safety=1
PHP compiled with module API=20020429, debug=0, thread-safety=1
These options need to match
in Unknown on line 0

↑こんなんでましたけど、何でしょう
432nobodyさん:04/10/15 02:26:53 ID:???
>>431
ん〜、見たことないエラーだけど予想してみる。
モジュールを動的に組み込んでたりする場合に出そうな予感。
というわけで、動的に組み込んだモジュールをもう一回入れ直すべし!

あと、OSくらいは書いて欲しかった。
WindowsとLinuxとかでは設定の仕方が全然違うから。
433 :04/10/15 02:53:17 ID:???
>>432
すみません
OSはWindows
PEARをいじってたら出ました
PHP5です
434nobodyさん:04/10/15 02:59:25 ID:???
dllのバージョンコンフリクト
435ポルコ:04/10/15 12:07:20 ID:FVcyWQqo
みなさまに質問です条件検索をかけて
ポストグレーSQLを用いてサーバーからデータを取り出すプログラムを
作成してるのですが検索結果が一つのページに全部出てしまうので
10件づつ表示したいのですがどうもうまくいきません
仕様OSはリナックスのレッドハットです
一応PHP部を記しておきます
<?php
$name = "syusyoku";
$use = "postgres";
$con = pg_connect( "dbname=$name user=$use");
$d1 = "kigyoudata";
$d2 = "kyuujindata";
$se = "所在県";
$se2 = "会社コード";
$cheacka = 0;
$query = "SELECT * FROM \"$d1\" where \"$se\" like '%$_POST[ken]%'";
$rs = pg_query($con,$query);
$maxrows = pg_num_rows($rs);
$maxcols = pg_num_fields($rs);
$goukei = $maxrows;
//表示♪
echo("<P align=\"center\">");
echo("$_POST[ken]");
echo("について検索しました。");
echo("</p>");
436ポルコ:04/10/15 12:12:02 ID:FVcyWQqo
if($maxrows==0){
echo("<P align=\"center\">");
echo("残念ながら当データーベースには該当の企業はありませんでした。");
echo("</p>");
echo("</FORM>");
echo("</BODY>");
echo("</HTML>");
}else{
echo("<P align=\"center\">");
echo("$maxrows");
echo("社の登録を発見しました。");
echo"</p>";
for ($row = 0; $row < $maxrows; $row++) {
$rowdata = pg_fetch_row($rs, $i);
$query2 = "SELECT * FROM \"$d2\" where \"$se2\" like '%$rowdata[0]'";
$rs2 = pg_query($con,$query2);
$rowdata2 = pg_fetch_row($rs2,$i);
if($rowdata2[25]==f){
437ポルコ:04/10/15 12:17:20 ID:FVcyWQqo
}else{
echo"<TABLE BORDER=\"1\" WIDTH=\"700\">\n";
echo"<tr>";
if($cheacka==0){
echo"<td width=\"20\"></td>";
echo"<td width=\"80\">";
echo"会社コード";
echo"</td>";
echo"<td width=\"145\">";
echo"会社名";
echo"</td>";
echo"<td width=\"145\">";
echo"カイシャ名";
echo"</td>";
echo"<td width=\"200\">";
echo"ホームページ";
echo"</td>";
echo"</tr>";}
echo"<td width=\"20\"><input type=radio name=kensaku value=$rowdata[0]></td>";
438ポルコ:04/10/15 12:18:28 ID:FVcyWQqo
echo("<td width=\"80\">".htmlspecialchars($rowdata[0])."</td>");
echo("<td width=\"145\">".htmlspecialchars($rowdata[1])."</td>");
echo("<td width=\"145\">");
echo("$rowdata[2]");
echo("</td>");
if($rowdata[27]==NULL){
echo("<td width=\"200\">");
echo("登録されていません");
echo("</td>");
}else{
echo("<td width=\"200\">");
echo("<A href=\"$rowdata[27]\">");
echo("$rowdata[27]");
echo("</a>");
echo("</td>");}
echo("</tr>");
echo"</TABLE>";
$cheacka = $cheacka+1;}}}
439ポルコ:04/10/15 12:19:53 ID:FVcyWQqo
if($cheacka==0){
if($maxrows==0){
}else{
echo("<P align=\"center\">");
echo("残念ながら今年は、求人がありませんでした。");
echo("</p>");}
echo("</FORM>");
echo("</BODY>");
echo("</HTML>");
}else{
echo"以上";
echo"$cheacka";
echo"件の求人があります。";
echo("<br><center><INPUT type=\"submit\" name=\"送信\" value=\"詳細検索\"></center></CENTER></FORM></BODY></HTML>");}
?>
長々とプログラムを貼って申し訳ありません。あと汚いソースで申し訳ないです
ご教授の方お願いいたします
440nobodyさん:04/10/15 12:29:17 ID:???
おまいら
Zend Studio 3.5 日本語版リリースですよ〜!
441nobodyさん:04/10/15 12:33:03 ID:iLe5NUwS
phpってhddのsmart情報拾ったりできるんでつか?
osはfedracore2なんだけど
442nobodyさん:04/10/15 12:36:49 ID:???
>>435
まずさ、ポストグレーとか検索とかはどうでもいいからさ、

<?php
$list = array("いか","たこ","くらげ");


?>
海の生き物の例 <?php echo ?????? ?> <br>
<a href="????">prev</a> <a href="????">next</a>

みたいなかんじでさ、いか、たこ、くらげを
ひとつづつ表示して prev と next で進んだり戻ったり
するようなプログラムをどう書くか、考えてみなよ

443nobodyさん:04/10/15 12:58:02 ID:???
「どうもうまくいきません」か・・・。
444nobodyさん:04/10/15 12:58:03 ID:???
>>435
LIMITとOFFSET使え。
あとは>442の言うとおり。
445nobodyさん:04/10/15 13:38:17 ID:???
<body onUnload=window.open('http://www.google.co.jp/'); self.blur();>
というのと同じ動作をphpでさせることは可能でしょうか?
446ポルコ:04/10/15 13:47:20 ID:FVcyWQqo
ご親切にありがとうございました
チャレンジしてみます
447nobodyさん:04/10/15 13:51:56 ID:???
echo "<body onUnload=window.open('http://www.google.co.jp/'); self.blur();> ";

釣られた?
448nobodyさん:04/10/15 14:21:08 ID:???
phpってそのままhtmlに入れて動くんですよね?
>>447さんの物を入れて試したけど動作しない
(´・ω・`)ショボーン php初めて出しよくわからない
449nobodyさん:04/10/15 14:25:15 ID:???
知識なさすぎる。
450447:04/10/15 14:32:27 ID:???
>448
まずはjavascriptとphpがそれぞれどこで動作するか区別する所
から始めるのが良いのではないかと

もしかすると、phpをインストールするところから話をしないと駄目?

釣りではなければ
451nobodyさん:04/10/15 15:01:49 ID:???
いや、どう考えてもHTMLも理解できていないでしょ。
452軟式PHP:04/10/15 15:15:19 ID:???
いや、どう考えても何もインストールされてないHTMLファイルをメモ帳で
作って、それにPHPタグを埋め込んでウゴカネーって言ってるでしょ。
453軟式PHP:04/10/15 15:15:45 ID:???
【修正】何もインストールされていないマシンで↑
454447:04/10/15 15:51:16 ID:???
>448
1.適当なページをぐぐって、apacheとphpをインストール。以下、このページを参照したことにする
ttp://y-kit.jp/saba/xp/apachexp.htm
ttp://y-kit.jp/saba/xp/phpsetup.htm
2.test1.phpを作って、test.php と同じフォルダに置き、http://localhost/test1.php にアクセスして確認
<?php
echo "<body onUnload=window.open('http://www.google.co.jp/'); self.blur();>hogehoge</body>";
?>
3.以下の場合はさっさと諦めること(←一番重要)
・参考ページのバージョンが最新版と違うのでインストールできない
・「やってみたけどできません」とレスをしたくなる
・そもそもナニが書いてるか判らない
455nobodyさん:04/10/15 16:14:21 ID:???
>>454
参照するページがよろしくないと言ってみる:)
456454:04/10/15 16:21:28 ID:???
そなの?
「php インストール windows」でぐぐって、SSがたくさんある最初のページを
選んだんで、細かくは見てないんですよ
良い所があったら紹介きぼん
457 :04/10/15 16:41:06 ID:???
php5 使いにくくない?
php4のほうが良くない?
458nobodyさん:04/10/15 16:51:08 ID:???
OOP出来ないカスがPHP5使ってんなよ。
459 :04/10/15 17:16:43 ID:???
>>456
458だそうです。分かるよね?
460456:04/10/15 17:30:54 ID:???
あー、「最新版を使え」と言ってるんじゃなくて、
「『phpのページに飛んだら、最新版が4じゃなくて5になってるから
インストールできない』と思うんだったら、さっさと諦めろ>448」
という意味のつもりだったんだが。

まだ勘違いしてる?
461nobodyさん:04/10/15 20:30:37 ID:???
引きこもってないで学校行け
462441:04/10/15 20:33:55 ID:DyYDEcBK
なんだよ能無しの烏合の衆だな
463nobodyさん:04/10/15 20:47:21 ID:???
文句言わずに質問に答えろや。
じゃなきゃだまっとれ。
464441:04/10/15 20:57:28 ID:???
>463
さっさと答えろボケナス
465nobodyさん:04/10/15 21:41:38 ID:???
466nobodyさん:04/10/15 21:55:57 ID:???
http://php.s3.to/net/#rss
−RSSトピックス−ってのは動作するけど
−RSSブロガー−ってのが動作しないんです。
エラーが
Fatal error: Failed opening required 'XML/RSS.php' (include_path='.:/usr/share/pear') in /home/webuser/arckd/public_html/php/rssv.php on line 4
一応、XMLの文字を削除してみるも今度はline11でエラー。
こういう場合ってどうすればいいですか?
サーバーはこれ
http://box.elsia.net/
467nobodyさん:04/10/15 21:59:06 ID:???
>>466
pearからrssおよび上流パッケージを拾ってきて設置、インクルードパスを置換して完成だ馬鹿野郎
468441:04/10/15 22:05:10 ID:???
>465
thanks!
469nobodyさん:04/10/15 22:15:17 ID:???
>>441

クソして寝ろカス
470nobodyさん:04/10/15 22:27:16 ID:3cA5pXC+
>>467
おお、やさしいじゃねーかこの糞野郎!

471nobodyさん:04/10/16 10:44:55 ID:???
Linux系にPHPをCLIとCGI両方入れたけど
CLIはsafe_modeをon
CGIはoffにするときはみんなどうやってる?
472nobodyさん:04/10/16 10:59:56 ID:???
>>471
CLI版の PHP は -c オプションで読み込む php.ini ファイルの位置を指定できるので、
php.ini ファイルをどこかにコピーして、CLI版の PHP では -c オプションを指定して
使用するというのはどう?
473472:04/10/16 11:06:21 ID:???
補足。
CGI版の PHP でも -c オプションで読み込む php.ini ファイルを指定できた。
474nobodyさん:04/10/16 12:26:07 ID:OW4RwqwJ
アップロード処理するときにupfileにURLが入力された場合
その文字列をそのまま記録(サーバーにコピーしない)したいのですが
$_POSTにも$_FILESにもURLは格納されません
取り出す方法ってありますか?
475nobodyさん:04/10/16 12:27:55 ID:???
>>474
ごめん、よくわからないから手順を追って説明してくれる?
476nobodyさん:04/10/16 13:21:46 ID:???
>>474
アップロードの為のフォームだけでは無理だから
JavaScriptを使って隠しフィールドにリアルタイムで値をコピーする
477474:04/10/16 13:49:33 ID:???
只のローカルパスはいりません
478nobodyさん:04/10/16 14:16:11 ID:???
???
479nobodyさん:04/10/16 14:47:15 ID:???
フォームの内容をエンターを押したときも送信するようにするには
やっぱJSしかないんでしょうか?
480nobodyさん:04/10/16 15:23:21 ID:???
PHPの質問じゃあないよね?そこんとこ理解してる?
481nobodyさん:04/10/16 15:27:49 ID:???
>>480
ウザイ
482nobodyさん:04/10/16 15:37:47 ID:???
>>481
フセインの息子だっけ?
483nobodyさん:04/10/16 15:40:40 ID:???
>>483 正解!!
484nobodyさん:04/10/16 15:40:44 ID:???
>>479
その程度のことは自分でいろいろ試してマスターせなアカンよ
485nobodyさん:04/10/16 18:23:29 ID:???
>>472-473
なるほど!
親切に教えてくれてありがとう。
486nobodyさん:04/10/16 18:44:21 ID:QWFCEoci
Apache+PHP なんですが
ユーザー認証した後の画面にてある一定の時間がたつと
強制ログアウト みたいな処理を行いたいのですが
どうすればいいのでしょうか?セッションでいけます?
487nobodyさん:04/10/16 18:47:49 ID:QWFCEoci

>ユーザー認証した後の画面にてある一定の時間がたつと
 認証後のページで何も操作が行われていなくて一定の時間がたつと

 です。すみません。あと認証方法はなんでも結構です。
488nobodyさん:04/10/16 19:02:43 ID:???
>>486
session.max_gc_lifetime
489nobodyさん:04/10/16 20:54:21 ID:M6muWICI
phpのエクステンションの開発について説明しているサイトってマニュアルぐらいしかないですかね?
ぐぐっても適当なのがなくて。
490nobodyさん:04/10/16 20:59:36 ID:???
適当なの、か。
491nobodyさん:04/10/16 21:03:49 ID:???
devからけっこう辿れるけど
492nobodyさん:04/10/16 21:06:49 ID:M6muWICI
>>491
あぁ、そか。
ありがと。
探してみる。
493nobodyさん:04/10/16 21:39:27 ID:???
>>489
http://www.phppro.jp/backnumber/issue/200401/

サイトだと探した時は英語ならそこそこあったけど、
一番参考になったのはちんまい既存のエクステンションのソース。
494nobodyさん:04/10/16 21:59:39 ID:???
LinuxとかWindowsの環境に依存せず、
特定のフォルダの内容をリストアップして、
順番にincludeするには、どうしたらいいでしょう?
495nobodyさん:04/10/16 22:00:28 ID:M6muWICI
>>493
ありがとう。

やっぱ、この雑誌を講読しようかなぁ・・・・・
目次を見る限りではよさげなんで。
496nobodyさん:04/10/16 22:13:27 ID:5/6cL4VE
同じプログラムを何人もの人が利用する場合、
内部では共有されているのでしょうか?
全部別だとかなりメモリの無駄遣いになる気がするのですが、
そのあたりどうなんでしょう。
497nobodyさん:04/10/16 22:55:29 ID:???
>>494
特定のフォルダの内容をリストアップして順番にincludeすればいいじゃない

正直何処が分からんのか分からん
やりたいこともはっきりせんし
498nobodyさん:04/10/16 23:18:43 ID:???
>>494
dir

かなー?
499nobodyさん:04/10/16 23:43:30 ID:???
>>494
マニュアルの opendir(), closedir(), readdir() を見れ
500nobodyさん:04/10/17 01:21:37 ID:???
PHPのflock()なんですが、Perlでflock()したファイルに対しても有効ですか?
501nobodyさん:04/10/17 02:10:17 ID:???
んなわけねーだろ
502nobodyさん:04/10/17 09:27:21 ID:jarDWpEx
uniqidの説明によると、

いくつかのホスト上で同 時にIDを生成させる場合、
全く同じミリ秒のIDが生成されるのを防ぐの にprefixが有用です。

とのことですが、同一ホスト上で実行した場合は、
かならずユニークになる、ということでしょうか?
ミリ秒&スレッド(?)違いで、
2038年まで
すべて違うID(同一ホスト上では)が生成されるのでしょうか?
503502:04/10/17 09:38:39 ID:???
計算してみたら
128ビット=
3.4028236692093846346337460743177e+38
種類、ということなので(もう位の呼び名もわからない)
同一ホストなら完全にユニークな、
またプレフィックス違いの他ホストで生成してもほぼ間違いない程度のユニークさ、
くらいは保証してそうですね…
504 :04/10/17 14:27:45 ID:???
三百四十澗二千八百二十三溝(以下略
505nobodyさん:04/10/17 14:34:30 ID:???
>>500,501
PHPとPerlが同じシステムコールの FLOCK(2) を使っていれば有効
どちらかが別のことをしていたら無効
ソースを見てないからなんともいえないけど
506nobodyさん:04/10/17 14:55:47 ID:???
PHPの方は ext/standard/file.cの中で C言語のflockを呼び出している。
perlの方は知らん。
perlコーディングスレの方で答えている人のように自前でロックファイル等を実装するのが良かろう。
507nobodyさん:04/10/17 15:32:28 ID:???
>>501がさりげなくアホなのに笑った
508nobodyさん:04/10/17 17:42:51 ID:???
>>501=>>507
ツマンネ
もう少しうまくやってくれ


はい次
509nobodyさん:04/10/17 18:08:30 ID:???
今日はヘルシーチキンカレー
510nobodyさん:04/10/17 22:43:21 ID:???
カレー(゚Д゚ )ウマー
511カポコン:04/10/17 23:38:14 ID:???
ウンコーーーー
512nobodyさん:04/10/17 23:52:00 ID:Khjpd2op
文字列を数値に変換するにはどうすればいいんですか??
513nobodyさん:04/10/17 23:53:39 ID:???
何が釣れますか
514nobodyさん:04/10/18 00:24:14 ID:???
intval だろうなぁきっと
515nobodyさん:04/10/18 00:37:58 ID:v+mK9r/2
めっちゃありがとうございました
516mitsu:04/10/18 01:04:21 ID:UsXTjS7N
mysqlとphpでデータベースを作っていますが初心者なので一つ
教えて頂たいことがあります。
検索結果から名前をクリックすると詳細ページにジャンプ
したいのですが
タグ、方法がわかりません。
やりたいことは自宅サーバーで店舗管理をしているのですが
各店舗のTOPページを開きたいのです。
例えばhttp://***.com/店舗名でジャンプができるような設定を
教えて頂けますでしょうか?
517nobodyさん:04/10/18 01:07:39 ID:???
>>516
設定とかタグとかじゃないので、
自分でそのような動作をするスクリプトを作成してください。
1. 検索するためのスクリプト
2. 詳細表示するためのスクリプト
518nobodyさん:04/10/18 01:29:21 ID:???
質問も解答も完全にネタスレ化したなw
519無名人:04/10/18 04:13:03 ID:???
Fatal Error
Error fopen(): SAFE MODE Restriction in effect. The script whose uid is 10182 is not allowed to access /virtual/アカウント名/public_html/ディレクトリ名/data/html owned by uid 1000
From /virtual/アカウント名/public_html/ディレクトリ名/common.php line 153

だれか助けてください。
なんのエラーなのかさっぱり。。
520 :04/10/18 04:21:47 ID:???
英語直訳すれば
*ファイルオープンエラー

SAFEMODEの為、ファイルオープンが制限されてます。
521 :04/10/18 04:25:29 ID:???
詳しくはマニュアル
http://php.planetmirror.com/manual/ja/features.safe-mode.php

所有者と違うIDでファイルを開こうとしたんだろう
522無名人:04/10/18 04:29:06 ID:???
こんな夜中に回答ありがとうございます。
がんばって解決したいと思います。
523nobodyさん:04/10/18 08:32:05 ID:???
>>516,517
例えばPostgreSQLだとoidで関連づけるのが
多くの本に載ってるけど。MySQLだと、
どうするんだろうね?私も知りたい。
524nobodyさん:04/10/18 08:37:10 ID:???
>>523
oidに頼るのもどうかと思うが。
自分で一意なID振っとけばいいじゃん
525nobodyさん:04/10/18 13:52:07 ID:???
aaacafeに設置したphpスクリプトがはき出したファイルやディレクトリがnobody権限になってしまって
FTPなどで消せなくなってしまったのですが、セーフモードでも使用出来るファイル削除などのファイルマネージャースクリプトを探しています。
宜しくお願いします。
526nobodyさん:04/10/18 14:43:49 ID:???
>>525
板違い。
【CGI】こんなCGI探してますver.15
http://pc5.2ch.net/test/read.cgi/hp/1097762828/l50
こっちのテンプレをよく読んで自分で探してから聞け。
527nobodyさん:04/10/18 16:04:19 ID:YHb3Wttz
Linux上から別PCのMSSQLに接続したいと思い
とりあえずiodbcとやらを入れたりしたのですがわけわからんw
何かわかりやすいサイトとかないでしょうか?

528nobodyさん:04/10/18 16:38:04 ID:???
529nobodyさん:04/10/18 21:42:39 ID:???
>>528死ねよ厨房
530nobodyさん:04/10/18 22:13:53 ID:???
>>524
しかしさ、膨大なデータにID割り振ったら、溢れない?

例えば、毎日お客が1000人来て、一人につき10個買い物。
すると1日で10000件のデータ。1ヶ月で30万件のデータ。
1年で365万件のデータ。
これにID割り振ってても、大丈夫なんかい?
531nobodyさん:04/10/18 22:41:09 ID:wrtSnmi9
PHPがなにものなのかもよく知らないアホだけど、
オフライン(デスクトップ上)でPHP動かすこと出来る?
532nobodyさん:04/10/18 22:42:52 ID:???
日時、IP、乱数(高精度)等を組み合わせるとかすれば重複するこた無いだろ。
533nobodyさん:04/10/18 22:43:05 ID:???
>>531
できるよ
534nobodyさん:04/10/18 22:43:25 ID:f8ni8jYW
a:link
{
 color:#215dc6;
 background-color:inherit;
 text-decoration:none;
}

という文字列を

$parameter
{
 $property[0]:$value[0];
 $property[1]:$value[1];
 ...
}

という風に変数に置き換えたいんですけど
なんか良い字句解析の関数ないですかねー。
535nobodyさん:04/10/18 22:51:27 ID:???
>>530
>>532
データベースですよ?
536nobodyさん:04/10/18 22:58:29 ID:???
>>533
どうやって使うんだべ?

他にやること大量にあるので
1からphp勉強するのは時間の無駄なので、気軽に使いたいべ。
537nobodyさん:04/10/18 23:03:08 ID:???
538nobodyさん:04/10/18 23:05:10 ID:???
ありがとうずら
539nobodyさん:04/10/18 23:07:43 ID:???
>>535
データベースだから、∞のIDを格納できるとでも?

>>532
そうすると、キーになるいくつもの情報を必ず
ブラウザに送っておく必要が出てくるでしょ。
キーの構成要素が増えるほど、スクリプトで
処理する部分が増えるわけだが。
これを、>516の様に、さくっと詳細表示の
データを呼び出すのは面倒にならないか?
540nobodyさん:04/10/18 23:25:08 ID:???
>>539
普通、primary key は auto_increment にするんじゃないの?

で、primary key を where に指定すればその店舗だけ表示とか簡単だと思うんだが。
541nobodyさん:04/10/18 23:36:32 ID:???
>>539
大抵は>>540のやりかたかと。4バイトシリアルなら1〜振れば42億まで振れるから
1年で365万件でも1000年以上足りる計算。
これを他のフィールドと絡めてインデックス作っとくほうが下手な乱数振るより検索も速いはずだけど。
542nobodyさん:04/10/19 00:12:59 ID:???
てかPHP関係無いじゃん…
543nobodyさん:04/10/19 00:31:08 ID:???
>>539
> そうすると、キーになるいくつもの情報を必ず
> ブラウザに送っておく必要が出てくるでしょ。

っていうか、なんでブラウザに送る必要があるんだ?
全部サーバ側で取れるものばかり。
544536:04/10/19 00:35:41 ID:???
やっと動いたべ。
ではではこれからpukiwakiをデスクトップで動かすべ。
545nobodyさん:04/10/19 00:40:29 ID:???
>>544
(;´д)waki!?(´д`)ワキ…(д`;)
546nobodyさん:04/10/19 00:51:23 ID:???
ブィィィィィン
547nobodyさん:04/10/19 01:48:08 ID:???
普通に4byteの連番でいいよ。
何かひっかかるならUUIDでも使え。
PHPにUUID関係のライブラリあるのか知らんけど。
548nobodyさん:04/10/19 01:51:29 ID:???
>>539
プw
549nobodyさん:04/10/19 01:56:26 ID:???
>>539
あー、こういう事言う人たまにいるよな。
IDには無限大が必要と思い込んじゃう人。
550nobodyさん:04/10/19 02:02:19 ID:???
>>547
UUIDライブラリあるよ。
ttp://pecl.php.net/package/uuid
でも、普通に連番か標準のuniqidで十分だと思うけどね・・・。
551nobodyさん:04/10/19 04:59:04 ID:???
Apacheのmod_unique_idは使えねーの?

>このモジュールは非常に制限された条件下で、 それぞれのリクエストに「すべて」の
>リクエストに対して 一意に決まることが保証されている魔法のトークンを提供します。

らしいけど俺は使ったこと無い。
552nobodyさん:04/10/19 07:23:26 ID:???
>>534
さりげなく放置されてるが…(w

':'でexplode
正規表現

この2つの組み合わせ(もしくは正規表現のみ)でいけそうやね。
553カポコン:04/10/19 12:35:28 ID:???
よぉ、ネ タ が 途 切 れ て る み た い な ん で 振っとくよ。
PHPではポインタの中身は見れないんだよな〜。
見たいなー見たいなー、見れる方法あればきぼんなんだな〜。
<?php
$a = 0xff;
$b =& $a;
echo(printf("%p",$b));
?>
とかじゃー、出ないし・・・orz。
554nobodyさん:04/10/19 12:46:54 ID:???
>>544
これであのorgドメインなところでwikiが動いていたら笑っちゃうが、
555nobodyさん:04/10/19 14:06:53 ID:???
>>553
でるよ ネタ振りなので おわり
556nobodyさん:04/10/19 14:20:56 ID:???
カポコン、マジうざいんだけど。
557nobodyさん:04/10/19 14:24:17 ID:???
<?php
$a = new foo();
$a = new hoge();
?>
としたら、fooのインスタンスは
どこへ行くの?
もうアクセスできないんだよね?
558nobodyさん:04/10/19 14:33:15 ID:???
&で作ればいいじゃんヴぉけが。
559nobodyさん:04/10/19 15:33:17 ID:W4DmTRC6
PHP4で、
shell_exec("cp /var/log/httpd/access_log /home/homepage/public_html/log/access_log");
と、ログのコピーをスクリプト上でやろうと思ったのですが、エラーが帰ってきてしまいます。
どうやったら出来るのでしょうか?
560nobodyさん:04/10/19 16:13:37 ID:???
どんなエラーだ?
わからんのでとりあえず勝手に決め付けてやろう。
"cp" じゃなくて "/bin/cp -f" に変える。
561559:04/10/19 16:34:58 ID:???
>>560
レスありがとうございます。
初歩中の初歩のミスで、ふつうにerror_log見れば良いんですよね…。
パーミッションの問題でした。public_html/logディレクトリを777にしたら出来ました。
562カポコン:04/10/19 17:26:38 ID:???
>>556
ほら、きた。
なんかあればすぐウザイとか言うんだもん。
君のような香具師に私は、声高らかに出力しよう。
Echo "釣れたと・・・w\n";
563534:04/10/19 17:37:30 ID:???
>>552
explode便利ですね!
ありがとうございます。
564nobodyさん:04/10/19 18:33:26 ID:???
>>558
こんなんしてもダメだけど。

<?php
class foo {
var $val;
function setVal($a) { $this->val=$a; }
function getVal() { return $this->val; }
}

$a =& new foo();
$a->setVal(10);
print "foo=".$a->getVal()."<br>n";

$a =& new foo();
print "foo=".$a->getVal()."<br>n";
?>

先にnewした物にアクセスしたいんじゃないんです。
ちゃんとDisposeされるのかなぁ?って思っただけ。
565nobodyさん:04/10/19 18:43:59 ID:???
>>562
釣れただの釣れてないだのどっちでもいいけど、マジうざい。
とにかくうざい。存在がうざい。

# そもそも釣りの定義に当てはまってないけどな。
# 今回のレスは”釣れた”と言ってもいいだろう。
566nobodyさん:04/10/19 18:53:19 ID:???
存在が迷惑だと言われるために、わざわざ不快に思われるように振舞っているということか。
脳内で実は迷惑になってないけどそう見えるように振舞ってて誰か突っ込んでくるのを待ってるんだ・・とか思ってるわけだな。
567nobodyさん:04/10/19 18:55:08 ID:???
>>566
反応すんならアンカー指定しろよ視界に入る分お前の方がウザイんだけど
568nobodyさん:04/10/19 19:00:07 ID:???
俺は単発あぼーんしてるから
レスアンカー指されるとマジうざい
>>565
569nobodyさん:04/10/19 19:03:29 ID:???
レッツPHP! のマニュアルが Google にひっかかって激しくウザイので
削除お願いしますって誰か言え
570nobodyさん:04/10/19 19:07:31 ID:???
php.s3.toに限らずそこかしこでマニュアルひっかかるよなw
一時期よりマシになったけど。
Namazuサーチではメソッドの部分名から候補を出せないから使わないんだよね〜
571nobodyさん:04/10/19 20:21:28 ID:???
simplexml_load_stringで生成したオブジェクトにXSLTを適用するには、どうしたらいいですか?
572nobodyさん:04/10/19 22:10:15 ID:???
573 :04/10/19 22:12:43 ID:???
検索から
 -レッツ
を加えればいいだろが
ググるテクくらい身に着けてろや、ボケが
574ゆういち:04/10/19 22:35:20 ID:???
作ったプログラムが
ブラウザで更新(リロード)や戻るをされるとエラーになってしまいます。
これらの行為をチェックする方法はありませんか?
575nobodyさん:04/10/19 22:57:53 ID:???
>>574
お前はフールプルーフについて学んで来い
576ゆういち:04/10/19 23:15:28 ID:???
>>575
あなたは答えなくていいです。
577nobodyさん:04/10/19 23:57:12 ID:yWe4h+a6
最近PHPをやりはじめたんですが、はじめてのPHPと言う本を買ったのですが
文法について全くふれてないので、是非教えていただきたいことがあります。
今配列をやってるんですが、$food["fish"]="魚";で
echo("$food[fish]<br>\n")ここでfishのときに"をつけるとエラーになりました。
参考書でもつけてません。それで多次元配列にしたとき$food("fish"=>array("さんま"
,"まぐろ") echo($food["fish"][0]);こんどはfishに"をつけないとエラーに
なりました。。なにぶん文法にまったく触れてない本なので、どういう規則で
そうなってるかわかりません?  "をつけるときとつけないとき規則みたいのは
あるんでしょうか?
578nobodyさん:04/10/20 00:02:12 ID:???
釣れますかな。
579nobodyさん:04/10/20 00:03:58 ID:???
>>573
そんなエサでこの俺がクマー
(ry
580ゆういち:04/10/20 00:05:00 ID:???
>>578
>>579
ここは質問スレです。答えと質問以外の書き込みはやめて下さい。
581nobodyさん:04/10/20 00:05:42 ID:6Ei04iZn
>>577なんですが、まじで教えてください
よろしくです
582nobodyさん:04/10/20 00:05:51 ID:???
>>569-577
そんなエラでこの俺がニダー!!
(ry
583ゆういち:04/10/20 00:07:05 ID:???
>>582
いいかげんにして下さい。
584nobodyさん:04/10/20 00:07:30 ID:???
ワロタw
エラいことになってきたな
585ゆういち:04/10/20 00:11:04 ID:???
http://www.stackasterisk.jp/tech/php/php03_01.jsp;jsessionid=afsIykET8p36
のリロード対策クラスを見ているんですが、
ファイルやデータベースやクッキーを使わずにリロード対策できませんか?
586nobodyさん:04/10/20 00:13:26 ID:???
おまいら弄るなよ。スルーしろ
587nobodyさん:04/10/20 00:14:43 ID:???
588nobodyさん:04/10/20 00:28:32 ID:???
$a = new foo();

$a =& new foo();
だと、
後者の方がメモリー効率が良い?

>>577
echo($food["fish"]."<br>\n");
であかんのかい?

もしくは、
echo("$food['fish']<br>\n");
かなぁ?
echo("{$food['fish']}<br>\n");
かも。

文法に関しては、オンラインマニュアルでも
読んだら?
589nobodyさん:04/10/20 01:08:21 ID:???
なんか、聞いてる方も答えてる方もレベルが低いよね。
素人言語だからしょうがないっていえば、しょうがないんだけど。
590nobodyさん:04/10/20 01:09:12 ID:???
レベル高い人(?)は、まともに答えてくれないしね。
591nobodyさん:04/10/20 01:10:49 ID:???
ネタスレだから
592nobodyさん:04/10/20 01:12:49 ID:???
瑣末だけどechoは関数じゃないから()なし推奨。
個人的には関数にしてない方が違和感あるんだが。
593nobodyさん:04/10/20 01:12:58 ID:???
       , -,:'   / ̄) i{'r‐-、 `ヽ、
.    _...,,o‐y    ,:'- '⌒   ⌒ヽ. `ヽ' ,
    (o(  ,'    / /     、 `ヾ.   ヾ,
  ,:'´//7,'  ,' .,' ,:'   !  } i  !', ':,  ':,    ゙:,
  ,' / ,' {l.  ! {/   ,イ / }|  !|', !.  ',  ', ゙,
 ハ〃 ! !|  | |  ∠/ ,:'-ノ} /リ l ,ム.  !  } |!
  ハヽ、ゝ!|  l | ,:',;='ィ'、'´ ,'.ノ ノ.,;lノ=、l .,' ,' ,' ノ
    {   l l ', |'ヲi(_ノ.}  ´    i(ノ.}゙!ノ,:',:''´
     ',  h. ', ',゙、 ':゙゙_.ノ.     ':゙_ノ〃ン   
     ':, { ',', ':,':,         丶   ,' l .}
      ヾ ':,':, ':ヾ、._    「´/    ,' | .,'    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
        `ヾ-、`ヽ_    `´ _,.ィリ.ノ ,'  < なんとなかるよ、大丈夫だよ!
         リ';',ヾ|  ` ‐┬ ´ _ノノ,'/    \___________________
          ヾ,、-- 、 _ |     ´ノ'                    
          f ヾ、..___ ヽ、 ー‐''   
         /_......_     \
594nobodyさん:04/10/20 01:16:38 ID:???
赤 <なんとなかるわ、頑張るもん!
595nobodyさん:04/10/20 01:18:28 ID:???
真面目な隔離スレだろ。伊達でやってんじゃないよ
596nobodyさん:04/10/20 01:20:04 ID:???
e-typing < きっとなんとなかる
597nobodyさん:04/10/20 01:29:32 ID:5VvbVBZ6
>>589
失礼な発言ですね。
訂正していただけませんか?
598nobodyさん:04/10/20 01:34:06 ID:???
ネタ振りがありましたよ。
599nobodyさん:04/10/20 01:35:57 ID:???

     あーっと、ここでスルー!
          _
         r'::::::::i
          トーf/__
       /  イ| 、ヽ
       //_〉 l_l i_ノ、
 \\ (_ニノ 〉____〉〉 〉
       /    } /
      /\/,ー 'ヾ          >>597-598
      〈  < /
      \i"ヽ、  \\     //
      ├ i\i カ      ,、
       |_,,i ノ_ソ    )     ゝ
      ノ_/〉
600nobodyさん:04/10/20 01:38:19 ID:???


   6  0  0

601nobodyさん:04/10/20 02:19:35 ID:???
サーバ上のファイルをhttpダウンロードしたいんですけど、さっぱり
わかりません(つД`)
602nobodyさん:04/10/20 03:09:49 ID:???
>>601
Irvine使えばいいと思うよ
603 :04/10/20 03:47:25 ID:???
空のHTMLファイルを作っておいて
それをオープン、名前変えて複製、データ保存

多分出来る・・・かも
自信なし


0からやってようやく、PHPからMySQLの中のデータ取り出し、表示まで行った。
本当の0からは大変だ
604nobodyさん:04/10/20 04:19:20 ID:???
チラシの裏に書けって言ってるだろ・・・
605 :04/10/20 04:39:08 ID:???
便所よりチラシに書けと。
606601:04/10/20 05:23:56 ID:???
>>602
ありがとうございます。試してみます。

>>603
おー。一緒です。お互いがんばりましょう。
607nobodyさん:04/10/20 05:24:11 ID:???
便所に日記をかいてんのか
変わった障害児だな
608nobodyさん:04/10/20 05:28:20 ID:???
最近沸いてきてる池沼集団は何なんだ?
ネタスレになるくらい別にいいが、最近すげー気色悪いスレになってきてるよ。
609 :04/10/20 05:35:51 ID:???
>>606
がんばろー

明日は日本語で扱えるようにならないと。
多分それだけで終わる気がする。


HTTPとか良く分からないけど、マニュアルのfopen()を見れば
良いんじゃないかな
610nobodyさん:04/10/20 05:37:20 ID:???
>>608
実は統合失調症2名が複数人分立ち回ってる罠
611nobodyさん:04/10/20 05:46:15 ID:???
確かに初心者にまざって怖い感じする奴が増えてきてる。
他のスレやム板なんかもまるで常識の通じない空気になってるとこある、、
PHPだからじゃないと思う。
ここのノーマルなユーザはスレが一本化されたときに逃げたんだろうけど、、
612nobodyさん:04/10/20 05:48:23 ID:???
おまいら台風が気になるからって起きてても会社は休みになりませんよ
613nobodyさん:04/10/20 06:07:06 ID:???
うちの地方は台風は夕方が本番だな。落雷さえなければ関係なさげ。
614nobodyさん:04/10/20 07:11:35 ID:???
任意の文字列$strを
1文字ずつ配列$arr[]
に入れていく関数ってありますか?
615nobodyさん:04/10/20 08:35:52 ID:???
>>614
preg_split() or for(){}
文字列インデックスを使うならforループでいいけど
多分preg_splitの方が早い
616614:04/10/20 08:52:34 ID:???
preg_splitでは1文字ずつ取り出せないような気がしますがどうなんでしょ。
パターンに
.
とすればいけるのかな。
617614:04/10/20 09:01:37 ID:???
無理でした
618nobodyさん:04/10/20 09:34:25 ID:???
>>614

そのまま $str[ 数字 ] で一文字ずつ取れるけど。
2バイト文字はだめだが。
619nobodyさん:04/10/20 09:55:29 ID:???
>>614
どちらにしてもマルチバイト文字はできないけど。

$s = "abcde";
print_r(preg_split("//", $s, -1, PREG_SPLIT_NO_EMPTY));
620nobodyさん:04/10/20 11:13:02 ID:???
>>601
ヘッダ吐いた後にreadfile()じゃだめ?
621nobodyさん:04/10/20 11:26:47 ID:???
>>601
ていうかさ、普通にfsockopen()使えば。
こっちの方がタイムアウト処理とか楽だし。
622614:04/10/20 11:31:18 ID:???
>>618
しらなかった・・(恥
623nobodyさん:04/10/20 14:36:35 ID:???
>>618
$str{インデック} がおすすめ
624nobodyさん:04/10/20 15:08:17 ID:???
a
625nobodyさん:04/10/20 15:33:20 ID:???
1
626nobodyさん:04/10/20 15:47:30 ID:???
検索エンジン初心者とゆういちのせいでスルーされていました。再度お願いします。
simplexml_load_stringで生成したオブジェクトにXSLTを適用するには、どうしたらいいですか?
627ゆういち:04/10/20 19:48:06 ID:???
>>626
人のせいにしないでくれませんか?

>>612
>>613
ここは台風のスレなんでしょうか?
いいえ、違います。
ここはPHPのスレです。
628nobodyさん:04/10/20 20:01:11 ID:???
>627
よーくわかってんじゃねーか。
お前には場違いってこった。
629nobodyさん:04/10/20 20:06:44 ID:???
ゆういちは釣りなのかマジなのか、
微妙すぎて分からん
630nobodyさん:04/10/20 20:07:53 ID:???
ゆういち=カポk(ry
631ゆういち:04/10/20 20:29:31 ID:???
phrameとMojaviではどっちの方が優秀なフレームワークでしょうか?
632626:04/10/20 20:29:42 ID:???
素直にDOM XMLを用いてXSLTを適用したいと思います。
最後に一つだけ質問です。Win32版PHPを使っているんですが、DOM XML関数を使用するために必要な
拡張モジュールのインストールを行うためには、PHPをビルドしないと駄目なんですか?
633nobodyさん:04/10/20 20:34:35 ID:???
>>632
zip版には入っとるみたいだなぁ。msi版は知らん。
PHPを適切にビルドすれば確実に手に入るわな。
634626:04/10/20 20:44:14 ID:???
>>633
ありがとうございます! いい機会なんで、この際ビルドに挑戦してみたいと思います。
635ゆういち:04/10/20 21:07:57 ID:???
>>632
サーバーはLinuxの方が早くていいですよ。
636nobodyさん:04/10/20 21:36:21 ID:???
>>635
関係ないじゃん
637nobodyさん:04/10/20 21:37:42 ID:???
( ・∀・)つ〃∩ ヘェー
638nobodyさん:04/10/20 21:46:06 ID:???
状況によっては環境を自分では選択できないこともあるんだが、
そういうことを考える頭はないみたいだな
639nobodyさん:04/10/20 22:26:35 ID:???
if文の中で int型と文字列型で比較すると変になるのですが、こういう使い方はダメなのでしょうか?

出力するページは複数あって、普段は0,1,2・・とページごとに表示させています。
**/display.php?page=0   と言う風な感じです。
これに全て表示するようなオプションをつけて
**/display.php?page=all
としたのですが $pageが0のときにallと勘違いされてしまいます。

$page = $_GET['page'];

if($page == 'all')
 //全て表示
else
 //ページごと
640nobodyさん:04/10/20 22:51:05 ID:???
===
641nobodyさん:04/10/20 22:58:03 ID:???
>>639
> $pageが0のときにallと勘違いされてしまいます。

んなことないだろ。
642nobodyさん:04/10/20 23:13:07 ID:???
preg_match使えば?
643カポコン:04/10/20 23:14:29 ID:???
>>630
残念はずれ
644nobodyさん:04/10/20 23:24:12 ID:???
>>639
文字を数値に変換すると0とみなされるからね。
>>640の通りに === で比較しないといかん。

こういうのが面倒だからページは1からにした方が楽かもね。
645nobodyさん:04/10/21 00:06:40 ID:???
>>641
ためしに print( (0 == 'all') );
これが1になったです・・。

>>640
>>644
そうなんですか、===は初めて知りました。
文字を数値に変換すると0とみなされるんですね・・。
とりあえずページを1からにしてみます、ありがとうございました。
646nobodyさん:04/10/21 01:08:14 ID:???
セッションの扱いで質問させて下さい

ページの遷移は入力→確認→完了を2回繰り返して最後にDBに登録
といったものなのですが、

global $HTTP_POST_VARS;
session_start();
foreach($HTTP_POST_VARS as $k => $v){
session_register( $k );
$k = $v;
}
こんな感じでセッションに入れて
その次に
print_r($HTTP_SESSION_VARS);
exit;
で確認するとちゃんと修正されているんですが
いざ各項目を個別に$HTTP_SESSION_VARS[hoge]を出力しても
前回の値が表示されてしまう…
orz
647nobodyさん:04/10/21 01:15:08 ID:???
mb_detect_encodingでちゃんと文字コードを検出できたりできなかったりするのは仕様?
648nobodyさん:04/10/21 01:29:19 ID:???
>>647
仕様。
仕組みを考えてみれば判るだろうが、渡す文字列が長いほど、
というか文字種が多いほど、誤認識しにくくなるので工夫しませう。
649 :04/10/21 03:45:12 ID:???
さて、深夜の便所の落書き


取り込んだmysql_DATAを呼び出し→TABLEで表示は昨日出来た
今日の課題:DATA追加→表示 終わり
        任意のDATAをWeb上で選択・消去→表示 終わり

一応、最低限の事まで辿りついた。ちょっと安心。


昨日言ってたように、日本語でMySQLDATA登録してみる→当然文字化け
内部ではSJISで処理してたらしく、都合悪いのでEUCに変える
出力をSJISにしてみる。
そしたら全てOKになった・・・らしい。

ついでにセキュリティの事を読む。ヤバイ文字排除は楽らしい。
明日はテーブルリストのフィールドについて考えて見ることにした
650軟式PHP:04/10/21 09:07:54 ID:???
>>649
      r;ァ'N;:::::::::::::,ィ/      >::::::::::ヽ
.      〃  ヽル1'´        ∠:::::::::::::::::i
       i′  ___, - ,. = -一   ̄l:::::::::::::::l
.      ! , -==、´r'          l::::::/,ニ.ヽ
      l        _,, -‐''二ゝ  l::::l f゙ヽ |、 ここはお前の日記帳じゃねえんだ
        レー-- 、ヽヾニ-ァ,ニ;=、_   !:::l ) } ト
       ヾ¨'7"ry、`   ー゙='ニ,,,`    }::ヽ(ノ  チラシの裏にでも書いてろ
:ーゝヽ、     !´ " ̄ 'l,;;;;,,,.、       ,i:::::::ミ
::::::::::::::::ヽ.-‐ ト、 r'_{   __)`ニゝ、  ,,iリ::::::::ミ    
::::::::::::::::::::Vi/l:::V'´;ッ`ニ´ー-ッ-,、:::::`"::::::::::::::;゙ ,  な!
:::::::::::::::::::::::::N. ゙、::::ヾ,.`二ニ´∠,,.i::::::::::::::::::::///
:::::::::::::::::::::::::::::l ヽ;:::::::::::::::::::::::::::::::::::::::::::/ /
::::::::::::::::::::::::::::::! :|.\;::::::::::::::::::::::::::::::/ /
651nobodyさん:04/10/21 10:42:57 ID:???
罫線などが予め書かれたExcelファイル(xxx.xls)をテンプレートとして
読み込み、セルに値を埋めて出力したいのですが何か良い方法はありますでしょうか?
Spreadsheet_Excel_Writerというものを見つけたのですが読み込む事が出来ないみたいですorz
652nobodyさん:04/10/21 11:47:10 ID:???
>>651
わざわざWebに持ってこないでExcelでマクロ組めば?
653nobodyさん:04/10/21 12:23:38 ID:???
(´-`).。oO(651がExcelを持ってるとは限らないのに)
654nobodyさん:04/10/21 12:36:25 ID:???
>>653
小学生は書き込まないでね
655nobodyさん:04/10/21 13:02:56 ID:???
>>652
レスありがとうございます。
本来ならご指摘の通りマクロで対応したいのですが、DBにあるデータで
値を埋めなければならないため、Web上でおこなっております。
656nobodyさん:04/10/21 13:03:49 ID:???
幼稚園児に言われたくないな
657nobodyさん:04/10/21 13:41:34 ID:???
乳児は黙ってろ
658652:04/10/21 14:20:42 ID:???
>>655
俺ならDBのデータをODBC経由でExcelの「外部データのとりこみ」に持ってきて処理する。
659nobodyさん:04/10/21 14:54:54 ID:???
>>658
それでも良い気がするんだけど、問題はそのDBを繋ぎにいくExcelを
不特定多数の人が使うとなると色々問題があるような・・・

>>651
幾つか手段はあると思うんだけど、
・サーバをWindowsにしてWEBアプリもASP.NETなどで作って、
全てサーバ側で処理してExcelをダウンロードできるようにする。

・そのExcelで必要なデータをCSVやらSYLK形式のテキストでダウンロードできるようにして、
各ユーザはマクロが組まれたExcelのテンプレートでそのファイルを読み込み、
後は勝手にマクロが処理してくれる。
660652:04/10/21 15:57:58 ID:???
アクセス権の問題ってことか。

DBのテーブル/ビューの内容をPHPを使ってベタなHTMLの<TABLE>に整形するような
スクリプトを作っておいて、それをExcelからWebクエリとして開くと一見普通の
Excelの表として読みこめるから、その手もいけるかもしれない。
661651:04/10/21 16:48:57 ID:???
お二方様、ご意見ありがとうございます。
659さんの2番目のやり方を少しいじったやり方で実現出来ました。
DBから必要なデータをCSVに出力した後に、FTP経由でCSVを取得して
そのCSVデータをマクロで処理するexeを作りました。謝謝ですm(_ _)m


662nobodyさん:04/10/21 17:33:03 ID:Q3cv6Kj3
すいません、ご指導のほどよろしくお願いします。

PHPからPostgreSQLに検索をかけるプログラムを書いております。
PGの文字コードがEUC-JPで、PHPからPOSTする検索対象語は
SJISです。それで検索対象語をSQLを実行する側のPHPにてEUC-JPに
変換したのですが、以下のようなエラーが出てきてしまいます。

Warning: pg_exec(): Query failed: ERROR: parser: unterminated quoted string at or near "'%" at character 201 .

検索対象文字の前後にワイルドカードをつけています。
検索対象文字がアルファベットの場合には何事もなく動作するのですが。。。

何か対処法がありますでしょうか?よろしくお願いします。
663nobodyさん:04/10/21 19:06:30 ID:???
>>662
どういうqueryを投げようとしてるかはprintしてみたんだよね?
664nobodyさん:04/10/21 19:17:09 ID:???
printin
665nobodyさん:04/10/21 19:34:36 ID:Fws0z8sw
変数の内容を実行したいのですが、何か方法はありますでしょうか?
イメージ的には include や require の引数に文字列を渡すといった感じです。
例えば変数の内容が
<html><body><?php echo date('m/d'); ?></body></html>
となっている時に、正しく実行(処理)したいのですが方法がわかりません。
上記の内容がファイルの中身であればファイルを include すれば、
include した時点で、評価されると思うのですが、
この内容が変数にある時にどうしたらよいのかがわかりません。
eval だと 渡す内容が php のコードじゃないとだめだし。

アドバイスのほどよろしくお願いします。
666nobodyさん:04/10/21 19:42:47 ID:???
>>665
全く同じ質問がこのスレにあったような気がする。

eval('?>'.$str.'<?php');

ではなかっただろうか。
667nobodyさん:04/10/21 19:45:58 ID:AZy0QHNb
PHPでのメール送信について質問させてください。

現在、PHPを使用して構築したサイトを運営しており、今回、OSとApacheの
バージョンアップを行おうと思いテストを行っていたところ、PHPからメールを
送信した場合に、エラーとしてはじかれてしまうアドレスがある事がわかりました。
具体的には、sendmailをコマンドラインからキックする際に「-f スイッチ」を
付けなかった場合と同じ現象のようです。
現在、PHPでのメール送信は「mb_send_mail」を使用しておりますが、この現象を
回避する方法をご教授ください。

現在の環境
RedHat EL3 / Apache 2.0.46 / PHP 4.2.3 / 8.12.6

バージョンアップ前の環境
RedHat 7.2 / Apaache 1.3.29 / PHP 4.2.3 / 8.11.x

よろしくお願いいたします。
668665:04/10/21 19:53:08 ID:Fws0z8sw
>>666
スレ探してみましたがみつけられませんでした。すみません。
教えて頂いたようにやってみましたが、
Parse error: parse error, unexpected T_ECHO in /home/hoge/test.php(10) : eval()'d code on line 5
となってしまいます…。

よろしくお願いします。
669nobodyさん:04/10/21 20:15:38 ID:???
Zend studio 3.5すげーいい!!

別ウィンドウでソース見れるだよ。
670nobodyさん:04/10/21 20:25:41 ID:???
↑業者?
671nobodyさん:04/10/21 22:50:33 ID:???
このスレのレスみてるとPHPがいかに幼稚な言語かがわかるな。
672nobodyさん:04/10/21 22:52:47 ID:???
   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |        J << 671
/     ∩ノ ⊃  ヽ
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
673nobodyさん:04/10/21 23:14:40 ID:???
ばぶー
674 :04/10/21 23:17:20 ID:???
どのHPでも裏ではPHPで動いてるんだよ・・・
675nobodyさん:04/10/21 23:22:46 ID:???
どの学校でも裏では日教組が動いてるんだよ・・・
676ゆういち:04/10/21 23:57:45 ID:???
いい加減に私の質問に答えてください。
677nobodyさん:04/10/22 00:04:04 ID:???
×いい加減に
○いい加減な
678nobodyさん:04/10/22 00:05:36 ID:???
>>677
お前のせいで確認しちまったじゃねぇか氏ね
679nobodyさん:04/10/22 00:22:11 ID:???
上手い!禿しくワロタw
680ゆういち:04/10/22 00:24:52 ID:???
>>646
ここの人たちはセッションについてまったく分かりませんよ。
681nobodyさん:04/10/22 00:28:12 ID:???
ハックション
682662:04/10/22 00:33:50 ID:n1ZmUV/Q
>>663

すいません、遅くなりました。echoで出してみたら以下のようになります。

WHERE UPPER(name) LIKE '%F{%'

LIKEのあとが変換したあとです。
683nobodyさん:04/10/22 01:28:53 ID:GnBF56DF
すみません、質問です。

($rowForumInfo['numpost']) ? $numPost = $rowForumInfo['numpost']: $numPost = 0;

これの意味がわかんないのです。
?と:で前後を比較してるのかな?と思うんですけど、検索しても出てこないし・・・
phpマニュアルの該当ページとか教えてくださいまし。
684nobodyさん:04/10/22 01:56:25 ID:???
685nobodyさん:04/10/22 02:46:09 ID:???
普通は
$numPost = ($rowForumInfo['numpost']) ? $rowForumInfo['numpost'] : 0;
と書くのでは?
686nobodyさん:04/10/22 02:58:10 ID:???
>684
即レス感謝です!
そのページ見て他のに気が付かなかったよ!

>685
マニュアルではそうなってますね。
>683のはF-boardさんのです。
687646:04/10/22 08:21:38 ID:???
>>680
そうなんですかー、
もしよかったらどこかふさわしい所に
誘導していただけますか?
688nobodyさん:04/10/22 08:26:39 ID:???
>687
マニュアル読め。
検索しろ。
689nobodyさん:04/10/22 10:42:52 ID:???
ゆういちってネタ用の共有コテハン?
690nobodyさん:04/10/22 11:46:00 ID:???
あ〜ハマった。
スクリプトの中でファイルのサイズがころころ変わる場合、
一回づつ clearstatcache() しとかないと filesize() の
返す値が更新されないんでやんの。

マニュアルを読めば「注意」のとこに書いてあるけどナー。orz
691nobodyさん:04/10/22 13:08:06 ID:rXNsH1Ry
linuxからW2KServerのMSSQL2000にFreeTDS接続したいと思うのですが
odbc_connect(): SQL error: [unixODBC][FreeTDS][SQL Server]Unable to connect to data source, SQL state S1000 in SQLConnect
というエラーがでてきてしまい接続できません。
ポートは開いておりPingもとんでいます。
設定は多分問題ないかと思うのですが
W2KServer もしくは MSSQL2000の方でセキュリティとかの設定のせいでしょうか?
odbc.ini等の設定見直しているのですが・・
692nobodyさん:04/10/22 14:19:22 ID:rNwrhFTR
"aaa","bbb","1,000","hoge"
"bbb","ccc","piyo","uyo"

ってな""で囲まれたカンマ区切りのCSVデータをexplodeする際に
データに、1,000みたいに途中にカンマが入っていると、上手く切ることが出来ません。
どうしたらいいでしょうか?

list($a,$b,$c,$d) = explode(",",$data);
693nobodyさん:04/10/22 14:58:14 ID:???
>>692
$csv = <<<CSV
"aaa","bbb","1,000","hoge"
"bbb","ccc","piyo","uyo"
CSV;
$result = preg_split("/(\",)?\"(\r\n)?/m", $csv, -1, PREG_SPLIT_NO_EMPTY);
var_dump($result);
694nobodyさん:04/10/22 15:20:21 ID:???
PHPプログラム同士のプロセス間のデータのやり取りを
何でやったらいいか思案中
プロセス間通信にファイルを使うのはダサいしなぁ
695nobodyさん:04/10/22 15:20:58 ID:wsf+cSNu
すいません…質問です。
ネットで探してみたもののあまり参考になる例が無く…
詰まってしまいましたのでよろしくお願いしますm(_)m

ログデータは下のような感じで管理しているとして、
-------------------------
名前,DATA1,DATA2,DATA3\n
名前2,DATA1,DATA2,DATA3\n
名前3,DATA1,DATA2,DATA3\n
------------------------
このデータから"名前2"の行を抽出する場合どのようにしたらよいでしょうか?
一応下記の方法で試したのですが、どこが間違っているのかも解らず…
"名前2"以降のデータも全て取得してしまいます…。
正規表現がおかしいのでしょうか?
誰か解る方いましたらよろしくお願い致します。

$id="名前2";
$l_f = file_get_contents($logfile);
$idstr = "^($id,.*)$";//名前を正規表現に組み込む
if (ereg($idstr,$l_f,$rtdata)) {
echo $rtdata[1];
}else{
echo "エラー";
}

結果的にデータの中から一行を効率よく抜ければいいのですが…
696nobodyさん:04/10/22 15:21:35 ID:???
>>694
UNIXならIPC使えば?
697nobodyさん:04/10/22 18:01:15 ID:???
>>695
一気に読むより、fgets()で一行ずつ評価するといいんじゃない?
パフォーマンス的には知らんけど。
698695:04/10/22 18:15:34 ID:???
>>697
ありがとうございます
その方法は始めに試しましたが、
ログを増やしていくとなると重くなるのかな?と思い、
ループを使わない方法を探っております。
fseekを行単位で行えたらいいんですけどねぇ^^;
699nobodyさん:04/10/22 18:45:51 ID:???
>>668
eval('?>' . $string . '<?php ');
だった。

phpの後に半角スペース1つ。

<?php
$string = "<html><body><?php echo date('m/d'); ?></body></html>";
eval('?>' . $string . '<?php ');
?>
700なちじょあ ◆yEbBEcuFOU :04/10/22 18:57:33 ID:???
>>698
( ● ・3・ ● ) エェー >if (ereg($idstr,$l_f,$rtdata))
               if (preg_match("/$idstr/m", $l_f, $rtdata))
701nobodyさん:04/10/22 18:57:51 ID:IrQQWX67
質問です。
print "<FORM method=POST target=up action=$PHP_SELF>\n";
print "名前:\n";
$cookiename = $_COOKIE["cookiename"];
print "<INPUT type=text name=ename size=20 Value=$cookiename>\n";
print "<INPUT type=submit value=入場口1>\n";
print "<INPUT type=hidden name=gateway value=entry1>\n";
print "<INPUT type=submit value=入場口2>\n";
print "<INPUT type=hidden name=gateway value=entry2>\n";
print "</FORM></BODY></HTML>\n";

一つのForm内で、一つのtextboxから2パターンに処理を振り分けることは
可能なんでしょうか?
上は、ボタン「入場口1」とボタン「入場口2」をそれぞれ押すと、別の
処理を流したいのですが、一つのFormから可能なんでしょうか?
或いは、他に方法があるなら教えてください。
702なちじょあ ◆yEbBEcuFOU :04/10/22 19:06:33 ID:???
>>701
( ● ・3・ ● ) エェー submit の value は押さない限り送られないから
               同じ name にして value 見て振り分けるとかすれBA?
703698:04/10/22 19:13:53 ID:???
>>700
おおっ!!ありがとうございます〜!!
無事、やりたいことができました!
preg_matchの方がeregより処理が速いと書いてあったので、
一度試してみたのですが、その時はエラーが出て断念していました…。
これで安心して眠れます、本当にありがとうございますm(_)m
704nobodyさん:04/10/22 19:22:42 ID:/rwDGP0l
php初めて1週間も経たない初心者です。

データベースを検索して、データの中のURLを取得するのですが、
そのURLのページに自動ですぐ行くようにするにはどう書けばよいですか?

$aaa = $row["URL"];
print($aaa);

で、目的のURLは表示されましたが
html部で
<META HTTP-EQUIV="refresh" CONTENT="1;URL='$aaa'">
とやってもうまくいきませんでした。。


705nobodyさん:04/10/22 19:28:52 ID:???
706nobodyさん:04/10/22 21:17:38 ID:OP6//mfv
phpを使うとsendmailだけではなくメールボックスのようなものも作れるのでしょうか?
707nobodyさん:04/10/22 21:38:14 ID:???
>>706
phpを使ってMTAに接続しメールを送信するだけでなく、
MDAが配送したものをPOPすることができるか?ということならできる。
マニュアルのIMAP,POP3,NNTP関数を参照。
708nobodyさん:04/10/22 22:50:34 ID:???
あきてきたな
709nobodyさん:04/10/22 22:51:50 ID:???
ああ、まったくだ
710nobodyさん:04/10/23 01:26:33 ID:2GvadRBB
PHPであるサーバのあるポートが開いていればTRUE,開いていなければFALSEを返すようなコードは
どういう風に書けば良いでしょうか?
711nobodyさん:04/10/23 01:42:16 ID:???
>710
fsockopen()
712nobodyさん:04/10/23 02:37:12 ID:???
今popen()使ってsendmailからmailを送信するスクリプト作ってます。
ですがどんなにがんばってもうまくいかなくてphpinfo()したところ、

safe_mode On
safe_mode_exec_dir /usr/local/php/bin

とありました。これはもしかしてsystem()とかpopen()とかは使えない状態なんでしょうか。
ちなみにxreaという無料スペース使っています。
713nobodyさん:04/10/23 02:40:56 ID:???
無料スペースではほとんどsendmailは使えないと思ったほうがいい
714 :04/10/23 03:00:45 ID:???
メール送信ならsendmail(ないしはそれのエイリアス)なんかつかわんで、smtpちょっと勉強して自分で書いたほうがいいよ
715 :04/10/23 03:14:30 ID:???
自宅鯖じゃないんだ
716nobodyさん:04/10/23 03:16:50 ID:???
>>713-715
アドバイスありがとうございます。sendmailはあきらめました。
smtpと対話してみようと思います。
717nobodyさん:04/10/23 10:31:33 ID:???
718nobodyさん:04/10/23 16:26:49 ID:???
session_set_cookie_params() の第一引数 int lifetime は秒数ですよね
デフォルトは0だそうですが、最大どのくらいの値を設定できますか?
719nobodyさん:04/10/23 18:06:14 ID:ICRztpGp
$a1 = "test";
echo ($a+"1");

上記の$a を連結して$a1とする方法はありますでしょうか?
720nobodyさん:04/10/23 18:32:13 ID:???
>>719
$foo = 1;
${a$foo} みたいなのを言ってるのか?
721nobodyさん:04/10/23 18:48:05 ID:ICRztpGp
>>720さん江
${a.$foo}でうごきますた。
有難う。
722nobodyさん:04/10/23 21:05:08 ID:???
>>718
intだから 2^32-1(=30億くらい)で無いの?(一般的なプラットフォームの場合)
実際には cookieのexpiresにセットされるわけで、
expires=Thursday, 31-Dec-2037 00:00:00 に相当するlifetime(10億秒後くらい)が妥当かと。
723nobodyさん:04/10/23 22:07:31 ID:???
32ビットintって10桁ですよね。
time()で取れる時間も10桁、いつか破綻しそうなのに大丈夫なのかなぁ
724nobodyさん:04/10/23 22:42:25 ID:???
>>723
見当違いの心配せんでよろしい
725nobodyさん:04/10/23 23:39:16 ID:???
SimpleXMLについて質問です。

<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet href="test.xsl" type="text/xsl" ?>
<doc>
<head>テスト太郎</head>
<par>こんにちは、テスト太郎です。</par>
</doc>

という内容のXMLファイルを$xmlに読み込み、そのデータを echo $xml->asXML();で画面表示したのですが、
test.xslが反映されていません。XMLファイルを直接ブラウザで表示すると、反映されているのですが……。
どうしたらいいのでしょう、教えてください。
726nobodyさん:04/10/23 23:39:34 ID:???
timeは2038年で破綻します。
727nobodyさん:04/10/23 23:40:45 ID:???
それが?
728nobodyさん:04/10/23 23:42:56 ID:???
さぁ?自分で考えれば?w
729nobodyさん:04/10/24 00:14:07 ID:???
phpだと桁があふれたときに自動で64bit型になるのかな?
730nobodyさん:04/10/24 00:20:31 ID:???
>725
simpleXMLって、xslとかxsdとかに対応してなかった希ガス。
どっかで読んだと思うんだが、今見たら本家のSimpleXMLリファレンスには
書いてなかったし……(記憶違いだったらすまぬ)
731 ◆hEpdoZ.tHU :04/10/24 04:22:39 ID:???
2chと互換のあるトリップが欲しくて下のスクリプトまでたどり着いたのですが
"<"と">"の記号が2chと同じように変換されません。原因が分かる人教えて。。
環境:php4.3.8

$key = "<>";
$key = JcodeConvert($key, 1, 2); //EUC-JPの$keyをShift-JISに変換・・
$salt = substr($key."H.", 1, 2);
$salt = strtr($salt,":;<=>?@[\\]^_`","ABCDEFGabcdef");
$salt = ereg_replace("[^\.-z]", ".", $salt);
echo $trip = "◆".substr(crypt($key, $salt),-10);
732nobodyさん:04/10/24 04:31:22 ID:???
mb_ereg_replace(">","<",$salt)
733nobodyさん:04/10/24 09:10:59 ID:???
>>725
サーバ側の PHP スクリプトと同じディレクトリに test.xsl があって、
ブラウザ側で PHP スクリプトが出力する XML に test.xsl を適用させたい
ということでいいのかな?

もし、そうだとしたら、デフォルトで PHP は

Content-type: text/html

を出力するので、単なる HTML ファイルとしてブラウザが認識しているはず。
PHP で XML 用のヘッダを出力すればブラウザが test.xsl を取得して
適用してくれると思う。

header('Content-type: application/xml');

一応、Mozilla Firefox では確認した。IE では試してないけど。
734730:04/10/24 09:40:30 ID:???
>733
あ、なるほど。THX
元質問者でないが、次そういう話がありそうなので助かった。御礼
735725:04/10/24 13:20:53 ID:???
>>733
あ、なるほど、そうだったんですか!
HTML用のヘッダを出力していることは知りませんでした。どうもありがとうございます。
736nobodyさん:04/10/24 13:28:57 ID:???
>>735
Operaだと、xsltは無視される。
IEは追加のコンポーネントを入れないと、まともに表示されないのもある。
IEとMozillaで、xsltの解釈が違って、表示が異なる事がある。
737725:04/10/24 14:17:43 ID:???
>>736
もちろん、(XMLを使うわけですから)そのくらいのことは存じております。
ですから、サーバサイドでXSLTを適用するか、それともブラウザの変換に委ねるかどうか、閲覧者に選択
させるようにするつもりです。
まあ、わざわざありがとうございます。
738nobodyさん:04/10/24 14:43:24 ID:???
ディレクトリ内のファイルのうち特定の拡張子のもの(とりあえずzipとlzhを想定)だけを
表示させるスクリプトを作りたいのですが、
同一ディレクトリ内ファイル名を配列$f_nameに格納後
zipとlzhのものを配列$itemに格納して一致するものを抜き出そうと
下記のように書きましたがうまくいきません。$new_f_nameが空になります。
よろしければどなたかおかしいところを教えていただけないでしょうか。

(ディレクトリ内のファイル名を$f_nameに格納するところまで省略)
$item = array("zip$","lzh$");
$new_f_name = array();
foreach($f_name as $value);{
if (in_array($value, $item)){
$new_f_name[] = $value;
}
}
$f_name = $new_f_name;
739nobodyさん:04/10/24 15:53:21 ID:???
dbからの検索結果を表示するときに、
キーワードをgoogleのように色違いにしています。

str_replace('検索ワード', '<B><FONT COLOR="#FF0000">検索ワード</FONT></B>', $対象文字列);
と言う感じです。

これを改造して、半角空白でAND検索を出来るようにしたんですが
例えば「たま まご」で検索した場合、結果表示がうまくいきません。

元の文章が「生たまご全滅」だった場合に
本来なら「生<B><FONT COLOR="#FF0000">たまご</FONT></B>全滅」となって欲しいのですが
実際は「生<B><FONT COLOR="#FF0000">たま</FONT></B>ご全滅」となってしまいます。

途中で置換しているために「まご」が消えてしまい、置換されないためなのですが、
これをうまく回避または処理する方法はありますでしょうか。
何かアイデアなどありましたら、ご教授お願いしますm(_ _)m
740nobodyさん:04/10/24 17:11:25 ID:???
>>739
それさ、実装したとして、
「結構 構文」 で検索したときに
「結構文章がうまい」 が 「<b>結構文</b>章がうまい」 になっちゃうだろ。

Google で 「たま まご」 で検索しても 「たまご」 にはハイライトされてないし。
っていうか 「たまご」 で検索したいなら最初から 「たまご」 で検索するんじゃ。
741nobodyさん:04/10/24 17:26:42 ID:l6rOaDlU
htmlとcssに関しては、普通に解ってて(自分のやりたい範囲の事は)
最近、php&mysqlに手を出した、インチキweb屋です。
スクリプトなんかは、ありものを改造してなんとかする程度のレベルです。
よくある、登録したデータから条件を設定して検索したり、
データを登録するためのインターフェイスを作ろうと試行錯誤してます。
ローカル、及びリモート(レンタル鯖)でphpとmysqlは既に稼働してます。
データベース板で質問したのですが、web prog板で聞いた方がいいよ、と
言われこちらにおじゃましました。さて、いくつか質問させて下さい。
環境はPHP4.3.1、MySQL 3.23.58です。(本番用のレンタル鯖)

質問1 検索結果で、タイトルにあたるものをずらっとリストアップして
そこから、詳細画面(getでid を渡して表示)を出すというのをやってみました。
そのさい、詳細画面を表示するときにこっそり、count(例)というフィールドの
値を増やしてそのレコードに書き込む。すなわち、レコードごとにアクセスカウンタを
付けた(重複対策悩んですますが)ような事をしてみたのですが、やり方的に、変ですか?
普通のカウンタみたいに、レコードごとにカウント用のファイルを用意してするべきでしょうか?

質問2 ひとまず、検索、一覧、修正、登録、削除等の機能をmodeという変数で判別して
一つのphpのなかでcase文で振り分けてやりくりしちゃってるのですが
こういうやり方はかなり変でしょうか?(もちろん公開するときは修正、登録、削除は別ファイルにしますが)

質問3 本番で使うレンタル鯖は、phpのcgi版しか使えません。これだとHTTP 認証出来ないのですが
このような場合、修正、登録、削除などの管理画面をどのようにプロテクトすればよいでしょうか?
いざとなったら、編集作業のときだけ、スクリプトをアップして作業が終わったら消すとかw

質問項目が多くなってしまいました。「質問1 それ、変」とかそんな感じでいいので
アドバイスというか解答をいただけたらと思います。
742nobodyさん:04/10/24 17:38:12 ID:???
>>741
思いつくまま適当に書いてみる

答え1
いいんじゃないですか。同時アクセスの問題とか解決できてるなら。
まあ、web屋さんだからその辺は心得てるだろうけど。

答え2
一つの関数に複数の異なる機能を持たせるのはあまりよくない。
一機能一関数位の感じで組むと見やすいと思うけど、その辺は個人の感覚次第。

答え3
DB使えるなら、認証はDBを使って作ってしまうってのはどうだろう?
それか、.htaccessを使えるならそっちで。
743nobodyさん:04/10/24 17:44:26 ID:???
>>741
そういう質問している段階からピンで仕事を獲ろうという神経はどうかしてるよ。
悪いことはいわないから、とりあえず下請けから初めてプロジェクト管理なども
含めて勉強してください。
744nobodyさん:04/10/24 17:44:34 ID:???
>>741

>質問1
>質問2
「変」ではない。
一般的かどうかなんて、そんなに重要なことじゃないだろ?
仕事でチーム組んで開発するのならいざ知らず、
個人的にやっているものなら、やりたいようにやればいい。

>質問3
自分で認証実装すればいいんでは?
いくらでもやりようはある。
ま、俺ならモジュールで動く環境使うけどな。
745nobodyさん:04/10/24 17:49:25 ID:???
相変わらず回答者のレベル低いですね
746738:04/10/24 17:51:32 ID:???
放置されてて悲しかったのでどうにか自己解決しました。お目汚し失礼しました。
747739:04/10/24 18:07:30 ID:???
>>740
回答どもです。

>それさ、実装したとして、
>「結構 構文」 で検索したときに
>「結構文章がうまい」 が 「<b>結構文</b>章がうまい」 になっちゃうだろ。

まさにそういうことです。
検索者が意図してるしてないに関わらず、
単に結果を正確に表示したいという事です…
googleってのはイメージしやすい一例で出しただけで、
仕様としては「入力した文字を厳密にハイライトする」って形にしたいと思ってます。

「しんぶんし ぶん」のような形も
「たま まご」のような形にも対処できる、スマートな方法のアイデア、
何かありませんでしょうか…
748nobodyさん:04/10/24 18:12:36 ID:???
>>747
検索側がわざわざ「たま まご」や「しんぶんし ぶん」で検索してるんだったら、
「たまご」や「しんぶんし」と混同されるとマズイってことだろう。
せいぜい表記ゆれを見て修正候補だすぐらいじゃない?
749nobodyさん:04/10/24 18:17:46 ID:???
>>747
2パスでやれば?
750nobodyさん:04/10/24 18:17:57 ID:???
>>746
ごめん、よく読んでなかったよ。

漏れだったらglob()使うね。
751741:04/10/24 18:53:32 ID:???
丁寧な解答有り難うございます。

>>742
1. いや、同時アクセスの場合のこととかそこまで深くは考えてません。
やっぱりカウンタ値を、単なるページの読み込みで書き換えるってのはヤバい気がしてきました。
2. この辺は、まだプログラムの構成も練れてないのでじっくり考えてみることにします。
3. 別テーブルにid とパスを入れてそこに問い合わせてあってたらそれ以後のスクリプトを実行という感じですかね?

>>743
漏れのスキルが至らないのは自分でも解りきっています。
これでも何も解らないところからひと月でなんとかここまで来た訳でして
むしろ、仕事を獲ろう、としたというより、仕事が来てしまった、と
いう形なのです。とにかくやるしかない状況なのです。

>>744
なるほど。自分の場合、他のひとは一切関わりませんし
すべて自分で作って自分で対処するので、自分のやりたいようにやるのが
いいのかもしれません。
幸い、漏れて困るような情報はあつかっておりませんので、勉強だと思って
思ったように作って少しずつ、知識に応じて改造していくのでもよいですね。

752初心子:04/10/24 19:16:06 ID:lx5zDplK
質問です。

例えばあるサーバAで稼動しているアップローダ(PHP)にアップロードされた
ファイルを、そのままFTPサーバの稼動しているサーバBにアップロードする、
ということは可能でしょうか?可能であるとしたら、どのようにすれば
そういうことが出来るのでしょうか?
753739:04/10/24 19:29:39 ID:???
>>748
うーん。。なんというか、シンプルで厳密なものにしたいのです。。

>>749
すみません、2パスでやるとはどういうことでしょうか?
754nobodyさん:04/10/24 19:38:44 ID:???
>>753
うーんとね、まず、どの文字を置換しなきゃならないかを全ての条件でサーチして、
結果をどっかに格納しておく。

で、おわったら、その結果を元に置換する。一文字単位で色変えれば簡単にできるでしょ。
冗長だけど。
755カポ子:04/10/24 20:02:31 ID:???
うpファイルがバイナリ時で
拡張子チェックやリモートファイルの名前付け、
パッシブモード設定時等の処理は自分でやってくれの場合↓
<form enctype="multipart/form-data" action="_URL_" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="30000">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File">
</form>

<?php
$filename = $_FILE['userfile']['tmp_name'];
$filesize = (int)$_FILE['userfile']['size'];
$fp = @fopen($filename,"r");
flock($fp,LOCK_SH);
@fseek($fp,SEEK_SET,0);
$upload = @fread($fp,$filesize);
flock($fp,LOCK_UN);
fclose($fp);
$cnt = ftp_connect($host,21,100);
$rslt = ftp_login($cnt,$user,$pass);
if(!$cnt):
echo 'I cannot look up the FTP SERVER.';
exit();
elseif(!$rslt):
echo 'I cannot look up the FTP USER.';
exit();
else:
if(@ftp_put($cnt, $remotefile, $upload, FTP_BINARY))
echo "OK!";endif;ftp_quit($cnt);
756初心子:04/10/24 20:48:25 ID:???
>>755
こんなに早くサンプルまで頂けると思っていませんでした。
大変助かりました。ありがとうございます!
757にーchan:04/10/24 21:23:00 ID:???
PHPプログラムでフォルダを作ることは可能なのでしょうか?
知っている方いたら教えてください。
758nobodyさん:04/10/24 22:10:23 ID:???
えむけーでぃあいあーる
759nobodyさん:04/10/24 22:51:25 ID:???
メイクディレクトリ?
760nobodyさん:04/10/24 22:51:28 ID:???
>>758
実はディレクトリのことじゃなかったりして・・・?
761nobodyさん:04/10/25 03:49:18 ID:???
PHPでfsockopen()使ってソケット接続する際のタイムアウトはsocket_set_timeout()で指定しますが、
それでは実際にタイムアウト処理を含んだソースを書くとすればどんな風に書きます?

そもそも、socket_set_timeout()で指定した秒数を超えるとどういう動作をしているのでしょう?
自分は今まで何も考えず、socket_set_timeout()さえ指定しておけば、勝手にソケット接続を閉じて
くれるとばかり思っていたのですが、どうもそれが上手くいっていないのではないか?(予想)という
ケースに遭遇しました。

色々と調べていると↓のようなソースを発見しました。
http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/pukiwikimod/pukiwiki/proxy.php
これを見るとsocket_get_status()でチェックをかけてますが、必要な処理なのでしょうか?
ご意見求む。
762nobodyさん:04/10/25 09:28:58 ID:???
>>751
質問1について
詳細のデータは対象物が変わならい限り更新の必要がないものでしょ?
その同じレコードにアクセスされるたびに更新されるカウンタを同居
させるべきじゃないよ。
具体的には詳細ID+カウント値という構成の別テーブルを作るべし。

詳細という事実とそれを参照されたという別の事実を混同しないほうがいいし、
更新頻度の異るデータを同じ場所に詰めこまないほうがいい。

質問2、3について
参照、修正、登録、削除それぞれ別ファイルにしておけばBASIC認証で済む。
763nobodyさん:04/10/25 11:26:06 ID:pw7w/xoj
フリーのグラフ表示スクリプトってないですか?
自分の製品を売っても、無料で使えて、出来ればソースの改造もしちゃって良いというの。
764nobodyさん:04/10/25 11:31:40 ID:XEONTDY3
>>763
jpGraphとか?
765nobodyさん:04/10/25 11:41:28 ID:pw7w/xoj
>>764
レスありがとうございます。
jpgraphって商用版を買う必要がありませんか?
766軟式PHP:04/10/25 12:05:26 ID:???
ちったぁ調べろハゲが。
767カポコン:04/10/25 13:14:27 ID:???
ちったぁ調べろ禿が。
768にーchan:04/10/25 13:16:27 ID:???
>>759
メイクディレクトリです。
解答ありがとうございました。
769nobodyさん:04/10/25 13:27:18 ID:R1CVi9Qf
urlのパラメタを引数として取得したいんですが、
$_SERVER['QUERY_STRING'];
って、数字しか認めてくれないのですか?
http://~~.php?0432 と http://~~.php?A432 を
echo "<{$_SERVER['QUERY_STRING']}>";
と表示させたら前者しか表示されませんでした。後者は真っ白。


数字だけじゃ困るときはどーすれば良いですか?
770nobodyさん:04/10/25 13:28:59 ID:Dv6fMtrA
変数の名前を、変数で変化させることは出来ないのでしょうか?
771 :04/10/25 13:29:57 ID:???
出来るよ
772770:04/10/25 13:35:29 ID:Dv6fMtrA
>>771
$abc_data = 'hoge';
$def_data = 'piyo';

$name = array('abc','def');
for($i=0;$i<count($name);$i++){
print ${$name[$i]}_data;
}

で、エラーが出ました。どこがいけないのでしょうか?
773nobodyさん:04/10/25 13:48:37 ID:???
print ${$name[$i]}_data;
774770:04/10/25 13:48:39 ID:???
$abc_data = 'hoge';
$def_data = 'piyo';
$hensuu_name = '_data';
$name = array('abc','def');
for($i=0;$i<count($name);$i++){
print ${$name[$i] . $hensuu_name};
}
で出来ましたです。
775nobodyさん:04/10/25 14:04:56 ID:???
>>769
んなわけない。<? phpinfo(); ?> が書かれているPHPに phpinfo.php?QUERY... でアクセスしてみろよ。
ちゃんと出てるだろ?
776nobodyさん:04/10/25 18:21:09 ID:???
はじめまして、今HPを作っていてアンケートを作成していて
以下のようなものを作ってみました。
内容はTELや郵便番号・住所の番地部分などの数字とハイフンを
綺麗にそろえようとしたものですが、もっと短く綺麗なプログラム?にしたいのです。
どの部分をもっといじれば短く綺麗な物になるのでしょうか?
俺ならこう書くなどのコツを伝授してください
また付け足したほうがいい機能とかもあったら教えてもらえませんか?
*$inputとprint部は後で消したりフォームからの入力に対応させます。

$input = "999− 9  9 9―99 9 9";
$before = array("−","ー","ー","−","―"," "," ");
$after = array("-","");

$input=mb_convert_kana($input,"a","EUC-JP");

for($i=0; $i<count($before); $i++){
if($i<count($before)-2){
$input = str_replace ($before[$i], $after[0], $input);
}
else
$input = str_replace ($before[$i], $after[1], $input);
}
print($input);
777nobodyさん:04/10/25 18:53:56 ID:???
>>776
こんな感じかなぁ

$input = "999− 9  9 9―99 9 9−8ー8ー8−8―8";

$bar = array("−","ー","ー","−","―");
$bars = implode("|",$bar);

$input = mb_convert_kana($input,"a","EUC-JP");
$input = preg_replace("/$bars/","-",$input);
$input = preg_replace("/[^\d-]/","",$input);

echo "$input\n";
778nobodyさん:04/10/25 20:02:36 ID:???
>>777さん
IFもFORもなしに出来るんですね!
教科書レベルの私には分からない
関数が2つほど出て来てるので
いまから必死こいて勉強したいと思います。
ありがとうございました。
779nobodyさん:04/10/25 22:30:48 ID:???
>>776

$input = "999− 9  9 9―99 9 9";
$before = array("−","ー","ー","−","―");

$input=mb_convert_kana($input,"as","EUC-JP");

$input = str_replace ($before, '-', $input);
$input = str_replace (' ', '', $input);

print($input);

こんなんでもいいんじゃない?
780741:04/10/25 22:59:58 ID:???
>>762
なるほど。質問1についてとても参考になりました。
アクセスしただけで、count(例)というフィールドの値を読み出して
1足して書き込む。これってある意味、編集であるわけじゃないですか。
そのカウントアップするphpに変なクエリ(漠然としかわかってないです)を
つけたURLを送ったりして変なことされちゃうという危険性はどうなんでしょうか?
別テーブルでやります。
自分で調べたところ、フィールド内の値の更新は、mysqlの場合
自動的にロックされると理解したんですが同時アクセス(更新)に対しての問題はいまいち理解不足。
質問2-3はおっしゃるようにしようかと思います。

自分のように、中途半端な知識のまま、覚えたてのことだけでなんとかして
業務に使わなくてはならないのは、悲惨なんだか恵まれてるんだか、
自分でもよくわからなくなってきますた。

ひと月くらいの間でphpとmysqlのことばかりでちょっと頭おかしくなりそうです。
781nobodyさん:04/10/25 23:25:34 ID:???
>>780
テーブルに書き込む前段階で入力値チェックすればいい。
自分が想定した以外の値が来たらエラーを返すようにする。

アクセス→カウントUPだけなら変なクエリも糞もない気はするけどな〜。

むしろ、他の部分で気を付けるようにして欲しい。
782741:04/10/26 00:03:37 ID:???
>>781
ご丁寧に有り難うございました。
幸い、漏れて困るような情報は扱わないので、その辺は気楽です。
このところ、一気に詰め込みすぎたせいか、なんだか、えらく作業の効率が悪いです。
ここひと月ほど、休みも自宅でどっぷりでしたから。たまには気分転換もしないと・・・
783nobodyさん:04/10/26 03:20:50 ID:???
>>779
おお〜これなら今の私でもわかる!!
なるほど…asで先に全角を半角にしてしまう手があったんですね…
理解してしまうと何でこんな単純なことががが・・・
自分で書いたやつがとってもお恥ずかしい限りです(汗)

777さんの9〜10行目の"/ほにゃらら/"このスラッシュが何の役割を
しているのかが分かりませんでしたが、大変勉強になりました
779と777の御二方ありがとうございました。
784nobodyさん:04/10/26 05:07:44 ID:nD9jwmRQ
print "<FRAMESET rows=60,*>\n";
print "<FRAME name=up src=$PHP_SELF?mode=entry>\n";
print "<FRAME name=bottom src=$PHP_SELF?mode=output1>\n";
print "</FRAMESET>\n";

現在、↓のプログラムのボタンを押すと、Frame上部の画面(upの画面)が、変わる仕組みになっています。
これを↓のプログラムのボタンを押すと、上下両方の画面とも(Frameのupとbottom)更新されるようにする
方法を教えてください。

print "<FORM name=form2 method=POST target=up action=$PHP_SELF?mode=entry>\n";
print "<INPUT TYPE=SUBMIT NAME=b_act VALUE=ボタン>\n";
print "</FORM>\n";
785nobodyさん:04/10/26 06:16:50 ID:???
>>784
JavaScript使えば?
786nobodyさん:04/10/26 06:47:09 ID:???
>>784
frameset自身を更新すれば?
787カポコン:04/10/26 19:33:02 ID:???
>>783
真珠交互の正規表現
788nobodyさん:04/10/26 20:08:06 ID:???
array_spliceで配列$linesからキー$keyだけを削除したいんですが
array_splice($lines, $key, 1)
だとうまくいきません。
どうしたらいいですか?
789nobodyさん:04/10/26 21:21:06 ID:???
>>788
array_values()
790788:04/10/26 22:06:06 ID:3sXEVKxI
>>789
array_values()でどうしたら特定の要素を削除できるんですか?
791nobodyさん:04/10/26 22:28:11 ID:???
array_splice($lines, array_search($key, array_keys($lines)), 1);
792カポコン:04/10/26 22:56:36 ID:???
>>790
ID出てますよー
793 ◆.jC7ANgFY. :04/10/26 23:04:41 ID:???
>>788
unset($lines[$key]);
ってことかい?
794788:04/10/27 01:01:26 ID:???
訂正
array_spliceで配列$linesから$lines[$key]だけを削除したい
でした。
おそらく793のやり方でいけそうです。
791,793さん、ありがとうございました。
795nobodyさん:04/10/27 01:40:01 ID:cq+DW3Jz
すいません。質問させて下さい。

$line='p180';

とあり、preg_match()を使って、pと180に分けたいのですが、PHPの
マニュアルやら、手持ちの本やらを見てもさっぱりわかりません。
わかる方、教えて頂けると助かります。
796nobodyさん:04/10/27 01:44:04 ID:???
>>795
文字列の最初が必ずpになるのならsscanfでいいじゃまいか
797nobodyさん:04/10/27 01:47:36 ID:???
>>795
それだけの条件じゃいまいちワカランがな。
先頭のアルファベットと後ろの数字を分けるなら、
preg_match('/^([A-Za-z]*)([0-9]*)/',$line,$reg);
print_r($reg);
798795:04/10/27 01:52:25 ID:???
>>797
(;・∀・)モシカシテ・・・

おー!できましたー!!!
ありがとうございます。本当にありがとうございます。(つД`)

>>796-797に幸あらん。
799nobodyさん:04/10/27 01:56:53 ID:???
>798
PHPっつーか、正規表現だよん。
800nobodyさん:04/10/27 12:00:43 ID:???
質問です。

RedHat Linux + PHPのサーバーからWindows + SQL Serverにアクセスしたのですが、
MS SQL関数は使えないのでしょうか?
調べてみるとsybase関数を使うという記述があったようなのですが、
資料が乏しくて理解に困っております。

どなたかご教授頂けないでしょうか。
よろしくお願いします。
801nobodyさん:04/10/27 12:54:42 ID:???
>>800
http://jp2.php.net/manual/ja/ref.mssql.php
>注意: MSSQL拡張モジュールは、Win32システムでのみ利用可能です。

参考
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&q=unixodbc+freetds
802nobodyさん:04/10/27 14:34:57 ID:???
Q.
Turbo Linux + PHP + qmail で mail()関数を使いたいと思っています。
ところが“Fatal error: Call to undefined function: mail()”が発生します。

PHPのマニュアルを読むと、qmailの場合は
sendmail_pathにパスを設定すると書いてあります。
“Qmailユーザは、通常、 /var/qmail/bin/sendmailまたは /var/qmail/bin/qmail-injectに設定します。”

php.iniのsendmail_pathには/var/qmail/bin/qmail-injectが設定されていますし、
ファイル自体も存在しています。
qmailデーモンも立ち上がっています。

どんな問題が考えられるでしょうか?
803nobodyさん:04/10/27 14:45:14 ID:???
>>802
エラーレベルを上げてもっとたくさん報告してもらうようにするとか。
/var/qmail/bin/sendmailを(シンボリックリンクとして)作ってみるとか。
定義済みの関数一覧を出力してみてmail()が存在するかどうか確認してみるとか。

それぞれの方法は自分で調べてくれ。
804nobodyさん:04/10/27 15:04:11 ID:???
>>803
エラーレベル:
E_ALL にしてもFatal errorの表示のみ

シンボリックリンク:
/var/qmail/bin/sendmail は既に存在したので、
php.iniでそっちを指定しても状況変わらず

定義済み関数一覧:
main()は存在せず・・・。

という結果となっています。
805nobodyさん:04/10/27 15:04:54 ID:???
>>802
qmailで送信できてるかテストしてみた?
echo to: [email protected] | /var/qmail/bin/qmail-inject
806802:04/10/27 15:09:45 ID:???
>>805
あ、こんな方法があるんですね。
ありがとうございます。

その方法では送信成功しました。

mail() → Fatal error
mb_send_mail() → FALSE
imap_sendmail() → TRUE(1)
全て送信失敗です・・・。
807802:04/10/27 15:13:22 ID:???
訂正
imap_sendmail() → imap_mail()
808nobodyさん:04/10/27 15:27:49 ID:???
mail
でgoogleでイメージ検索して、2段目の最初の画像を見てみろ。
それが答えだ。
809nobodyさん:04/10/27 15:31:07 ID:???
>>806
1.telnetでlocalhostの25番Portに接続
2.接続できたらSMTPコマンドで送信テスト

これも問題ないようであれば原因はqmailじゃないと思うよ
810nobodyさん:04/10/27 15:34:21 ID:???
>>808
×2段目の最初
○1段目の一番右
811nobodyさん:04/10/27 16:24:33 ID:???
Apache moduleのとき、safe_mode On に何の意味があるのか教えて。
スクリプトファイルのオーナーuidとhttpdの実行uidが違う場合に
激しく不便なんだけど。
812nobodyさん:04/10/27 16:28:15 ID:???
レンタルサーバーぐらいにしか使わないからoffにしとけよハゲが。
813nobodyさん:04/10/27 18:56:54 ID:8mNdDRME
質問です。

PCREで、正規表現側に日本語文字列を使うとき、みなさん、どうしていますか?
マッチさせるテキストが日本語の場合は問題ありませんが、
正規表現に文字クラスを使うと、日本語の文字が1バイト文字の2文字として解釈されて困っています。

UTF-8を試してみたのですが、改善されませんでした。
おそらく既出だとは思うのですが、過去ログはすでに倉庫行きで見れません。

よろしくお願いします。
814nobodyさん:04/10/27 19:00:29 ID:8mNdDRME
ちょっと表現がおかしかったので訂正します。

>マッチさせるテキストが日本語の場合は問題ありませんが、
これは、マッチさせるテキストは問題を引き起こさないという意味で、
正規表現が日本語の場合は、テキスト側のコードが何であっても問題が起こりました。

よろしくお願いします。
815nobodyさん:04/10/27 19:08:50 ID:???
>>802
メールを使わないものとしてコンパイルされたphpじゃないの?

>>813
mb_* 系の正規表現関数の話なの?
816802:04/10/27 19:50:02 ID:???
>>815
関数一覧にmail()関数がなくなるようなインストールの仕方って、
どんなのなんですかね・・・。

http://people.paperclip.com.pe/jaguar/writeups/mailerror.php
ここを見て、qmailの方が後にインストールされた場合は
そんなこともあるから、PHPを再ビルドしろ(合ってますかね?)
という旨書いてあったので

make clean
make
make install
したのですが状況は変わりませんでした。

mail関数は標準関数なのに・・・。
817nobodyさん:04/10/27 20:11:41 ID:???
>>816
apache止めてからやった?
818802:04/10/27 20:11:44 ID:???
orz・・・

./configure からやり直したらmail()関数が使えるようになりました。
qmail をインストールした後にconfigureしないと、
mail()関数は有効にならないようです。

お騒がせしました。
819nobodyさん:04/10/27 20:24:16 ID:???
apacheの問題であってphp全く関係なかったな
逝け
820802:04/10/27 20:28:24 ID:???
apache関係ないです。
コマンドライン起動のPHPです。
821nobodyさん:04/10/27 21:53:39 ID:mWarabBu
phpってエロサイトに多いね。
822 :04/10/27 23:58:58 ID:???
エロは進化への糧だね
823nobodyさん:04/10/28 01:19:45 ID:???
実践ハイパフォーマンスMySQL読んでたら
Yahoo!がPHPとMySQL使ってる事例が結構出てきた。
普通に大規模サイトで使えるんだね。
824nobodyさん:04/10/28 01:28:18 ID:???
YahooってMySQLなのか・・。
でも入れてるデータって何なの?
更新のほとんど無いカテゴリの情報?それとも頻繁に更新があるヤフオク?
825nobodyさん:04/10/28 02:20:44 ID:???
PHP5を使っていてE_STRICTで開発したいのですが、
PEARやSmartyを使うと大量にエラーが発生してしまいます。
外部のライブラリに手を加えずに、エラーを抑制して、
自分の書いたものにだけE_STRICTを適用することはできるのでしょうか?
826nobodyさん:04/10/28 02:55:06 ID:???
>>824
最初に使ったのはYa!FINANCEのサイト。
使うべきところと使うべきでないところをきちんと判断し、
使うべきところで如何に適正に使うかを述べている。
827nobodyさん:04/10/28 03:25:25 ID:???
>>826
何言ってんだお前
828nobodyさん:04/10/28 03:56:29 ID:vepR/sO0
DAOでSQL書くときフィールドをきっちり指定しまつか?
豆にやってたメンバがやたら増えてわけわかんなくなるは
名前に規則性がないから判別つかんわ・・・
全部
SELECT * FROM でやっていいでつか?
パフォーマンスおちるかなぁ
829T:04/10/28 04:46:02 ID:d4m97dka
PHP+MySQLでウェブアプリを作成中です。
バージョンはPHP4.2.2、MySQL3.23.55です。

mysql_query()で2つのテーブルAとBのいくつかのフィールドを同時に
更新したいのですが、いろいろ試してみても方法が見つらず困ってます。

まず、mysql_query()では一度に一つのクエリーしか実行できないですよね?
で、各テーブルを別個に更新するクエリーAとクエリーBをそれぞれ順番に
mysql_query()で実行したとして、クエリーAが成功した後、
万一クエリーBが失敗した場合に、クエリーAの更新をキャンセルすることは
できないでしょうか?
MySQLのバージョン4あたりからCommit./Rollbackとかが使えるように
なってるらしいんですがMySQLのバージョンアップは考えておらず...
最初のクエリーの実行を一時的に保留にして、両クエリー成功時のみ更新を
反映させるなんて方法はないものでしょうか?

苦しまぎれにUpdate構文で2つのテーブルを内部結合して一発で更新、
なんて方法も試してみましたが、これもエラーに。
この方法もやっぱりムリなんでしょうか?

こういうケース、皆さんはどう処理されているのでしょう?
ちょっとMySQL板寄りの質問かもしれませんが、PHPのコードでなんとか
できる部分があればどうぞお知恵をお貸しください。
よろしくお願いいたします。
830nobodyさん:04/10/28 06:06:27 ID:???
>>827
824以前も嫁
831nobodyさん:04/10/28 07:25:46 ID:???
832 ◆.jC7ANgFY. :04/10/28 17:13:27 ID:???
>>829 ロックすればヨシ
833 :04/10/28 18:10:14 ID:???
file.txtから読み込み、ある一部のDATAを取り出し、
条件の下、別の配列に格納しようとします。

例えば、Fileから読み込み格納した配列が
(A,B,5,D,1,A,B,A,B,10,23,A,40,A,B,C)
と並んでるとします。

この中から
DATA(10,23,40)を別に取り出したい(数字10以降から表れるn=3個の数字)
時は、どう考えたら良いのでしょうか。
834nobodyさん:04/10/28 18:31:34 ID:???
>>833
(A,B,5,D,1,A,B,A,B,10,23,A,40,A,B,C)
と並んでる配列の中から数字10以降から表れる3個の数字を
別に取り出せばいいんじゃないかな?

つか何を悩んでいるのかさっぱり判らん。
835nobodyさん:04/10/28 18:58:57 ID:???
log.logに一行ずつログが書き込まれていくログファイルがあって、たとえば

太郎
花子
太郎
次郎
三郎
太郎
・・・

のようになっているとして、「太郎」を含む行だけを消したいです。(消したところは詰める)
fopen("log.log","w+")で開いて、forを用いpreg_matchで該当するモノを「""」に置き換えて消しては
fwriteでlog.logに書き込むという方法を使っていますが、ログが何メガとでかくなっていると
なんとなくデータが吹っ飛びそうで怖いです。
安全に、速く消していける組み方ってどんなもんでしょうか?
836835:04/10/28 19:03:17 ID:???
自分の書いた方がいいですね

$list=file("log.log");
$logfile = fopen("log.log","w+");
flock($logfile,LOCK_EX);
for ($i=0;$i<count($list);$i++) {
if(preg_match("/太郎/",$list[$i])) {$list[$i]="";}
fwrite($logfile,$list[$i]);
}
fclose($logfile);
837nobodyさん:04/10/28 19:17:48 ID:???
 $list=file("log.log");
から
 flock($logfile,LOCK_EX);
の間で書き込みがあったら壊れるな
838nobodyさん:04/10/28 19:28:04 ID:???
>385
テンポラリファイルでやれば途中で止まっても大丈夫。

$fpt = fopen('tmp', 'w');
$fp = fopen('log.log', 'r');
flock($fp, LOCK_EX);
while($buf = fgets($fp, 1024)){
 if(!preg_match("/太郎/", $buf)) {
  fwrite($fpt, $buf);
 }
}
fclose($fp);
fclose($fpt);
copy('tmp', 'log.log');
839nobodyさん:04/10/28 20:19:32 ID:???

$Test="_POST";

$$Testと指定して$_POSTにしformの中身を持ってきてるんですが
$$Testのなかみを無理やり、

$$Test="abc";
echo("$$Test");

としてもechoの結果Arrayとでて中身が表示されんです
"abc"を$$Testと関連付けするためにはどうしたらええんでしょうか?
840nobodyさん:04/10/28 21:55:43 ID:???
win2000でPHPとMysqlとanhttpdをインストールしたんですが、
mb_convert_encodingが使えませんorz
どこか設定ファイルを書き換えれば使えるんでしょうか。。
841nobodyさん:04/10/28 22:18:32 ID:???
マニュアルちったぁ読め。
http://www.php.net/manual/ja/ref.mbstring.php
842nobodyさん:04/10/28 22:19:23 ID:???
>>840
設定ファイルの中に書いてあるよ。
mbstring や mb_ で php.iniやphp.ini-distの中を探してみる。
さらにマニュアルのマルチバイト文字列関数のところを熟読すると、
先々でつまらないミスをしなくて済む。
843nobodyさん:04/10/28 22:32:08 ID:???
>>841-842
サンクスコです。。早速やってみます
844 :04/10/28 22:42:27 ID:???
mbは拡張扱い
845nobodyさん:04/10/28 23:46:09 ID:kVaGnhG6
こんにちは。

ちょっと自分ではどうしようもないので質問させて頂きます。
index.phpがあり、その中から、http://host.dom/print.cgiを呼び出し、且つ
その表示結果を変数に入れたいのですが、可能でしょうか?
アドバイスでも何でも結構ですので、頂ければうれしいです。
846 ◆.jC7ANgFY. :04/10/28 23:57:30 ID:???
>>845
一応こういう風にすればできる。
$var = file_get_contents('http://host.dom/print.cgi');
847 ◆.jC7ANgFY. :04/10/29 00:02:49 ID:???
>>839
$Arrayと出ていませんか?ちゃんと細かく出力結果は書くべきですよ。
それはさておき、これは(${$Test})として変換されたのではなく('$' . $Test)
として変換されたからこうなったのです。代入はうまくいきます。
最後の出力行をecho $$Test;又はecho "${$Test}";に変えてみてください。
848 ◆.jC7ANgFY. :04/10/29 00:09:08 ID:???
>>843 その場だけ使うのであればdl関数が便利。
849 ◆.jC7ANgFY. :04/10/29 00:20:57 ID:???
>>835
チェックしてないけどこれもいけるかも。
$fn = fopen('log.log', 'r+');
if (flock($fn, LOCK_EX)) {
$fn2 = fopen('log.log', 'r+');
while ($buf = fgets($fn, 4096))
if (strpos($buf, '太郎') === false) fwrite($fn2, $buf);
}
ftruncate($fn2, ftell($fn2));
fclose($fn2); fclose($fn);
850 ◆.jC7ANgFY. :04/10/29 00:24:28 ID:???
>>838
テンポラリファイルを固定してしまうならばテンポラリファイル
にもロックかけたほうがいいかも。whileループ中に多重起動した
らテンポラリファイルが消えるし追加もよくわからなくなる。

>>849
ftruncateはifブロックの中入れるべきだった…
ほかは大丈夫。な、はず。たぶん、
851843:04/10/29 01:10:07 ID:???
動いたありがとう(TT

>>848
cgi-binのperlスクリプト用datファイルはshift-jisで、ホームディレクトリ側のphpファイルはUTF-8なんで困ってました。
幸い鯖の方はmbに対応してたんですけど、やはりローカルでも同じコードで確認できないと。。
jcode.phpとかではどうもうまくいかなかった・・・。
852nobodyさん:04/10/29 01:40:58 ID:???
>>851
鯖がmbstring対応してなくても、有志がつくったmbstringエミュレータなんてのも存在する
853845:04/10/29 07:13:25 ID:???
>>846
おはようございます。
お返事遅くなってしまって失礼致しました。

上記関数で、無事値を取ることが出来ました。どうもありがとうございました。
file_get_contents()なんてあるんですね。とても勉強になりました!

854800:04/10/29 09:54:59 ID:???
昨日の800です。

言われた通りunixODBCとFreeTDSとlibiconvをインストールしました。
いざPHPでodbc_connectを使用してみようとすると、
Fatal error : Call undefines function: odbc_connect() .....
と言われてしまい動きません。

odbc関数を使用するにあたってPHP側の設定でしなければいけないことはなにがあるんでしょうか?
是非お願いします
855nobodyさん:04/10/29 11:20:26 ID:fJt1IS4+
>>800
これ読んだうえでの質問か?
http://jp.php.net/manual/ja/ref.odbc.php
856800:04/10/29 12:41:08 ID:???
リンク先の文章読みましたけど意味がわかりませんでした。
結局Linux + PHPからWindows + SQL Serverにはアクセスできないんでしょうか?
857nobodyさん:04/10/29 12:49:19 ID:???
>>856
君には。
858nobodyさん:04/10/29 13:06:38 ID:???
>>857
ワロタ
859800:04/10/29 13:18:23 ID:???
ここは質問スレッドじゃないんですか?
本当に困っているので教えていただきたいのですが・・・。
860nobodyさん:04/10/29 14:08:41 ID:???
PHP4.3.9でmysqli拡張サポートを利用したいのですが、
./configure --with-out=mysql --with-mysqli=/path/to/mysql_config
としても有効になりません。
ちなみにPHP5.0.2ではうまくいきました。

PHPのマニュアルを読むと、
http://www.php.net/manual/ja/ref.mysqli.php
> mysqli拡張サポートはMySQL 4.1.2以上で動作するよう設計されています。

と、書いてあるだけで、PHPに関しては特に何も書かれていないのですが…。
PHP4.xで利用する方法はあるでしょうか?

環境:FedoraCore2+MySQL 4.1.7+PHP4.3.9
861860:04/10/29 14:13:15 ID:???
2行目の./configureのオプションは、--without-mysql …のtypoでした。
862nobodyさん:04/10/29 14:19:17 ID:???
>>860-861
釣り?

一応マジレス。
without-mysqlしちゃうとmysql無効になるので、
mysql使いたいならwith-mysqlにしなければならない。

詳しくは、./configure --help|grep "mysql"

マニュアルよく読め。
863862:04/10/29 14:21:12 ID:???
激しく勘違い。
>862は無かったことにしておいて下さい。
864 :04/10/29 14:31:48 ID:???
ここは隔離板なので、期待はしないほうがいい
PHPがマイナーな事もあるが。
865nobodyさん:04/10/29 14:41:30 ID:???
PHPで2chのIDみたいにランダムな文字&数字はどうやってできますか?
よろしくおねがいします。
866nobodyさん:04/10/29 14:47:53 ID:???
867 :04/10/29 14:48:54 ID:???
>>865
一般にはMD5を使うことになるのかな
関数「md5」の欄参考
868nobodyさん:04/10/29 14:56:23 ID:???
>>860
RHL9+PHP4.3.8でMySQL付属(PHPのバンドルではない)の
新旧クライアントライブラリ使ってmysql/mysqli両方とも使ってるけどな。
マニュアルの説明に従っただけで特に何もして無いよ。
実験段階の頃のmysqliとそのころのPHPでも問題はなかった
(多少の問題はあったが、動いていたということ)
869868:04/10/29 15:01:40 ID:???
ごめん。バージョン確認したらPHP5.0だった…
多分実験段階で動かしてたのもPHP5のalphaとか正式版以前のものだわ。
870 :04/10/29 15:03:13 ID:???
>>869
処刑決定・・・
871860:04/10/29 15:08:15 ID:???
>>862
こやつめ…ハハハ…(AA略

>>867
32文字固定になってしまうので、>>886に載ってるサンプルがよろしいかと。

>>868-869
おお!と思ったのもつかの間、やっぱりだめでしたか。
何が原因ですかねぇ。
872nobodyさん:04/10/29 15:12:20 ID:???
886 よ、サンプルよろ。
873868:04/10/29 15:18:45 ID:???
>>871
原因というか、
http://www.php.net/manual/ja/function.mysqli-connect.php
のようにmysqliのメソッドの記述のあたりをみても、
PHPの対応バージョンがPHP5となってることから使えないと思う。
だからPHP4で使った/使えた記憶が微かにあるのだが、これは完全に思い違いと思われる。

#PHP4/5もMySQLもApacheも、インストールしてる奴が微妙に1つ前のばっかりだ..orz
874865:04/10/29 15:25:38 ID:???
うーん。よくわからないです@MD5
2〜3行で簡単に作れますかね?
875860:04/10/29 15:26:59 ID:???
>>873
ああなるほどw
まだ、使う前なのでそこまで見ていなかった。
どうせなら、導入部分に書いといてくれたらいいのにね。
対応していないということがはっきりしたのですっきりしました。
どうもありがとう。
876nobodyさん:04/10/29 15:32:41 ID:???
>>874
MD5って32文字の0123456789abcdefの文字の羅列だぞ
md5();で出たと思う
877865:04/10/29 15:45:31 ID:???
もしよろしければ$hogeにランダム文字を入れて書き込んでいただけないでしょうか
878nobodyさん:04/10/29 16:03:21 ID:???
$hoge = rand();
879 :04/10/29 16:08:08 ID:???
$rand = mt_rand(100000,999999);
$rand = base64_encode($test);
echo $test;

OK?
880 :04/10/29 16:09:29 ID:???
>>879 ×

$rand = mt_rand(100000,999999);
$rand = base64_encode($test);
//echo $test;


encode($test)って一体・・・orz
881 :04/10/29 16:10:52 ID:???
あー
base64_test($rand);
と脳内変換してくれ
882nobodyさん:04/10/29 16:19:39 ID:???
mt_srand((double)microtime()*1000000);
$hoge = md5(uniqid(rand(),1));
883nobodyさん:04/10/29 22:09:16 ID:???
Perlの配列のような使い方って出来ませんでしょうか?
フォームの値が”みかん、りんご、ばなな”として
それを変数”fruit”に代入します。perlだと

@fruit=("みかん,りんご,ばなな");
print "$fruite";

としたら結果表示が「みかんばななりんご」
と出来たと思うのですが、PHPのやり方がよくわかりません。。
884nobodyさん:04/10/29 22:17:23 ID:???
>>883
何をやりたいのかいまいちよくわからんが、

$arr = array("みかん","りんご","ばなな");
print join("", $arr);

ってことか?
885883:04/10/29 22:20:38 ID:???
>>884
はい、そういう事なのですが、出力結果は「Array」とだけ表示されてしまいます。
下記のように記述しているのですが。。(フォームの値を取得しています。)

<?
$fruit = array('$fruit01','$fruit02','$fruit03');
print ($fruit);
?>
886nobodyさん:04/10/29 22:23:11 ID:???
>>885
だから join だって
887 :04/10/29 22:28:23 ID:???
中身知りたいのなら
print_r($fruit);
888883:04/10/29 22:28:56 ID:???
>>886
すみません、質問自体が馬鹿でした・・。
要はこういう事です。

■フォームのチェックボックスより選択
・好きな果物は?
みかん($fruit01)りんご($fruit02)ばなな($fruit03)

「確認ボタン」をクリックすると確認画面が現れて下記のように表示されている

好きな果物:(チェックした果物名が表示されている )


上記のような事がしたかったので、果物名を$fruitに代入して
その中身を表示する記述がしたかったのです。
889nobodyさん:04/10/29 23:18:08 ID:???
悪いこと言わないから、マニュアルを熟読するかPerlでやるかどちらかを選べ。
Perlでまともな物をかける人間なら、マニュアル読めば絶対理解できる。
保障する。
890nobodyさん:04/10/29 23:28:05 ID:???
perlで○○はphpはどうすれば
っていう質問いい加減ウザイ
周りがPHPだから自分も移行ってか?さっさと氏ね
891 :04/10/29 23:33:59 ID:???
いいよ、PerlでもPHPでも何でも
知りたいなら質問すればいいけど、
自分でも調べてね
892nobodyさん:04/10/29 23:58:10 ID:???
本買わない奴多いのかなぁ。
俺は他言語に移るときは必ず本買うけどなぁ。
893nobodyさん:04/10/30 00:01:53 ID:???
本買わなくたってマニュアル読めば済むと思うが。
プログラム自体初めてだったら参考書も必要だろうけどね。
894nobodyさん:04/10/30 00:05:04 ID:???
ネットにおいてあるマニュアル、親切だし本(゚听)イラネ
895nobodyさん:04/10/30 00:18:34 ID:???
886とか884とか答えそのものを示されても読まないし試しもしない。
そういう馬鹿は質問すんな。リストラされて引きこもってろ。
896nobodyさん:04/10/30 01:33:39 ID:???
$image = imagecreatefrompng("./puyo/w_01.png");
imagepng($image);

こう書いたんですが、

臼NG

としか表示されないんですがどうしてでしょうか?
鯖はXREAで、GDライブラリも最新版のものが入っていたはずです。
897 :04/10/30 01:53:54 ID:???
配列$array.Key 4.5.6を合計したい(valueは当然数字が入ってる)んだが、上手く行きません
898nobodyさん
>>896
HTTPヘッダ。