5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

【PHP】下らねぇ質問はここに書き込みやがれpart15

1 :nobodyさん:2006/01/14(土) 20:06:11 ID:???
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは流れを見て970/980/990の誰かが建てれ

まず読め【PHP マニュアル】
http://www.php.net/manual/ja/

本スレ【PHP】質問スレッドpart32【php】
http://pc8.2ch.net/test/read.cgi/php/1136276300/
前スレ【PHP】下らねぇ質問はここに書き込みやがれpart14
http://pc8.2ch.net/test/read.cgi/php/1134868212/

過去スレは>>2
FAQは>>3

2 :nobodyさん:2006/01/14(土) 20:06:45 ID:???
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
【PHP】下らねぇ質問はここに書き込みやがれpart10
http://pc8.2ch.net/test/read.cgi/php/1127581425/
【PHP】下らねぇ質問はここに書き込みやがれpart11
http://pc8.2ch.net/test/read.cgi/php/1129582431/
【PHP】下らねぇ質問はここに書き込みやがれpart12
http://pc8.2ch.net/test/read.cgi/php/1130835396/
【PHP】下らねぇ質問はここに書き込みやがれpart13
http://pc8.2ch.net/test/read.cgi/php/1132921016/

3 :nobodyさん:2006/01/14(土) 20:07:03 ID:???
・FAQ
1. "$hoge[0]" と書くとエラーが出るよママン
 →"〜"の中で添え字([〜])やメンバ変数参照(->)みたいなのは直接書けないので"{$hoge[0]}"と{}でククレ

2. あっちのサーバーでは普通に動くのにこっちのサーバーではエラーになるよママン
 →PHPはコンパイルオプションやphp.iniの設定で動きが全然違うので管理してる香具師に確認汁!


4 :nobodyさん:2006/01/14(土) 20:27:37 ID:ILCMT976
正規表現について質問です。


$uri = $_POST['uri'];
$file = fopen("log.dat","r");
while($row = fgets($file,1024)){
    if(eregi("($uri)[a-z0-9./_\-]+",$row,$data)){
        print("$data[0]");
    }
}
fclose($file);

これで「htt?://hoge.com/」を正規表現で検索したいのですが
「htt?://hoge.com/」を「http:/hoge.com」(未尾のスラッシュを取る)にしないと
結果を表示してくれません。
これは何故でしょうか?

5 :4:2006/01/14(土) 20:32:21 ID:ILCMT976
スマソ訂正:

これで「htt?://hoge.com/」を正規表現で検索したいのですが
「htt?://hoge.com/」を「htt?://hoge.com」(未尾のスラッシュを取る)にしないと

6 :4:2006/01/14(土) 20:33:11 ID:ILCMT976
スマソまた訂正:

これで「http://hoge.com/」を正規表現で検索したいのですが
http://hoge.com/」を「http://hoge.com」(未尾のスラッシュを取る)にしないと

7 :nobodyさん:2006/01/14(土) 20:35:57 ID:???
>>6
つか正規表現以外のものにもかなりマッチするけど、それはいいの?

8 :nobodyさん:2006/01/14(土) 20:36:29 ID:???
>>4
if(eregi("($uri)[a-z0-9./_\-]+",$row,$data)){
ってのを
if(eregi("($uri)[a-z0-9./_\-]*",$row,$data)){
にしたら動かん?

9 :7:2006/01/14(土) 20:38:16 ID:???
すまん。「URL 以外のもの」だった。

10 :nobodyさん:2006/01/14(土) 20:56:59 ID:PuQcgqqK
>>4
例に使うドメインはexample.comな。それ以外は実在する可能性があるから適当でない。

11 :nobodyさん:2006/01/14(土) 21:09:17 ID:???
別にどうでもいいだろ。トリビア披露なんざ他所でやれ

12 :4:2006/01/14(土) 21:13:19 ID:ILCMT976
>>8
できました!ありがとうございます。

>>9
全然OKです。

>>10
そうだったのですか…気をつけます。

13 :nobodyさん:2006/01/14(土) 21:24:52 ID:???
>>11
トリビアでもなんでもない
普通に守るべきルール

14 :nobodyさん:2006/01/14(土) 21:32:08 ID:???
>>13
何が「普通」で、何故「守るべき」なのかが不明だな。
意図が伝わっている以上、どうでもいいこと。

15 :nobodyさん:2006/01/14(土) 21:40:32 ID:???
>>14
RFC

16 :nobodyさん:2006/01/14(土) 21:46:22 ID:???
あー。次のスレではそれもFAQに入れときますかね。 >example.com

17 :nobodyさん:2006/01/14(土) 21:59:52 ID:???
このスレ雑談がメインなのにFAQなんかいらなくね?

18 :nobodyさん:2006/01/14(土) 22:12:01 ID:???
>>17
あって困りはしないから、別にいいんじゃね?

19 :nobodyさん:2006/01/14(土) 22:13:38 ID:???
>>3
> 1. "$hoge[0]" と書くとエラーが出るよママン
>  →"〜"の中で添え字([〜])やメンバ変数参照(->)みたいなのは直接書けないので"{$hoge[0]}"と{}でククレ

エラーが出ないよママン

> 2. あっちのサーバーでは普通に動くのにこっちのサーバーではエラーになるよママン
> →PHPはコンパイルオプションやphp.iniの設定で動きが全然違うので管理してる香具師に確認汁!

こんな質問フリークエントリーアスクトじゃないよママン

20 :nobodyさん:2006/01/14(土) 22:30:26 ID:???
どー見ても冗談で書いてるFAQだよな。あれ。

21 :nobodyさん:2006/01/14(土) 22:39:50 ID:???
FAQはネタのつもりかもしれんが、普通にまぎわらしいし。
>>1の中にアンカーまでついてるし。
つーかそれよりも最近の釣りと自演をどうにかする方策でも立ててほしいもんだ。
見え見えすぎてうざげ。
どーでもいーっちゃどーでもいーけど。

22 :nobodyさん:2006/01/14(土) 22:54:16 ID:???
どーせ真面目にFAQ書いたところで質問する前に読むやついないしな

23 :nobodyさん:2006/01/14(土) 23:00:33 ID:???
FAQ のこれ読めって言えればこっちが楽だし、あったらいいと思うけどな

24 :nobodyさん:2006/01/14(土) 23:05:33 ID:???
まあ本スレのほうはFAQにある質問の重複が減ったようだからいいけど。
過去スレあさるとよくわかる。

25 :nobodyさん:2006/01/15(日) 04:27:41 ID:???
FAQ充実させよう。まとめWikiとか作ろうぜイエイイエイ

26 :nobodyさん:2006/01/15(日) 04:28:30 ID:???
あ、俺はやだかんね

27 :nobodyさん:2006/01/15(日) 05:14:47 ID:???
すみません、ご教授ください。
あるデータからXMLファイル(UTF-8)を作成するスクリプト作ったのですが、
そのXMLファイルを使うソフトがBOM(EFBBEF)つきのUTF-8ファイルしか読んでくれません。
ファイルの先頭部分にBOMを付加したい場合、どのような処理を施せばよいのでしょうか?
スクリプト自体はSJISで書いています。

$filename = "./BlandList.xml";
$fp = @fopen($filename, "wb") or die("Error");
fwrite($fp, "EFBBEF");
fclose($fp);

って書いたら先頭にEFBBEFの文字列が追加されただけでした…当然か

28 :27:2006/01/15(日) 05:17:20 ID:???
上記のスクリプトの後に本来の目的であるデータを書き込んで、終了する処理をしてます
書き忘れすみません。

29 :nobodyさん:2006/01/15(日) 07:12:23 ID:???
>>27
fwrite($fp, pack('C*',0xEF,0xBB,0xEF));

30 :29:2006/01/15(日) 07:18:08 ID:???
つか、Notepadで保存して見てみたけど
EFBBBFだったぞ<BOM


31 :nobodyさん:2006/01/15(日) 11:37:52 ID:nt4rtanc
PHPで文字コードとMIMEを設定するには、
AddType "text/html; charset=Shift_JIS" .php
でいいの?


32 :nobodyさん:2006/01/15(日) 11:43:57 ID:???
ぐぐった?

33 :nobodyさん:2006/01/15(日) 11:45:37 ID:nt4rtanc
>>32
ぐぐりました。
そうしたら、
AddType application/x-httpd-php .php
もでてきたんですが、これでは、文字コードは指定できません。
どのようにすればいいでしょうか?

phpをshift_jisで認識するようにサーバで設定したいのです。


34 :27:2006/01/15(日) 12:58:55 ID:???
>>29-30
BOMはEFBBBFでした、書き間違えすみません。無事に出来ました。

$filename = "./BlandList.xml";
$fp = @fopen($filename, "w") or die("Error");
fwrite($fp, pack('C*',0xEF,0xBB,0xBF));//BOM書き込み
fwrite($fp, $sdadata);//データ書き込み
fclose($fp);

ファイルをバイナリモードで開く必要はなかったんですね。
pack関数、初めて知りました…まだよく理解はできてないんですが
とにかく助かりました、ありがとうございました。

35 :nobodyさん:2006/01/15(日) 13:58:23 ID:???
>>34
>ファイルをバイナリモードで開く必要はなかったんですね。

最近のバージョンのPHPは、バイナリーモードがデフォだから付けなくても構わない。
ただ、どのようなバージョンで使われるか判らないコードを書く場合は、
Windowsの場合には確実にバイナリモードになるように、'b'を付けといた方が
余計なテキストモードとして扱われて変な目にあわずに済む。

36 :nobodyさん:2006/01/15(日) 16:16:50 ID:???
>>25
まず、お前がFAQの草案作れ。
話しはそれからだ。

37 :nobodyさん:2006/01/15(日) 17:03:44 ID:???
広告付きで良いならwikiを作っても良いよ。
xreaとか@wikiとかから適当に選べば良いんだし。

38 :27:2006/01/15(日) 17:04:28 ID:???
>>35
なるほど、そういうことなんですね。アドバイスありがとうございます。

もう一点質問させてください。
データベースを書き換えるPHPスクリプトを毎日〜時に動作させたい場合、
どのような方法が挙げられるでしょうか?
これまではDNS更新ソフトDiCEを使って、サーバー(レンタル鯖)上のphpファイルをブラウザで開く動作を
指定時間に実行させるという強引な方法でやってきたのですが、
これだと常時PCを起動しておかなくてはいけないし…
CRONだとphpを実行できないらしいですし…

PHP自体の質問でなくて申し訳ないのですが、ご助言お願いします。

39 :nobodyさん:2006/01/15(日) 17:09:31 ID:???
>>37
広告なしで作れたほうがよさげ

作ってます、しばしお待ちを。予定地↓
http://wiki.2chx.net/php/

40 :nobodyさん:2006/01/15(日) 17:11:32 ID:???
>>38さん
私は、CRONで、wgetでやってます。

41 :nobodyさん:2006/01/15(日) 17:13:51 ID:???
39はドラえもんだったのか。
と、リンク先を見て思った今日この頃。

42 :nobodyさん:2006/01/15(日) 17:18:27 ID:???
>>38
cronからcli版のphpを起動できるよ。(他にmodule版やらcgi版がある)
更にcronからテキストブラウザを使えば、web鯖経由で起動できるし。

43 :nobodyさん:2006/01/15(日) 17:19:12 ID:???
>>38
> CRONだとphpを実行できないらしいですし…
これはWebページとしてのPHPの話だよな?
普通に、バッチ処理として動くCLIのDB更新PHPスクリプトを書いて
それをcronで呼び出せば済む話だと思うぞ。

44 :掃除屋 ◆2ch..Ybe0Q :2006/01/15(日) 18:19:34 ID:???
http://wiki.2chx.net/php/

PHPpedia (PHP FAQ集積所) 完成しました。
多少動作が重いかと思いますが、無広告ですのでご了承下さい。

まだ過去ログのFAQ漁っていません。

45 :nobodyさん:2006/01/15(日) 18:27:39 ID:Q095YYYr
>>44


46 :nobodyさん:2006/01/15(日) 18:30:11 ID:???
どういう構成にすっかね

47 : ◆dLhE9.4y/I :2006/01/15(日) 18:42:45 ID:???
part11の423の内容追加しときます。

48 : ◆2ch..Ybe0Q :2006/01/15(日) 18:49:56 ID:???
私は、簡単なFAQはメインページに書いて、
詳しい説明が要るものはページを新たに作ればいい、と考えてます。

49 : ◆dLhE9.4y/I :2006/01/15(日) 18:57:27 ID:???
ざっと追加しときました。

関数名がでたらドキュメントへリンク張った方がいいかも。

50 :27:2006/01/15(日) 19:14:02 ID:???
>>40,42-43
example.phpがデータベースを更新するスクリプトとしたら、
00 19 * * * /usr/local/bin/php /home/example.com/public_html/example.php
のような書き方でCRONに登録したらできたみたいです。
ご助言ありがとうございました。

51 :38:2006/01/15(日) 19:15:13 ID:???
27=38です、見にくくなってすみません。

52 :nobodyさん:2006/01/15(日) 21:13:41 ID:???
>>50
そんだけの話かよorz
その場合、できれば > /dev/null って末尾に付けた方がいいぞ。
まー、誰もrootのメールなんて見てないのかもしらんけど。

53 :nobodyさん:2006/01/15(日) 21:32:31 ID:???
>>33
php.iniの以下の項目を設定する。
default_mimetype = "text/html"
default_charset = "Shift_JIS"

以下もやっておいた方がいいかな。
mbstring.language = Japanese
mbstring.internal_encoding = SJIS
mbstring.http_output = SJIS
mbstring.encoding_translation = On

php.iniがいじれない場合は、Apache側(httpd.confかhtaccess)で以下の書式で設定。
php_value 項目 値

54 :nobodyさん:2006/01/16(月) 00:47:10 ID:???
株価分析みたいなサイトを作れないか、と検討してるんですが、
過去の全銘柄の日々の株価を全部掲載してるサイトってないでしょうか。
図書館行けばありますか?
また、日々の最新株価を汎用フォーマット(RSSとかCSVとか)で配布している
サイトってないでしょうか。

楽天のRSS取得ソフトというのは調べて見つけましたが、生のデータがほしい。

55 :nobodyさん:2006/01/16(月) 00:48:24 ID:???
あれ、汎用質問スレかと思ったらPHP専門だった・・。
せっかくなので知ってる人いましたら教えてください。

56 :nobodyさん:2006/01/16(月) 00:58:29 ID:???
知らない

57 :nobodyさん:2006/01/16(月) 01:24:19 ID:???
>>54
そんなデータが抜け目なく揃っていたら商品として十分な価値があるので、
フリーでは転がっていないと考えるのが懸命。
証券会社とかが提供しているトレーディングツールの意味がなくなるし。

58 :nobodyさん:2006/01/16(月) 01:51:02 ID:???
すんません、メールアドレスのチェックをしたいんですが
ereg("^[a-zA-Z0-9_\.\-]+@(([a-zA-Z0-9_\-\.]+\.)[a-zA-Z0-9]+$)",$mail)
の場合

XXX@XX.ne.jpみたいに.が二つある場合はtrueなんですが
XXX@XX.comのような.がひとつしかない場合はfalseを返してしまいます。
ともにtureを返したいのですがどうすればいいでしょうか?

59 :nobodyさん:2006/01/16(月) 02:00:00 ID:???
>>58
正規表現道場@2ch Part4
http://pc8.2ch.net/test/read.cgi/php/1105930285/


60 :nobodyさん:2006/01/16(月) 02:12:02 ID:???
>>57
株価自体に著作権はないし、どっかに落ちてるかと思ったんですけどね。図書館行ってみます。

>>58
^[a-zA-Z0-9_\.\-]+@(([a-zA-Z0-9_\-]+)\.([a-zA-Z0-9_\-]+)(\.[a-zA-Z0-9]+)?)$
括弧は本当に必要?おれPerlだからまちがってたらごめんね。

61 :nobodyさん:2006/01/16(月) 02:22:19 ID:???
>>60
とことんスレ違いなやつだな

62 :nobodyさん:2006/01/16(月) 02:40:12 ID:???
>>54
天気とか株価とか為替とか、あの手の情報をネットで提供してる会社は多いよ。
勿論"有償"だが。

63 :nobodyさん:2006/01/16(月) 02:50:27 ID:???
>>60
著作権の問題じゃなく、それだけの情報を保持するだけの
労力とサーバー維持費は並大抵のものじゃないから
無償でそんなの作れると考えるのは浅はかだろう。
ま、頑張って図書館の新聞でも漁ってください。

64 :38:2006/01/16(月) 02:58:36 ID:???
>>54
ttp://www.mujinzou.jp/
無尽蔵じゃだめですか?10年前くらいまでならあるかと。
ttp://homepage2.nifty.com/portal/link/data.htm
のリンク集も参考に…
ってこれくらいはぐぐった上で足りないから質問してるんだろうなぁ…

似たようなことをしようとしている人がいて面白かったのでレスしてみました。

>>52
rootのメール…?/dev/null って末尾につける意味がわからないです、すみません
サーバーのコマンドの類は勉強不足でよくわからないんです…
何か良書とか最低限のことをつかめる学習法ってありますかね?
自鯖は練習でfedoracore3たててみたことはあるんですが、書籍の設定通り以上の理解ができてない…

65 :nobodyさん:2006/01/16(月) 03:08:11 ID:???
Header()のLocationでページ遷移した後に、
あらかじめ設定しておいたメッセージを表示するには、
どういった方法がよいでしょうか?
セッションは使いません。

66 :nobodyさん:2006/01/16(月) 03:14:25 ID:???
>>38
ごめんなさい。探し方が悪かっただけでした。丁度、ご紹介のリンク集に自力で行き着いたところでした。
投資ブームですからね。なんか面白いことできないかなあ、と。市況情報のカレンダーをiCalendarで配信とか。

>>62
実は天気予報は有償配信を受けたことがあります。
予報は予報士の専売特許(法にふれる)なので有償は当然ですね。月々相場10万以下でFTP配信でした。
過去のデータは無償配布してるところもあるかもだけど、
どちらにしても膨大なデータなので無償配布は物好きですね。

すれ違い、すみません。株式板とPerlスレに戻ります。

67 :nobodyさん:2006/01/16(月) 04:03:37 ID:???
>>65
Location先のURLにGETで値を渡す。

68 :nobodyさん:2006/01/16(月) 04:09:53 ID:???
>>67
任意の日本語メッセージ文を設定したいんですけど、
それをURLエンコードしてもGETで送りたくないし、
それって、実際の処理結果と一致するとは限らないことになるので、
そういう不完全な方法は取りたくなく・・・。


69 :nobodyさん:2006/01/16(月) 04:31:31 ID:???
どうせあれだろ。

form.php → exec.phpとかで投げて、
項目にエラーがあればexec.phpで表示、
大丈夫なら処理して、form.phpにLocationで戻すってやってて、
クライアントから「完了したら完了したメッセージを出してくれ」とか来たオチっぽいな。

70 :nobodyさん:2006/01/16(月) 06:11:10 ID:???
>>68
そういう条件があるなら最初か(cy
ならGETでユニークIDを渡して、そのIDに従った処理を
受け側のスクリプトでさせれば?

クッキーを使用しないSESSIONと同じ事だけど。独自SESSION。
前段にLBとか入れてhttpdを分散させてる場合はSESSIONと同様に、
IDと情報の結び付けを共有する仕組みがないと駄目だけどね。

71 :nobodyさん:2006/01/16(月) 08:13:40 ID:N8Tn4EdB
あるページを同時に参照した時に
2人目以降の画面では内容を変更できないように読み取り参照みたいな形で
開きたいのですがこういうことってPHPでできるのでしょうか?
それともwebサーバの機能になってくるのでしょうか?

72 :nobodyさん:2006/01/16(月) 08:33:40 ID:???
>>65
Location先が同じホストだったらincludeかrequireでつなげた方が

73 :nobodyさん:2006/01/16(月) 10:24:54 ID:???
>>64
cronで実行したプログラムが標準出力に何か出力してると
それがそのサーバーのrootアカウントにいちいちメールで通知されてる。
実行ログやエラー情報ならともかくHTML出力なんて記録しても意味ないだろうから
cronの実行プログラム末尾に > /dev/null をつけて出力を出さないのが常道。

74 :nobodyさん:2006/01/16(月) 10:28:57 ID:???
>>71
JavaScript(かそれに類するクライアントスクリプト)+PHPでできんじゃないの?
そのページの表示中はバックグラウンドで一定間隔でサーバーに接続中であることをリクエストし続けて、
そのリクエストが入ってる間にページ表示のリクエストがあった場合は読み取り専用の表示を返す、とか。
Ajaxとかで似たようなことはやってんじゃないでしょうか。

75 :nobodyさん:2006/01/16(月) 10:40:38 ID:???
>>71
ページを読み取り参照ってどういうことだ?
Wiki かなんか作ろうとしてるの?

76 :nobodyさん:2006/01/16(月) 11:21:32 ID:???
>>75
単にフォームの更新ボタンを表示させないとかそんな程度の話なんじゃねーの?

77 :nobodyさん:2006/01/16(月) 11:30:36 ID:???
同時参照で2人目以降っつーのもよく分からず
例えばどれだけ時間の間隔が開いてたら2人目以降も「読み込み参照」
じゃなくてもよいのか?

あと、同時にリロードしたら今度はその「読み込み参照」が
別の人に回る可能性もあるんだけどそれでもいいのか?
(たぶんダメだろう)

78 :nobodyさん:2006/01/16(月) 11:42:40 ID:cEjGfkGL
フォームで入力してホームページの一部分を更新したいと思っています。
PHPを使えばできますか?


79 :nobodyさん:2006/01/16(月) 11:50:59 ID:???
>>78
釣りなのか…?
BBS、blog、CMSなどがまさにそれ。

80 :nobodyさん:2006/01/16(月) 11:53:22 ID:???
>>78
PHPだけでやるなら>>77みたいに、一定時間が経過するorフォームからのリクエストを受けるまで、他からの更新をさせなければ良い。
”編集には入ったけど更新せずにブラウザを閉じた”みたいな時に早く次の人に順番を回したければ>>74みたいな事が必要。

81 :nobodyさん:2006/01/16(月) 12:05:16 ID:cEjGfkGL
>>79 80
PHPで、できることがわかりました。
ありがとうございます。

PHP初心者でもプログラムできるものでしょうか?
参考になるURLや書籍などがありましたら
教えてください。よろしくお願いいたします。

82 :nobodyさん:2006/01/16(月) 12:12:35 ID:???
>>80>>81
80は78に対する回答じゃないだろーw

83 :79:2006/01/16(月) 12:23:29 ID:???
>>81
誰でも最初は初心者なので、できるといえばできる。
ただし、それなりに長いプログラムを書くことになるので、いきなりできるわけではない。

やりたいことが伝わってこないので何とも言えないけど…。
新規に作る必要があるのかどうか検討すべき。
やりたいことがすでに公開されているツールでできるなら、そちらを利用した方が手っ取り早い。
wiki、blog、CMSといったキーワードでググってみるがよろし。

84 :nobodyさん:2006/01/16(月) 12:31:42 ID:PmlJdI8i
質問です。
php4.4.2が出たのですが、php4.4.1であったmb_send_mailで件名が文字化けするというバグは修正されたのでしょうか?

よろしくお願いします。

85 :nobodyさん:2006/01/16(月) 12:47:42 ID:???
>>84
直ったよ。
changelog読め。日本語訳も公開されてる

86 :nobodyさん:2006/01/16(月) 12:56:13 ID:PmlJdI8i
>>85
ありがとうございます。
助かります。

http://eth.jp/hiki.cgi?PHP-Changes-4.4.2

上記は見たのですが、mb_send_mailで検索すると以下しかなかったので不安でした。

#34830のバグ修正 (mb_send_mailの第五引数が機能していない). (Rui)



87 :nobodyさん:2006/01/16(月) 13:07:00 ID:???
>>86
#33720のバグ修正 (mb_encode_mimeheader がマルチバイト文字に対して機能しない). (Rui)


88 :nobodyさん:2006/01/16(月) 13:20:01 ID:???
>>87
ありがとうございます。
なるほど、件名はmimeheaderなんですね。

89 :nobodyさん:2006/01/16(月) 13:26:34 ID:BuN0Lcur
phpunit 0.5を使ってテストをやろうと思い、
インストール後
PHPUnit Cookbook
http://sourceforge.net/projects/phpunitcookbook/
のサンプルコードを使ってテストしたところ
ブラウザには何の表示もされず、テスト結果が表示されません。
(htmlソースも表示されません)
エラー表示もないので原因がつかみにくいのが現状です。
原因がおわかりの方、ご教示お願いいたします。

開発環境
OS:windows2000
PHP:5.1.1
phpunit: ver 0.5
Apache: 1.3.33


90 :71:2006/01/16(月) 13:27:37 ID:???
>>72-77
みなさんすいません、意味がわかりにくかったですね。
えと、あるwebシステムを作っているのですが
一人目Aさんが最初に開いた場合はその人ではフォーム画面(編集可)を表示させ、
Aさんがそのシステム内のページを見ている時は別のBさんが開くと編集不可のページ内容を
出力したいのです。出力するデータはみんな同じです。
Aさんが閉じた後はBさんがリロードもしくはCさんが開けばまた編集できる画面を表示させたいのです。
編集不可のページはreadonlyの形でもいいし普通にべたで出力してもかまいません。

こんなことする理由は複数の人がページを開いておりおのおので変更を加えた場合に整合性がとれなくなると
言うことなんです。

こんな感じでわかりますでしょうか?? ややこしくてすいません。

91 :nobodyさん:2006/01/16(月) 13:40:40 ID:???
>>90
Aさんが閉じた「直後」には他の人が編集可能なようにするなら、
JavaScriptなりFlashなりJavaAppletなりを介在させないと難しいと思う。
楽に実装するなら、Aさんが開いてから1時間はその人しか更新できない、
という時間制限方式にする方法かな。

92 :nobodyさん:2006/01/16(月) 13:48:38 ID:???
>>88
件名がmimeheaderっていうとちょっと違う。
その辺は、メールのheaderがどういう構成になるのかを勉強してくれ。
この辺も参考に。
http://d.hatena.ne.jp/t_komura/20051105#1131202088

93 :nobodyさん:2006/01/16(月) 13:49:16 ID:???
>>89
エラーを表示するようにする

94 :nobodyさん:2006/01/16(月) 13:56:09 ID:???
>>93
php.ini で
display_errors = On にしているんですがエラーが表示されません。
他のスクリプトで文法ミスなどやらかした場合はエラーが表示されます。

95 :nobodyさん:2006/01/16(月) 14:15:35 ID:???
>>94
error_reporting(E_ALL);

96 :nobodyさん:2006/01/16(月) 14:16:39 ID:???
A さんに編集の意思がなく閲覧している場合も B さんは編集できなく
なるわけだけど、そんな使いにくいものでもいいの?

つかそういうのは更新の処理によって変わるもんだしなぁ。
閲覧用にページを出力する段階で切り替えるもんではないと思うが。

97 :nobodyさん:2006/01/16(月) 14:17:28 ID:???
>>94
単に PHPUnit の書き方を間違ってるだけと思われます

98 :nobodyさん:2006/01/16(月) 14:26:05 ID:???
>>95
何も表示されませんでした。

>>97
やはりそうなんでしょうか。
サンプルコードをそのまま使ったのがまずかったのかもしれません…。

99 :90:2006/01/16(月) 14:29:27 ID:???
>>96
そんなものでいいです。
他にいい案とかあれば教えてほしいですけど。
とりあえずは上に書いたように変更処理さえ問題なければ^^;

100 :nobodyさん:2006/01/16(月) 14:40:20 ID:???
>>98
そもそも謎なのが、PHPUnit 0.5 なわけだが。
PHPUnit の stable は 1.3.2, PHPUnit2 で 2.3.4 なわけで
いったい何使っての?


101 :nobodyさん:2006/01/16(月) 14:46:37 ID:???
>>100
すみません。ここのphpunit使ってました。
http://sourceforge.net/project/showfiles.php?group_id=10610

かなり古かったんですね…。

102 :nobodyさん:2006/01/16(月) 15:28:36 ID:???
>>96
目的は「編集不可のページを表示すること」って書いてるんだから
その内容は「現在、他のユーザが編集中です」ってメッセージでもいいんだろうさ。

103 :nobodyさん:2006/01/16(月) 16:07:33 ID:???
>>90
その手法だとAさんが作業終了したことをどサーバ側にしらせる手法が必要になる。
それが先に上がっているJavaScriptなんかだったりするわけだ。
さもなくば単純にAさんの読み込みからN分間他者に編集権を与えないようにするか。

ただ、整合性を保つという目的を果たすだけなら
1.編集前のバージョンとユーザを結びつける
2.編集画面を出力
3.ユーザが編集・更新ボタン押下
4.ユーザに結び付けられた編集前のバージョンと保存されているバージョンを比較し
  同一なら保存・バージョンを繰り上げる さもなくば破棄

簡単にするためにバージョン情報としてタイムスタンプを使うのが簡単かな。バージョンナンバー振ってもいいけど。

104 :nobodyさん:2006/01/16(月) 16:13:54 ID:???
編集画面開いてた人が必ず「編集完了ボタン」をクリックすること、
って縛りを入れちゃうのも手かもな。
それが通知されたら以降の最初の人が編集画面を開けるようになる、と。

105 :nobodyさん:2006/01/16(月) 16:50:19 ID:???
>>104
それが出来れば苦労はない
ブラウザ開きっぱなしで寝るやつやボタンを押さないでブラウザを閉じるやつが続出するから困るんだ。

106 :nobodyさん:2006/01/16(月) 16:59:33 ID:???
>>105
セッションで管理すればいいんじゃないの?


107 :nobodyさん:2006/01/16(月) 17:27:33 ID:???
つまり 90 は実現が面倒なうえに使いにくいシステムを作ろうとしてるってこった

108 :nobodyさん:2006/01/16(月) 18:57:35 ID:???
使いにくさとかに関しては、閲覧画面と編集画面分ければいいだけだから、あんまり関係ないのでは?
やっぱ、Aのブラウザが編集中であることをJavaScriptのHTTPアクセスで一定時間毎に伝えるってのが、現実的な話かな。


109 :nobodyさん:2006/01/16(月) 18:58:21 ID:???
includeがうまく働いてくれません。エラーが出てしまいます。
セーフモードだからでしょうか?

110 :nobodyさん:2006/01/16(月) 19:20:35 ID:???
>>109
セーフモードは関係ない。
とりあえずエラー出してもらわんとわからんよ。
考えられる原因としたら、include文がおかしかったのか、
includeするファイルの中身がおかしかったのか、
まぁもう少し確認してみれ。

111 :nobodyさん:2006/01/16(月) 19:23:34 ID:???
>>108
元の話を無視していいならそりゃ使いやすさと関係ないわな

112 :nobodyさん:2006/01/16(月) 19:28:44 ID:???
>>111
なるほど>>90を読み返したらそうだな。
ダメwebページだ。

113 :abebo:2006/01/16(月) 19:32:32 ID:Oa1MF5mS
マイポップってどうやって消すか知りませんか?

114 :nobodyさん:2006/01/16(月) 19:37:18 ID:???
なんだそれ?

115 :abebo:2006/01/16(月) 19:39:14 ID:Oa1MF5mS
右下に小さい画面で勝手に出てくるやつです。
スパイウェアみたいなやつに引っかかってから、どうやっても消えないのです。

116 :nobodyさん:2006/01/16(月) 19:40:06 ID:cEDpmcYp

○。・。○。・。○。・。○。・。○。・。○。・。○。・。○。・。○
このレスをみたあなたは・・・3日から7日に
ラッキーなことが起きるでしょう。片思いの人と両思いになったり
成績や順位が上ったりetc...でもこのレスをコピペして別々のスレに
5個貼り付けてください。貼り付けなかったら今あなたが1番起きて
ほしくないことが起きてしまうでしょう。
コピペするかしないかはあなた次第...
○。・。○。・。○。・。○。・。○。・。○。・。○。・。○。・。○

117 :nobodyさん:2006/01/16(月) 21:40:51 ID:???
今一番起きてほしくないこと?
>>116の再降臨だな。

118 :nobodyさん:2006/01/16(月) 21:43:43 ID:???
そいつは困るな

119 :nobodyさん:2006/01/16(月) 23:22:00 ID:???
ネットワークカメラの画像を数秒置きに継続的に保存したいんですが
PHPだとブラウザから読みに行ったタイミングでしか保存できません・・よね?
ブラウザつけっ放しとか非現実的過ぎるし、となるとVB.NET使う方法がいいんでしょうか?

VBやPHPで出来れば嬉しいんですが・・・まだ勉強中なので出来るかどうかも判断つきませんorz
ヒントだけでの一つよろしくお願いします

120 :nobodyさん:2006/01/16(月) 23:36:24 ID:???
while(1) {
 save_camera_pic_to_disc();
 sleep(60);
}

121 :38:2006/01/16(月) 23:45:37 ID:???
>>73
わかりやすい説明ありがとうございます。
rootにメールが行ってるってことは、レンタルサーバーで複数ユーザーで共有している場合だと、
その共有サーバーの管理者(管理会社)にいちいちメールが行っていると言うことですね。
なるほど、それは無意味で迷惑でしょうから > /dev/null つけます。

122 :nobodyさん:2006/01/17(火) 00:09:04 ID:???
\をpostで送ってechoで表示したら\\になってたんですが、
これはどういうエンコード処理でしょうか?元に戻す方法教えてくださいませ

123 :nobodyさん:2006/01/17(火) 01:02:38 ID:???
>>122
magic_quote_gpc

124 :nobodyさん:2006/01/17(火) 01:34:22 ID:???
>>119
つ[タスクスケジューラ]

VBやVB.NETの話をしたければ別のスレ
PHPでやるならマニュアル良く読め(php-cliのところ)

125 :122:2006/01/17(火) 04:22:15 ID:???
magic_quotes_gpcをoffにしてphpinfo()でも確かにoffになってる
こと確認したけど、同じ状態ですorz

126 :nobodyさん:2006/01/17(火) 09:24:18 ID:???
>>125
stripslashes

127 :nobodyさん:2006/01/17(火) 11:22:28 ID:???
<?include 'count.php';?>これでは問題なく使えるのですが、
<?include 'count.php?today';?>などとすると
Warning: main(/home/***/public_html/php/count.php?today): failed to open stream: No such file or directory in /home/***/public_html/index.php on line 170
とエラーが出てしまいます。
なぜでしょうか?


128 :nobodyさん:2006/01/17(火) 11:38:58 ID:???
>>127
count.php?today ってファイルがないから

129 :nobodyさん:2006/01/17(火) 11:42:51 ID:???
その名前のファイルは、そこにはないから。

130 :nobodyさん:2006/01/17(火) 11:46:51 ID:???
最近、XREA+借りたら無条件でPHP5でした。
今までPHP4サバ使ってたのでとりあえずそのままアップしてみてたら
ことごとく全部表示すら出来なかった・・・。

そして調べてみるとob_start("ob_gzhandler"); をコメントアウトすると
表示できた。

という事はPHP5でgzip圧縮は駄目になったんでしょうか?

131 :nobodyさん:2006/01/17(火) 12:02:30 ID:???
include/requireはphpスクリプトを実行するコマンドではない。
単に取り込むだけ。
実行したければfile()を使う。おそらく>>127が期待している動作は得られないけど。

132 :nobodyさん:2006/01/17(火) 12:04:24 ID:???
>>130
http://jp.php.net/manual/ja/function.ob-gzhandler.php

使えるようだが。エンコードが違うとかじゃない?

133 :nobodyさん:2006/01/17(火) 12:08:37 ID:???
>>130
XREAの広告の影響
XREAの昔のサーバはPHP4だが同じく使えない

134 :nobodyさん:2006/01/17(火) 12:23:06 ID:???
>>132>>133
なるほど・・では試用期間中では使えないのですねぇ。
ではPHP5サーバでも問題ないかな・・・

よく「●●のスクリプトはPHP5じゃ動かなかった」という報告を
目にしますが、そんなに違うものなのでしょうか?


135 :127:2006/01/17(火) 13:10:58 ID:???
>>128
count.phpはあるんですよ・・・
>>131
え。。そうなんですか・・
ってことは複数のファイルに分けてやらないと駄目って事ですか?
× count.php?today count.php?all
○ count-today.php count-all.php
ってことですよね?


136 :nobodyさん:2006/01/17(火) 13:27:40 ID:???
>>135
そういうこと。

137 :nobodyさん:2006/01/17(火) 13:41:05 ID:???
>>134
http://www.php.net/manual/ja/migration5.php

変更点は結構細かいものばかりだけど、
それでも動かないものは全く動かなくなるのがコンピューター。

138 :nobodyさん:2006/01/17(火) 13:43:21 ID:???
>>135
include() 以外の方法を考えるのが正解

139 :127:2006/01/17(火) 13:54:46 ID:eeDcDeq6
>>138
え、なんかありますか?
実はコピーライト的なものを各ページに挿入したいんですよ。
その内容が頻繁にかわるのでこの方法しかないかなぁと。。。。
jsは使いたくないんです。

140 :nobodyさん:2006/01/17(火) 14:07:38 ID:???
>>139
だったら ?today って何よ。必要ないじゃん。


141 :nobodyさん:2006/01/17(火) 14:15:33 ID:???
>>139
file()でいいんじゃないの??

142 :nobodyさん:2006/01/17(火) 14:45:11 ID:???
>>135
http://wiki.2chx.net/php/

143 :127:2006/01/17(火) 14:50:09 ID:eeDcDeq6
>>140
今後ページによって表示する内容を変える事を考えているんでそのほうが楽かなと。。

>>141
なんかい表示されたかのカウントも行いたいので・・・

144 :nobodyさん:2006/01/17(火) 15:14:51 ID:???
メソッドの戻り値で複数の値を返すようにしたいんですけど
配列とかにして返すしかないんでしょうか?
普通にreturn(値1,値2)ってやったらエラーでたので。

145 :nobodyさん:2006/01/17(火) 15:18:57 ID:???
複数の値が必要な場合は配列で返すのが普通だと思うよ。

146 :nobodyさん:2006/01/17(火) 15:22:12 ID:???
>>142
あー。
フラットにだらだら書く方式にしたんだ。
個人的にこれはやめたいなぁ。
分けたら見つけにくくなるかもしれないけど、それは検索を
使わせればいいんだし。あ、上部のメニューに検索窓ほしいね。

FreeBSD の Q&A みたいに Q と A のセットで1ページになってた方が
Google とかも頼りやすいし、いいと思うけど、どお?

あと、font-size は 100% を希望


147 :nobodyさん:2006/01/17(火) 15:32:24 ID:???
>>145
ありがとうございました。

148 :nobodyさん:2006/01/17(火) 15:36:20 ID:???
>>127
count.php には 関数を定義して、その関数を引数付きで呼びなされ。
include() 一発でやろうと思わず、include() して関数呼べばいいだけの話でしょ。
スーパーグローバル変数を使ってもできるけど、オススメしない。

149 :nobodyさん:2006/01/17(火) 15:37:21 ID:???
>>147
list() で受け取るってんじゃダメなのかな?

150 :nobodyさん:2006/01/17(火) 15:43:04 ID:???
>>149
返す側は配列。受け取る側は配列またはリスト。
今は返す側の記述方法の話をしている。

151 :nobodyさん:2006/01/17(火) 16:28:35 ID:DhtK0Iv+
DBの勉強がてらアクセス解析を作っているんですが、どのようにログを取って行くのが一番スマートか解りません。
条件としては、表示させる時に日ごと、月ごとのトータル数を出したいと思っています。また、1日のアクセスは500件を想定しています。
あと、SQLiteで現在は作っていますが、最終的にはPDOを使って他のDBにも対応したく思っています。
ですので、1DBに1月として日ごとテーブルを作るのか、1日毎にDBとテーブルを作るのか、どっちがようのでしょうか。
それとも他にスマートな方法は有りますでしょうか。
条件や状況によって変わってくるとは思いますが、ご教授下さい。

152 :nobodyさん:2006/01/17(火) 16:29:41 ID:???
>>127
$_SERVER['QUERY_STRING'] = "today";
include "count.php";


153 :nobodyさん:2006/01/17(火) 16:37:41 ID:???
>>151
全てを1つのテーブルに入れる。

154 :nobodyさん:2006/01/17(火) 16:58:38 ID:???
>>151
普通、データベースの構造を最適化すればテーブルとテーブルの列は増えない。
頼むからちゃんと正規化しろ。一応言っておくと >>153 は正解。

155 :nobodyさん:2006/01/17(火) 17:16:47 ID:???
リーダー「いいよ、正規化なんて。ハードの性能がいいんだから」

そのままリリース。3ヶ月ぐらいする。パフォーマンスが悪くなる。

マネージャー「なんで正規化しておかねーんだよ、このカス」

クライアントからクレームがつく。

マネージャー「経緯を説明しろよ、このクズども」
オレ「正規化をしようとしたら、リーダーがー…」
マネージャー「それでもやるのが普通だろ、死ね」

速攻辞めました。今は靴屋のバイトやってます。こっちがずっとhappyです。


156 :nobodyさん:2006/01/17(火) 17:44:29 ID:l0tWWV9j
痛い香具師発見
ttp://takagi-hiromitsu.jp/diary/20060114.html#p01
<?php
$var_str = "Hello World";
print(htmlspecialchars($var_str));
?>
HTMLを出力しているのだから当然にhtmlspecialchars()を入れる。


157 :nobodyさん:2006/01/17(火) 17:45:48 ID:???
いつからここはヲチ板になったんだよ…

158 :nobodyさん:2006/01/17(火) 17:49:16 ID:???
>>154
これって正規化の問題か?
テーブル内の古いデータを掃除しない、運用の仕様自体に問題があるんじゃないの?

159 :nobodyさん:2006/01/17(火) 17:49:35 ID:???
>>156 自身が痛いのはどこでヲチればいいですか?

160 :nobodyさん:2006/01/17(火) 17:50:00 ID:???
>>156
初心者が見ることを前提に
htmlspecialcharsの使用を習慣づけて貰う為の記述だろ。
彼は基本的にセキュリティ屋だし。

161 :nobodyさん:2006/01/17(火) 17:51:45 ID:???
なんつーかさ、彼の書く内容って
間違ってはいないんだけど

好きになれないよね。もちっと別の言い方ってもんがあっぺよ。
とおもう


162 :軟式PHP:2006/01/17(火) 17:54:29 ID:???
>>160
彼は世の中の間違ったSSL認識をクレーマーのごとく指摘するのが仕事さ。
俺がおすすめするセキュリティの本は「PHPサイバーテロの技法」。

163 :nobodyさん:2006/01/17(火) 18:00:21 ID:???
>>161
文章にするときつくなる人だよね。
直接しゃべると非常に柔らかい人なんだが。

>>162
セキュリティー屋ってのは、そういうもんさw

164 :nobodyさん:2006/01/17(火) 18:01:14 ID:???
>>161
まぁあの書き方では当事者や関係者が納得して非を認めるように
なるのは難しいね

単に読み物として読んでる分には面白いけど


165 :nobodyさん:2006/01/17(火) 18:07:02 ID:???
>>158
テーブル内の古いデータを掃除しない、なんて >>151 のどこに書かれてるんだ?

>>156
一部現実味のない理想論なのは問題あると思うがまぁここではどうでもよい。
ヲチはヲチ板で。

166 :nobodyさん:2006/01/17(火) 18:08:12 ID:???
完璧を作るか、動くものを作るか、という違い

167 :nobodyさん:2006/01/17(火) 18:15:13 ID:DhtK0Iv+
>>153-154
え!?
では、ある程度肥大化したら別途保存するなり古い記事を削除するなりすると言う事ですか?

168 :nobodyさん:2006/01/17(火) 18:16:36 ID:???
そうです


169 :nobodyさん:2006/01/17(火) 18:37:23 ID:???
>>165
そういう理由もなしに日別に分けるなんて発想はふつーでねーし。
正規化しようとしまいとな。

170 :nobodyさん:2006/01/17(火) 19:16:43 ID:DhtK0Iv+
>>168
そうなんですか。。
レスありがとうございました。

>>169
すみません。
今までログファイルに書き出す方法でやっていて、色んなところの配布しているソースを見て日ごと月ごとというやり方を真似していまして。。
だからいくらDBでも肥大化したら重くなりもするんだろうし、と言う考えで今回の質問に至った次第です。
こんな質問ですが為になるレスありがとうございました。

171 :nobodyさん:2006/01/17(火) 19:23:14 ID:???
1日500レコードぐらいなら、数年は過去データ消さなくても普通に動くと思ふ。
MySQLの話だけど。

172 :nobodyさん:2006/01/17(火) 19:23:16 ID:tDsfmN2q
簡単な認証フォームとその処理を行うPHPを、サイト内の全てのHTML文書に埋め込む形で利用しているのですが、
その中の1ページにPerlで作成した掲示板を設置したいと考えています。

最初はCGIファイルの中にprintでHTMLとPHPを出力しようと試みたのですが、PHPが実行できずにエラーとなってしまいました。

上記のPHPと同文書内に、掲示板を出力させるPHPを埋め込むにはどうすれば良いでしょうか?

又は、掲示板を設置するファイルをCGIにして、Perlのプログラム内でPHPを実行させる方法でも良いのですが…。

ご教授お願い致します。

173 :nobodyさん:2006/01/17(火) 19:46:03 ID:eeDcDeq6
PHPをCGIとして・

174 :_:2006/01/17(火) 19:46:17 ID:qQ+v1Jzp
初心者です。PHPの勉強で、ブログかショップを作ろうと思います。どっちが比較的簡単ですか?

175 :nobodyさん:2006/01/17(火) 19:51:22 ID:???
ブログだろうね。その前にもっと簡単なのを作れないと無理だろうけど。

176 :nobodyさん:2006/01/17(火) 19:51:49 ID:???
とりあえず勉強してから考えてみてはいかがでしょう。

177 :nobodyさん:2006/01/17(火) 20:16:03 ID:???
>>172
そのPerlのCGIをPHPからsystemで呼び出せば?

178 :nobodyさん:2006/01/17(火) 23:16:30 ID:klTcMYuU
PHPでクライアントから送られてきたデータが 半角の英数字と , と / のみか確かめるにはどうしたらいいのでしょうか?

179 :nobodyさん:2006/01/17(火) 23:26:47 ID:???
正規表現一発

180 :nobodyさん:2006/01/17(火) 23:28:35 ID:???
先に言っておこう、正規表現に関しては正規表現スレへ

181 :nobodyさん:2006/01/17(火) 23:58:58 ID:xKRv/KZl
MySQLか、PostgeSQLどっちのほうを使ったほうが吉?

サーバーはXREA

182 :nobodyさん:2006/01/18(水) 00:03:10 ID:zQtemvMy
PHP4.4.2-dev〜PHP4.4.2 Windows XP/Apache2.0.52〜Apache2.0.55のどの組み合わせでも
$foo = file('http://example.com/');
と、HTTPプロトコルを使用するとクラッシュしてしまいます。

Windowsユーザーで同じ現象の方いらっしゃいますか?

本家のChangeLog、Fixed Bug #34359 で修正済となっており、
Linux版では問題ありませんでした。
当WindowsサーバーでもPHP4.3.11 では問題なく動作しています。

同じ現象の方がいらっしゃればバグレポートを出したいと思うのですが。

183 :nobodyさん:2006/01/18(水) 00:06:13 ID:zQtemvMy
>181

Postgres をお勧めします。

184 :nobodyさん:2006/01/18(水) 00:08:53 ID:???
>>182
同じこと内容を本スレでみた

185 :nobodyさん:2006/01/18(水) 00:13:20 ID:zQtemvMy
>184
レスありがとうございます。
本スレ見落としてました。すみません。
バグのようですね…。報告&4.4.3待ちます。

186 :184:2006/01/18(水) 00:19:59 ID:???
俺の日本語システムにバグがorz

187 :nobodyさん:2006/01/18(水) 08:47:20 ID:???
>>183
>>181じゃないですが面倒でなければ両者を比較したときにPostgresを選んだ理由っていうのを
教えてもらってもよろしいでしょうか?

俺はMySQLしか使ったことないので・・

188 :nobodyさん:2006/01/18(水) 09:29:55 ID:???
>>163
voidみたいだ

189 :nobodyさん:2006/01/18(水) 09:31:51 ID:???
>>174
ttp://www.sbcr.jp/books/products/detail.asp?sku=4797327073


190 :nobodyさん:2006/01/18(水) 10:09:56 ID:???
ブログってXMLとかフィードバック・トラックバックとかややこしくない?

191 :nobodyさん:2006/01/18(水) 10:16:37 ID:???
じゃあ掲示板

192 :nobodyさん:2006/01/18(水) 11:07:17 ID:???
$file_nameにはファイル名称の変数が事前に定義してあります。
mbstring関数は有効になっています。


$file = fopen($file_name,"r");
$data_size = 0;
for ($line_num = 1 ; !feof($file) ; $line_num++) {
$line = fgets($file);
$line_size = mb_strlen($line);
$data_size = $data_size + $line_size;
if ($data_size >= 512 * $page_num - 1) {
if ($data_size < 512 * $page_num) {
$line = str_replace ("<","<",$line);
$line = str_replace (">",">",$line);
echo $line;
}
}
}

と書いて実行したものの、何も表示されません…
どうすれば現状を回避できるのでしょうか…orz


193 :nobodyさん:2006/01/18(水) 11:19:15 ID:???
>>192
お前のやりたいのはひょっとして
$data_size >= 512 * ($page_num - 1)
じゃないのか

194 :nobodyさん:2006/01/18(水) 11:21:47 ID:???
>>192
>どうすれば現状を回避できるのでしょうか…orz
小学校の算数からやり直す

195 :nobodyさん:2006/01/18(水) 11:30:20 ID:???
>>193
('A`)
すいませんでした

196 :183:2006/01/18(水) 14:07:51 ID:zQtemvMy
>>187
Mysql4.1からはUnicodeがサポートされていますが、それ以前はUnicodeがサポートされていませんでした。
SJIS、EUCでは必ずどこかで文字化けが起きる(5C文字や第2水準漢字など)ので
私がコーディングする際は内部をUTF-8で統一するようにしています。

また、PostgreSQLではplpgsqlでストアドが作れますので、
プログラムの質を上げることができます。

PostgreSQLはMySQLよりもUnicodeに強い。
複雑な処理をストアドで行える。

が選択の理由です。
バグをあまり気にしない環境・掲示板程度でしたらMySQLの方が早いですけど…。

197 :nobodyさん:2006/01/18(水) 14:19:16 ID:???
内部エンコーディングの今の流行はUTF-8ですか?

198 :196:2006/01/18(水) 14:28:54 ID:zQtemvMy
>>197
文字化けを完全解消するならば全面Unicode
http://www.atmarkit.co.jp/fxml/rensai/xmlwomanabou06/learning-xml06.html
ですが、そうもいかない現状ですので、
私は 内部UTF-8 -> SJISやEUC出力 にしています。
これでDBへのINSERTの段階で失敗するということが少なくなります。

199 :nobodyさん:2006/01/18(水) 14:36:19 ID:???
はやりかどうかはわからんけど
おれの周りは全部UTF-8だな。文字に関するトラブルは特にない希ガス

PostgreSQLは8.1になってMySQLレベルにまで速くなってきたな。
複雑なクエリなんかはストアド使ったりして構造をわかりやすくしたりできるな

あと、

>>バグをあまり気にしない環境・掲示板程度でしたらMySQLの方が早いですけど…。

「速い」の間違いな。国語勉強しとけよ。韓国人に笑われるから(何

200 :nobodyさん:2006/01/18(水) 14:41:01 ID:???
2chの書き込みなんて脊髄反射でやるんだから
いちいち誤変換なんて確認したことねーぞ

201 :197:2006/01/18(水) 14:45:27 ID:???
お返事ありがとうございます。
いままで数年、内部エンコーディングはEUC-JPでしたけどUTF-8に乗り換えることにします。
現在、日、中、英の3ヶ国語に対応しなければならない案件を抱えてまして
出力はUTF-8、DBもUTF-8、内部はEUC-JPというへんな状況で苦しんでました。
これで楽になれます。

202 :nobodyさん:2006/01/18(水) 14:51:23 ID:???
なんで何処の下らない質問系スレは住人が荒いの
ウザい回答するぐらいなら答えんなボケ

203 :nobodyさん:2006/01/18(水) 14:58:08 ID:???
あっかんべーだ ;-P

204 :nobodyさん:2006/01/18(水) 20:00:42 ID:???
ttp://www.asial.co.jp/products/ioncube/
ここの販売しているソフトがPHPスクリプトの暗号化で有名ですが、
日本語でここより安くて単純に暗号化出来るソフトってないでしょうか?

205 :nobodyさん:2006/01/18(水) 20:38:43 ID:???
>>204
"日本語で"つうのが、日本語も対応しているという意味なら無料のものもあるが、
日本語で手取り足取り導入解説からサポートまであるという意味のものなら、それは無い。
日本人が作ったBコードコンパイラはあったと思うけどね。

206 :nobodyさん:2006/01/18(水) 21:04:14 ID:???
Zend Encoderは詐欺価格だからなぁ。
安いのは英語で良ければSource Guardianかな。

207 :nobodyさん:2006/01/18(水) 21:06:39 ID:l30CFxYx
php初心者です、おしえてください。
他のファイルにstaticメソッドを宣言して、インクルードするとエラーが起こるのですが、
なぜでしょうか、staticじゃないのは普通に呼び出せるのですが、
宜しくお願いします。(_ _)

208 :nobodyさん:2006/01/18(水) 21:18:00 ID:???
>>207
うちではエラーにならないから、エラーが発生する最低限のコードくらい書いてくれ

209 :nobodyさん:2006/01/18(水) 21:38:28 ID:???
>>207
エラーメッセージ読め

210 :207:2006/01/18(水) 21:52:41 ID:l30CFxYx
>>208,209
すみません、ソース、本など会社で、
大体下のような感じだと思います。
うろ覚えで書いてるので間違ってるかもしれませんが、


<?
require('staticTest.php');

$data = ->testfunction();
print $data;
?>

<?
class staticTest{

public static function testfunction(){
$data="1";
return $data;
}

}
?>

211 :nobodyさん:2006/01/18(水) 23:12:39 ID:zipv+nb6
locationで一回飛ばして、HTTP REFERERをとると、飛ばす前のURLになりますよね。imodeの場合うまくいかないのですが。ezwebだと普通に$ SERVER[HTTP REFERER]でとれるのですが

212 :nobodyさん:2006/01/18(水) 23:40:56 ID:???
そうですか。
ところでスレタイは読まれましたでしょうか。

213 :nobodyさん:2006/01/19(木) 00:28:06 ID:???
>>211
だから?

214 :nobodyさん:2006/01/19(木) 01:35:01 ID:???
>>207
> $data = ->testfunction();
こんなの Syntax Error だ、アフォ。
マニュアルを全然見てないだろ。
いますぐ >>1 からマニュアルを参照してくるんだな。

215 :nobodyさん:2006/01/19(木) 03:12:55 ID:wmue64mu
文字コードEUC-JPで
下記のソースを書き、ブラウザで見てみました。

echo("<html xmlns=\"http://www.w3.org/1999/xhtml\">");
echo("<head>");
echo("<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>");
echo("</head>");
echo("<body>");
echo("テスト");
echo("</body>");
echo("</html>");

すると
ブラウザがUTF-8ではなく、
EUC-JPでHTMLを読み込んでしまうのですが、
どうすれば解消できるでしょうか?


216 :nobodyさん:2006/01/19(木) 03:30:10 ID:???
>>215
Webサーバの適正な設定。

217 :nobodyさん:2006/01/19(木) 03:37:08 ID:???
テストのとこをUTF-8に変換して出力すればいいんじゃにの?

218 :nobodyさん:2006/01/19(木) 03:47:05 ID:???
mb_http_output("UTF-8")では?

219 :nobodyさん:2006/01/19(木) 04:30:52 ID:???
>>215
釣り?

220 :nobodyさん:2006/01/19(木) 04:54:25 ID:???
>>216
PHP.iniは

default_charsetEUC-JP

mbstring.detect_order      auto
mbstring.encoding_translation Off
mbstring.func_overload     0
mbstring.http_input        auto
mbstring.http_output       pass
mbstring.internal_encoding   no value
mbstring.language        Japanese
mbstring.substitute_character no value

という感じになってますが、
これはちょっとワケ有りで変更でないのです。
そのためソース側で対処しないといけません。

>>217
echo( mb_convert_encoding("テスト", "UTF-8", "EUC-JP"));
とやると、「テスト」だけはUTF-8に変換されますが、
ブラウザの読み込みモードがEUC-JPで読み込んでしまうのです。

>>218
default_charsetがEUC-JPになっているのが
原因だと思い、同じようにやってみたのですが、
どうしてもブラウザがEUC-JPで読み込んでしまいます。




221 :nobodyさん:2006/01/19(木) 04:56:12 ID:???
>>220
php.iniじゃなくて「ウェブサーバの設定」だぞ

222 :nobodyさん:2006/01/19(木) 05:18:30 ID:???
ttp://httpd.apache.org/docs/2.0/mod/core.html
ttp://httpd.apache.org/docs/1.3/mod/core.html

223 :220:2006/01/19(木) 05:21:24 ID:???
>>221
おっと、ウェブサーバーの設定でしたか、
ウェブサーバーの設定は・・
・・不明です。。。お恥ずかしいですが。。
唯一わかっているのはApache2系ということだけです。
PHPの関数で対応できると思っていたのですが
あまかったですか??

224 :nobodyさん:2006/01/19(木) 06:48:14 ID:???
Apacheのhttpd.confを見直してみな。
あとxhtmlで書くなら、ちゃんとDTDで定義しとこうな。

225 :nobodyさん:2006/01/19(木) 07:21:41 ID:???
>>215
<meta>タグなんかで指定しないでちゃんとheader()で指定しろってこと
ブラウザはresponse headerの方を優先するからね

226 :nobodyさん:2006/01/19(木) 17:15:52 ID:???
配列をsubmitで飛ばして受け取りたいのですがどうすればよいのでしょうか?
一要素ずつhiddenで記述してやるしかないのでしょうか?
簡単な方法があればよろしくお願いします。

227 :nobodyさん:2006/01/19(木) 17:19:18 ID:???
カンマ区切りの文字列にして飛ばして、アプリ側で配列を作るってのはだめ?よくやるんだけど


228 :nobodyさん:2006/01/19(木) 17:24:06 ID:???
>>226
session使う
serializeする

229 :nobodyさん:2006/01/19(木) 18:02:59 ID:???
俺は普通にforで数の分だけhiddenを生成しちゃうかな。
それで困るほどでかいデータならそもそもsubmitで飛ばさない。

230 :226:2006/01/19(木) 18:43:27 ID:???
>>227-229
なるほど、十人十色なんですね。
参考になりました。ありがとうございました。

231 :nobodyさん:2006/01/19(木) 20:47:26 ID:???
>>230
十人十色だが、セッションを使うのがベター。
hiddenで持ち回すと汚染される可能性が出てくる。

232 :nobodyさん:2006/01/19(木) 21:50:34 ID:???
セッションだって汚染される可能性あるぞ。
ユーザーのクッキーから情報を取得してる場合だけど。

233 :nobodyさん:2006/01/19(木) 22:33:15 ID:???
何でもセッションに頼っちゃうと今度はウインドウを2枚出したときとかに
ややこしい状態になることがあるんで、安易にそれをベターというのもどうかと。
「そのユーザにとって最新の状態は常にどの画面でも同じもの」ってデータ以外は
セッションに入れるべきじゃないと思うんだけど?

234 :nobodyさん:2006/01/20(金) 03:43:15 ID:???
"A B"

「A」と「B」の間にあるスペースを
1個のスペースに置き換える場合、
for(),while()を使わずに処理する方法ってありますか?

235 :nobodyさん:2006/01/20(金) 03:55:25 ID:???
あります

236 :234:2006/01/20(金) 04:09:04 ID:???
>>235
あるの?

237 :nobodyさん:2006/01/20(金) 04:28:24 ID:???
>>236
あるってば。

238 :nobodyさん:2006/01/20(金) 05:18:21 ID:???
>>237
どうやんの?

239 :nobodyさん:2006/01/20(金) 05:27:20 ID:???
php5をsuse linuxにインストールする方法を教えてください

240 :nobodyさん:2006/01/20(金) 05:35:41 ID:???
スレ違い

241 :nobodyさん:2006/01/20(金) 07:35:50 ID:???
>>238
preg_replace("/( | )+/", "1", "A        B")

242 :nobodyさん:2006/01/20(金) 07:36:57 ID:???
"1"ってなんだ(´・ω・`)
preg_replace("/( | )+/", " ", "A        B")

243 :nobodyさん:2006/01/20(金) 08:36:42 ID:kKXqMXNs
全然わからない!教えてください
仮に○○.phpってファイルをアップロードしたのだけど、
実行してみると「ページを表示できません」ってなってしまう。
何かほかにやらないといけないの?
助けてください。

244 :nobodyさん:2006/01/20(金) 08:40:54 ID:???
>>243
そもそもphpが使えるサーバーにアップロードしてるのか?

245 :軟式PHP:2006/01/20(金) 09:14:07 ID:???
>>243
近年稀に見る馬鹿だな。

246 :nobodyさん:2006/01/20(金) 09:34:48 ID:???
>>244
いやいや、PHP云々以前にアップロード出来ているのかが怪しい

247 :nobodyさん:2006/01/20(金) 10:00:55 ID:???
たまたまアップロードして確認しようとした時、
ネットワークがきれてたんじゃないの?
phpが使えない鯖なら、phpの中身が表示されるか
ダウンロードマネージャが起動するはず。
404なら「ページが見つかりません」と出るはず。
phpは特に鯖側でパーミッションとかいじったりしなくても使える。
(ログファイルとかは別だけど)

248 :nobodyさん:2006/01/20(金) 10:03:25 ID:???
>>247
さくらとか、phpがCGIでしか動かないってパターンもあるね

249 :nobodyさん:2006/01/20(金) 10:13:04 ID:???
何にせよ、エスパーキボンて事だな

250 :nobodyさん:2006/01/20(金) 10:17:36 ID:VgY7exIA
ウィンドウズのローカルでphpをブラウザで見たいんですがこれはphpをインスコする以外に
サーバーソフトもインスコしないとみれるようになりませんか?

251 :nobodyさん:2006/01/20(金) 10:26:47 ID:???
>>250
もちろんです。
ただ、結果だけみたいならコマンドラインでxxxx.htmlに
リダイレクトすれば見られます。

252 :nobodyさん:2006/01/20(金) 11:04:18 ID:???
鯖PC経由の書き込みをしない設定にすると、公式に直接飛ばす事になってしまいます。
公式に飛ばさずに直接値を渡すにはどうすれば良いのでしょうか。

253 :nobodyさん:2006/01/20(金) 11:05:12 ID:???
あ、p2スレと勘違いした_| ̄|○

254 :nobodyさん:2006/01/20(金) 11:06:08 ID:???
>>250
正確な用語の使い方ではないので、YesともNoとも回答ができる。
でも多分Yesだと思われ。

255 :nobodyさん:2006/01/20(金) 11:06:09 ID:???
>>252
鯖PCって何? 公式って何? 値って何?
前提がすっぽ抜けすぎてて何が聞きたいのかまったくわかりません。

256 :nobodyさん:2006/01/20(金) 11:06:53 ID:???
誤爆かよ!

257 :254:2006/01/20(金) 11:08:52 ID:???
ごめん。多分「なりません」が正解ということ。

258 :nobodyさん:2006/01/20(金) 14:14:53 ID:+oUGIFYt
function()文で数値を戻り値として返す場合、
"で囲ってあがないといけないんですよね?

function(){
return "0";
}

みたいに。

259 :nobodyさん:2006/01/20(金) 14:20:31 ID:???
>>258
だから何?


260 :nobodyさん:2006/01/20(金) 14:50:22 ID:???
>>259
あってんの?あってないの?


261 :nobodyさん:2006/01/20(金) 14:57:20 ID:???
>>259
スレタイ嫁

262 :nobodyさん:2006/01/20(金) 15:13:24 ID:???
>>258
数字じゃなくて数値なんだろ?なら括る必要はない。
裸で気になるんだったら()で括っとけ

263 :nobodyさん:2006/01/20(金) 16:06:28 ID:utcSO+tE
PHP 4.4.2で eaccelerator使えてます?FreeBSDなんですが。

264 :nobodyさん:2006/01/20(金) 17:19:01 ID:???
>>258
どっちでも大して変わらない

265 :nobodyさん:2006/01/20(金) 17:30:09 ID:???
>>258>>264
そのまま戻り値をprintしたときに0って出るか何も出ないかの差はあるかな。

266 :nobodyさん:2006/01/20(金) 17:56:01 ID:???
>>265
どっちでも出る。

267 :nobodyさん:2006/01/20(金) 18:15:36 ID:???
>>264
型を含んだ比較の結果がかわったりする
仕様上の型でかえすべき

268 :nobodyさん:2006/01/20(金) 19:24:34 ID:???
質問です。
<html>
<body>
<?php
$page = @readfile("http://www.yahoo.co.jp");
?>
</body>
</html>
と言うような感じで他サイトを読み込んだのですが
読み込んだサイトにあるリンクのURLが自分のドメインを
含んでしまい、リンク先に正常に飛べません。
リンクのURLが読み込んだファイルと同様のドメイン
上の例ですとhttp://yahoo.co.jp/hogehoge.htmにするにはどうすればよいのでしょうか?
今の状態ですとhttp://hogehoge.jp/hogehoge.htmとなってしまいます。

よろしくお願いします。

269 :nobodyさん:2006/01/20(金) 19:29:21 ID:???
>>268
preg_replaceで相対パスを絶対に置き換えれば言い。

270 :268:2006/01/20(金) 19:42:50 ID:???
>>269

preg_replaceを使用するということは
fileで一度ソースを読み込んで置換してという
順序になると思うのですが

readfileでやることは不可能なのでしょうか?

get? post? あたりを駆使してムリでしょうか?


271 :nobodyさん:2006/01/20(金) 19:44:05 ID:???
>>270
むり。

272 :nobodyさん:2006/01/20(金) 19:44:50 ID:???
>>270
<base href="〜">

273 :268:2006/01/20(金) 19:52:51 ID:???
すげえええええええええええ
来ました出来ました。有難うございます。

>>272様感謝します。

>>269>>271
ご意見有難うございました。

274 :nobodyさん:2006/01/20(金) 20:01:45 ID:???
ttp://pear.php.net/manual/ja/package.http.http-download.php
これとsetGzip()で特定のディレクトリを圧縮しつつダウンロード、
ということをしたいのですが、以下のどこがおかしいか
教えてくださいませ。
疑問点はまずsetFile()がディレクトリを指定するのが不可能っぽいですが、
解決方法はないか、setFileをファイルで試しても
setGzipの部分が上手く動作していないようです、何か間違っているでしょうか?
お願いしますm(_ _)m

<?php
require_once("HTTP/Download.php");
$dl = &new HTTP_Download();
$dl->setFile($directory);
$dl->setGzip(TRUE);
$dl->setContentType('application/x-gzip');
$dl->setContentDisposition(HTTP_DOWNLOAD_ATTACHMENT, 'latest.tgz');
$dl->send();
?>


275 :nobodyさん:2006/01/20(金) 20:16:39 ID:???
>>274
ディレクトリに対応してないので HTTP_Download だけじゃダメ。
Archive_Tar も併用すべき。
オンザフライ圧縮する必要はなくなるが
一時ファイルを生成する必要が出てくる。
あとは頑張れ
http://pear.php.net/manual/ja/package.filesystem.archive-tar.archive-tar.php

276 :nobodyさん:2006/01/20(金) 23:10:38 ID:yP1RJnKV
入力された文字が例えば100文字以上なら100文字以降なら切り捨てて保存する場合どうしたらいいのでしょうか?

277 :nobodyさん:2006/01/20(金) 23:17:32 ID:???
>>276
substrかmb_strcut

278 :nobodyさん:2006/01/21(土) 10:57:51 ID:???
sedコマンドについてです。(sedじゃなくてもいいんですが)
tab区切りのテキストファイルがあるんですが、そのファイルの
先頭の列のみ残してあとのデータを削除したいんです。

sed "s/\t*//g" test.txt

ではうまくいきませんでした。(削除されないファイルが出てきます。)
誰か、、、よろしくお願いします。

279 :278:2006/01/21(土) 11:04:40 ID:???
あ、質問すれ間違えました、、、すいません

280 :nobodyさん:2006/01/21(土) 15:41:37 ID:???
ロギングプログラムを作ろうと思ってるのですが、
log.txt(300MB)で
fopen("log.txt", "a")した場合ってメモリ300MB消費されませんよね?
逆に
fopen("log.txt", "r")としたらメモリ300MB消費される、
この考えあってますでしょうか?

281 :nobodyさん:2006/01/21(土) 15:49:37 ID:???
>>280
> fopen("log.txt", "a")した場合ってメモリ300MB消費されませんよね?
合ってる。

> fopen("log.txt", "r")としたらメモリ300MB消費される、
間違ってる。正しくはその後の処理方法次第。

282 :nobodyさん:2006/01/21(土) 15:55:59 ID:???
>>280
やってみりゃ分かるが、fopenはファイルを開く「準備」をするだけ。
メモリに読み込むのは別の関数のお仕事。

283 :nobodyさん:2006/01/21(土) 16:40:25 ID:1jcdXAZV
DBからとり出したデータに特定の文字列があるかどうか調べるのはfor文を回してeregなどで使うのでしょうか。

284 :nobodyさん:2006/01/21(土) 16:43:47 ID:???
何のための DB なんだ…

285 :nobodyさん:2006/01/21(土) 16:59:44 ID:???
>>283
SQLでselect

286 :nobodyさん:2006/01/21(土) 21:35:07 ID:???
今月から1ヶ月前の月を算出する最も簡単な記述方法ってどんな感じでしょうか?
unixタイムスタンプから1か月分引くとかいう面倒な方法しか
思いつきませんでしたorz

287 :nobodyさん:2006/01/21(土) 21:45:49 ID:???
>>286
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));
echo date ("M-d-Y", $lastmonth);
これでいいのかな・・・?

288 :nobodyさん:2006/01/21(土) 22:12:08 ID:???
>>286
print date("Y/m", strtotime("-1 month"));

289 :nobodyさん:2006/01/21(土) 22:47:59 ID:???
>>286じゃないけど、ふと思った。
月から1引くやり方って、1月の時も大丈夫…なように作ってあるはずだよねぇ。

290 :nobodyさん:2006/01/21(土) 22:52:20 ID:???
>>289
少なくとも>>287>>288は自動的に前年になる。

291 :nobodyさん:2006/01/21(土) 23:00:46 ID:???
初めてmktime()を使った時にここまで面倒見てくれるのかー!って感動した記憶があるよ。
マニュアルを読まなかったら、自力で繰り上げやら繰り下げ処理を書いたり、
その辺の面倒を見てくれそうなカレンダーライブラリを探そうとしてただろうなぁ。

292 :nobodyさん:2006/01/21(土) 23:23:32 ID:???
おまえの面倒はオレが見るよ。

293 :nobodyさん:2006/01/21(土) 23:37:40 ID:E6I0jSws
ポッ(照)

294 :nobodyさん:2006/01/22(日) 02:16:59 ID:???
下らない質問ですが、PHPで行列は使えますでしょうか…。
例えば

10 11 12 13 14 15

とあったとすると
両者の合計が出来るだけ平等になるように二つに分けたいのです。
この場合ですと
10 15 12
11 14 13
の二つに分けたいのです。
よろしければお力添えお願いします。

295 :nobodyさん:2006/01/22(日) 02:28:43 ID:???
>>294
行列じゃなくて行列問題?

296 :nobodyさん:2006/01/22(日) 02:37:50 ID:???
>>294さん
行列問題…になるのかもです。
12種類の数字を合計値が出来るだけ平等になるように二つのグループに分けるような動作をするのをPHPによる記述で作ろうと思ったのですが、
全ての組み合わせを記述してすると12C6で膨大な記述が必要になってしまうので
何かスマートな方法がありましたらご教授願いたいです


297 :nobodyさん:2006/01/22(日) 02:52:54 ID:???
>>294>>296
どっちかっつーとアルゴリズムの問題だと思うので言語関係ないんじゃ…。
(これを一発で解決するような言語ってどっかにあるの?)
でも記述は長くならないと思うけどね。
長いのはループ回数&処理時間じゃないの?

298 :nobodyさん:2006/01/22(日) 03:21:41 ID:???
そうですか〜。
ありがとうございます。一つずつ組み合わせを記述してベストな組み合わせを導いてみようと思います

299 :nobodyさん:2006/01/22(日) 03:23:41 ID:???
>>298
アホカ

300 :nobodyさん:2006/01/22(日) 03:32:18 ID:???
>>294
線形計画法で解けるとおもわれ。

301 :nobodyさん:2006/01/22(日) 04:38:46 ID:pSXDGSqg
perlは経験しPHPを勉強中の者です。

PHPにHTMLを吐き出させたら、ソース通りに行きません。
どうなってるのでしょうか?

PHP5+apache+winxpと、PHP4+apache+赤帽の2種類のマシンで試してみましたが、どうにもうまくいきませんでした。
ブラウザはIE6.0です。

現状は、EUC+LFで保存したPHPファイルをブラウザで見ようとすると、CSSで指定していた色やborderの線がちゃんと表示されない。
やりたいことは、外部呼出しを設定しているHTMLをコード通りに表示させたい。
やったことは、PHPで吐き出した画面上でブラウザのエンコードの種類をEUCからShift_JISに変えたらCSSの通りに色がついたり、borderもきちんと表示されました。
あとは、ソースの見直しとHTML単独での表示テスト。

EUCっていうのはCSSとの相性が悪いのでしょうか?
PHPでちゃんとCSSの表示が上手くいくやり方を教えていただけませんか。
どうしても原因がわからないので、よろしくお願いします。

302 :nobodyさん:2006/01/22(日) 05:22:08 ID:???
>>301
それはPHPがどうのこうのってのは全然関係ないと思われ。
EUCコード自体はHTMLとの相性も問題ない。
CSSにShift-JISでコメント入れちゃってるとかいうオチじゃないよな?

303 :nobodyさん:2006/01/22(日) 05:32:34 ID:pSXDGSqg
>>302
はぅあ...
そういうオチだったorzз

普通に/* hogehoge */って囲んでたっす('A`)
これって、Shift_JISダッタンディスカー!?

304 :nobodyさん:2006/01/22(日) 05:36:01 ID:???
>>303
…おまえ、Shift-JISとEUCって何のことか分かってるか?

305 :nobodyさん:2006/01/22(日) 05:51:04 ID:???
perlからやり直せ

306 :nobodyさん:2006/01/22(日) 05:51:31 ID:pSXDGSqg
>>304
お、おいらただの文字コードとしか思ってなかったので。。。
さっき試してたんですが、テキストファイルの読み込みなんかも2バイト文字があるときちんと読み込んでいないようで。。。orz

EUCが吐き出せないのってどんな文字があるんだろう('A`)


307 :nobodyさん:2006/01/22(日) 06:08:49 ID:???
>>306
ただの文字コードだよ。分かってるんじゃないか。
なのに何故見当違いの判断をする??

308 :nobodyさん:2006/01/22(日) 06:14:27 ID:pSXDGSqg
>>304
お、おいらただの文字コードとしか思ってなかったので。。。
さっき試してたんですが、テキストファイルの読み込みなんかも2バイト文字があるときちんと読み込んでいないようで。。。orz

EUCが吐き出せないのってどんな文字があるんだろう('A`)


309 :nobodyさん:2006/01/22(日) 06:14:49 ID:???
CSSもEUCで保存したの?
CSSの先頭に@charset "EUC-JP";とかかいとくといいんでないの?

310 :nobodyさん:2006/01/22(日) 06:20:18 ID:pSXDGSqg
>>307
ググって見たけど、イマイチわからないなぁ。
Shift_JISとかが、文字コードだって認識はあるけど
CSSの/**/で囲ったコメント以下が読み込まれてないのは、わからないのです。

311 :nobodyさん:2006/01/22(日) 06:30:52 ID:???
hogehogeがShift_JISで書かれてるんだろ

312 :nobodyさん:2006/01/22(日) 06:34:32 ID:pSXDGSqg
>>309
ありがとです。。
CSSは普通にスタイルの指定をしているのみで、他の記述は一切していませんでした。

試してるんですけど、テキストファイルから日本語もちゃんと取り出せるようにするには
どうしたらいいのでしょうか?
エンコードの指定を読み込むときにするべきですか?
それとも、テキストファイル自体をEUCで保存or頭にcharset指定??

313 :nobodyさん:2006/01/22(日) 06:35:27 ID:???
>>294
強化学習で

314 :nobodyさん:2006/01/22(日) 06:36:09 ID:???
テキストファイルの読み込みってどういうやり方でやってるのさ。

315 :nobodyさん:2006/01/22(日) 06:36:28 ID:pSXDGSqg
>>311
そのようです。
CSSの/*hogehoge*/がShift_JISのようだったんですが
どこでそれが分かるのか、確認したいのですが術を知らず。。。。orz

316 :nobodyさん:2006/01/22(日) 06:39:06 ID:???
>>315
それなりにまともなテキストエディタを使えば今の文字コードを表示してくれる。
とりあえずWindows標準のメモ帳で読み込んで、普通に漢字が表示されたらShift-JIS。
文字化けを起こしたらEUCなりUnicodeなりのShift-JIS以外の文字。

317 :nobodyさん:2006/01/22(日) 06:40:07 ID:???
perlからやり直せ

318 :nobodyさん:2006/01/22(日) 06:41:07 ID:pSXDGSqg
>>314
$fuga=fopen("hoge.txt","r");
が主ですが、たまに
$fuga=file("hoge.txt");とかも使います。

319 :nobodyさん:2006/01/22(日) 06:42:39 ID:???
それで何を持ってして「読み込めてない」と判断してるんだ?
読み込み自体には文字コードは関係ないぞ。printなどで出力すると関係するが。

320 :nobodyさん:2006/01/22(日) 06:46:10 ID:pSXDGSqg
>>316
フリーのエディタを使ってますが今の文字コードや改行の種類は分かるようになっています。
ただ、PHPファイルの中に記述したり読み込んだりするものたち(例えば外部のテキストやCSS)のコードをどうやってPHP仕様に合わせればいいのかがググって見てもわかんないのです。


321 :nobodyさん:2006/01/22(日) 06:48:38 ID:???
>>320
HTMLをEUCで出力してるならそれで読み込むCSSもEUCで保存しろ。
テキストファイルは処理の仕方による。読み込んでそのまま変換もせずに
出力してたり検索に使ってたりするなら最初からEUCで保存しとけ。

322 :nobodyさん:2006/01/22(日) 06:50:40 ID:???
どーでもいいが、EUCは別にPHPの仕様じゃないぞ。その方が都合がいいだけだ。
EUCの方が都合がいいのはPerlだって全く同じだ。
同様にPHPでもPerlでもShift_JISで書けるぞ。

323 :nobodyさん:2006/01/22(日) 06:51:09 ID:pSXDGSqg
>>319
何を持ってしてかは分かりませんが、
テキストファイルを読み込んでみたんです。それで、それをHTMLに吐き出させるようにしたのに正しく出力されませんでした。
HTMLに吐かせる前にprintで調べると、数字や小文字のアルファベットは正常にできてました。ただ、日本語のところだけは文字化けしたり、空白だったり。。

もうorzなんです。


324 :nobodyさん:2006/01/22(日) 06:53:39 ID:pSXDGSqg
>>321
最初からEUCに変換は都合上できないので、PHP上で変換したいのですが
そういう関数がありましたっけ?

325 :nobodyさん:2006/01/22(日) 06:59:10 ID:pSXDGSqg
>>322
そうなんですか、知りませんでしたorz

PHPはEUCで保存しないと文字化けするもんだとばかり。。。
perlをEUCで保存した経験はなかったです。勉強になりました_ト ̄|○

326 :nobodyさん:2006/01/22(日) 06:59:56 ID:???
mb_convert_encoding()

327 :nobodyさん:2006/01/22(日) 07:00:31 ID:???
perlからやり直せ

328 :nobodyさん:2006/01/22(日) 07:03:57 ID:???
>>327
童貞厨はオナって市ねよ

329 :nobodyさん:2006/01/22(日) 07:10:10 ID:pSXDGSqg
>>326
ググって来ました!
明確な助言で超わかりやすかったです。ありがとう。

330 :nobodyさん:2006/01/22(日) 07:37:21 ID:???
他のやつは的確な助言をしてくれませんでしたね^w^

331 :nobodyさん:2006/01/22(日) 07:55:57 ID:???
php.netのPHPのマークの上にある白いのは何ですか?

332 :nobodyさん:2006/01/22(日) 08:11:50 ID:???
えーと、どこで笑えばいいのかな?

333 :nobodyさん:2006/01/22(日) 09:01:30 ID:???
>>331
てかり

334 :nobodyさん:2006/01/22(日) 10:19:09 ID:???
こっちのことだと思われ。
http://php.benscom.com/images/php_snow.gif
ファイル名にsnowって書いてあるね。


335 :nobodyさん:2006/01/22(日) 10:36:45 ID:???
>>329
HTML と CSS と文字コードの関係についてもっと勉強した方がいい

336 :nobodyさん:2006/01/22(日) 12:29:09 ID:nt4QJioJ
初めまして。
配列をグローバル宣言するにはどうしたらいいのでしょうか?

337 :nobodyさん:2006/01/22(日) 13:06:10 ID:???
>>336
クラス外かつ関数外で配列定義。おわり。
大抵の場合、コードの見通しが悪くなるので好ましくない。

338 :nobodyさん:2006/01/22(日) 14:01:53 ID:???
>>328
結婚してますが何か?

339 :nobodyさん:2006/01/22(日) 14:29:08 ID:???
PHPでメールを送信しようとしてます。

<?php
mb_language("Japanese");
$address[] = "********@docomo.ne.jp";
$headers = "From: *-*-*-*-@docomo.ne.jp\r\nReply-To: *-*-*-*-@docomo.ne.jp";
mb_send_mail($address[$i], "お知らせ", "お知らせでした。\nThe End.", $headers);
?>

これだと文字化けしてしまいました。
日本語でメールを送る場合のエンコードはどうすればいいんですか?
ちなみにスクリプトのエンコードはShift-JISになってます。

340 :nobodyさん:2006/01/22(日) 14:37:28 ID:???
ISO-2022-JP

341 :nobodyさん:2006/01/22(日) 14:49:54 ID:???
>>338
既婚!=童貞脱出

342 :nobodyさん:2006/01/22(日) 15:08:09 ID:???
>>336
配列も普通の変数も宣言は変わらんよ

343 :nobodyさん:2006/01/22(日) 17:26:06 ID:???
第3月曜日を知るにはどうすればいいのか教えてください。
$yは年で$mは月です。
$w = date('w', mktime(0, 0, 0, $m, 1, $y));
return(23-$w);
こうしたら、1日が日曜日の場合、第4月曜になってしまいますorz
急遽
if($w){return(23-$w);} else {return(16-$w);}
としてるのですが、もっとスマートな方法があったら教えてください。

344 :nobodyさん:2006/01/22(日) 17:56:17 ID:???
phpで作成したディレクトリの所有者権限を変更したいのですがchownが通りません。
ためしにsshでそのphpの所有者をrootにして実行したのですが通りませんでした。

そこで、shell_exec関数で php XXX.php >>/dev/null と書いて実行したのですが通りませんでした。
php5環境でchownを使われてる方、何か特別な設定を施されましたでしょうか。

ちなみにサーバのルートドキュメントでそのphpは実行されてまして、
作成されたディレクトリのデフォルトの所有者はapacheとなっています。
この所有者をchownでrootなど他の所有者に変更したいです。

345 :nobodyさん:2006/01/22(日) 18:14:11 ID:???
>>343
個人的に作ったツールで第3月曜日を取得するのは以下のような方法で取得していた。
これで問題があるようなら報告よろしく。

21 - (int)date("w", mktime( 0, 0, 0, $month, 20, $year));

346 :nobodyさん:2006/01/22(日) 18:20:39 ID:???
>>344
http://jp.php.net/manual/ja/function.chown.php

347 :nobodyさん:2006/01/22(日) 18:28:25 ID:???
>>344
> phpの所有者をrootにして実行した
この時の権限チェックは、
・実行プログラム - zend謹製のphpプログラムそのもの
・読み込むファイル - 対象のphpスクリプトファイル
に対して行われるので、スクリプトの所有者を弄っても無意味ですよ。

chownを使わないで済むように作るか、chownの操作対象を含む親ディレクトリの所有者や
パーミッションを適切なものに変更するのが一般的なやり方です。

348 :nobodyさん:2006/01/22(日) 18:50:11 ID:???
>>346-347
レスありがとうございます。
試しに次のことをやってみたのですがやはりOperation not permittedとエラーが出てしまいます。

・phpがあるさらに上層のディレクトリの権限を777に
・試しにルートディレクトリからそのスクリプトがあるディレクトリをrootの所有に

ちなみにphpのプログラムは念のため確認してみましたが所有はrootでした。
mkdirでディレクトリを作成してそのディレクトリの権限をアカウントの者にしたいのですが、
apacheの所有でディレクトリが作成されてしまいまて、効率悪いですがシェルで直接手直しするしかないようです(´・ω・`)ショボーン


349 :nobodyさん:2006/01/22(日) 19:07:39 ID:???
もうちょっとLinux関連の知識を培ったほうがいいと思う。

「phpのプログラムの所有」うんぬんとか言ってる時点で見当違い。
apache経由で動かしてるんだから、apacheの動かしているユーザーでしか動かせない。

そのスクリプト、sshで、sudoなり、suしてrootになって実行すれば動作するだろ。
そういうことだ。

350 :nobodyさん:2006/01/22(日) 20:40:16 ID:???
error reporting E_ALLだと、配列の存在しないINDEX参照したときに
Undefined になるよな。
E_NOTICEだとエラーの詳細がわからんし・・・
おまいらどうしてる?

351 :nobodyさん:2006/01/22(日) 21:02:03 ID:???
array_key_existsで先にに調べれば?

352 :nobodyさん:2006/01/22(日) 21:17:08 ID:???
こんな感じでDBからの値を元にINDEX
作りたいんですけどえらーになってしまう。

foreach ($play as $k ){
$counter[$k['sex']]++;
}

353 :nobodyさん:2006/01/22(日) 21:28:19 ID:???
>>352
エラーの内容くらい書けよ。

354 :nobodyさん:2006/01/22(日) 21:33:57 ID:???
Undefined INDEX $k['sex']

355 :nobodyさん:2006/01/22(日) 21:38:26 ID:???
DB に何が入っててどうやって取り出しているかが問題であって、
その部分が悪いわけじゃない。
ちゃんと array_key_exists でチェックして処理してくれ。
はい次。


356 :nobodyさん:2006/01/22(日) 21:40:06 ID:???
おいおい、おまいら
カウンターのインデックスはDBからの値であって
宣言してないわけだよ。そこへインクリメントしてるから
エラーになるわけだ。 わかんないのか?
$counter[?????]++;

357 :nobodyさん:2006/01/22(日) 22:31:49 ID:???
>>349
レスdクスです。

>そのスクリプト、sshで、sudoなり、suしてrootになって実行すれば動作するだろ。
説明不足で申し訳ございません;
ブラウザで実行させての動作ということでして;;
もしかしてchownはシェルで実行させないと元々動かない感じだったでしょうか

>apache経由で動かしてるんだから、apacheの動かしているユーザーでしか動かせない。
それともapacheで動かせる権限にディレクトリなりファイルなりを変更すればブラウザでも行ける感じでしょうか
未だに右往左往しておりますorz

ちなみにphp5系+apahce2系をFedoraCore3で動かしてます。
(FreeBSDにしようと思いましたが環境の都合でFCを選択しました)

358 :nobodyさん:2006/01/22(日) 22:38:51 ID:???
ケツ痒くなってきた

359 :nobodyさん:2006/01/22(日) 22:47:31 ID:???
>>357
ブラウザがアクセスするのはサーバなんだから
サーバの権限で動かせるようにすればおk

多分サーバは nobody か apache ユーザ/グループで動かしてるんだろうから
chown -R apache:apache /var/www とかすれば?

360 :nobodyさん:2006/01/22(日) 23:21:57 ID:???
DWでphpでホームページを作っていますが同じページでパソコンと携帯のUserAgentを判断してレイアウトと表示される内容を変えたいのですが、出来ますか?

361 :nobodyさん:2006/01/22(日) 23:27:01 ID:???
>>360
できる。
UAを調べて、条件文使ってPCだったらこれ、携帯だったらこれといった感じ。

362 :nobodyさん:2006/01/23(月) 00:07:48 ID:???
<html><body>
<form action="./mailform.php">
■件名<br>
<input type="text" name="subject"><br>
■本文(※必須)<br>
<input type="text" name="message"><br>
<input type="submit" value="送信"></form>
<?php
$to = "xxx@xxx.com";
if( $message ){
mb_language( "Japanese" );
mb_send_mail( $to, $subject, $message );
echo ( "送信しました" );
}
?>
</body></html>

簡単なメールフォームを作ってみましたが、
日本語を件名等に含ませると???となります。
どうすればいいでしょうか?
マニュアル読みましたがうまくいかなく↑な風になりました。
よろしくお願いします。

363 :nobodyさん:2006/01/23(月) 01:21:28 ID:???
>>345
なるほど・・・1日を基点として3週間の最後の日から引けば確かに月曜日になりますね。
ありがとうございますm(_ _"m)ペコリ
date("w")って数値で返ってくるのですが、string型なんですね(;´▽`A``

>>362
mb_internal_encoding指定してやってみて

364 :362:2006/01/23(月) 01:53:26 ID:???
>>363
こんな夜中にありがとうございます。
早速やってみます。

365 :nobodyさん:2006/01/23(月) 02:27:47 ID:???
指定したファイルのバイナリデータから、
指定した文字列を抜き出すにはどうすればいいでしょうか?
またそのデータ内に指定した文字列がいくつ入っているかも出来ないでしょうか?

366 :nobodyさん:2006/01/23(月) 02:38:53 ID:???
>>365
$cnt = preg_match_all('/文字列/', file_get_contents("ファイル名"));

367 :nobodyさん:2006/01/23(月) 04:32:07 ID:???
wikiの下のほうでよくみかける、
HTML convert time to 0.015 sec.
みたいな部分はどのように記述されてるのでしょう?
wikiのソースを見ても全くわからず・・・
PHPで動的なサイトを作る練習をしているんですけど、
htmlが、どのくらいの速さで出力されるのか知りたいのです。
どなたかわかるかた教えてください。

368 :nobodyさん:2006/01/23(月) 04:41:51 ID:???
function microtime_float() {
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}

$start_time = microtime_float();
 :
メイン処理
 :
$end_time = microtime_float();
printf("HTML convert time to %4f sec.", $end_time - $start_time);

とかいう感じじゃないの?

369 :nobodyさん:2006/01/23(月) 06:30:22 ID:zyAl85LC
セッションで2次元配列を扱うことはできないんでしょうか?
php1.phpで
$_SESSION[$key1][$key2]
のデータを入力したものを
php2.phpで参照しようとしてもできませんでした…

370 :nobodyさん:2006/01/23(月) 07:47:29 ID:???
>>369
自己解決しますた('▽')
てか、ageてた…ごめんなさい

371 :nobodyさん:2006/01/23(月) 09:59:38 ID:???
mySQLとPostgreSQLでどちらを使うか迷っています。
それぞれの利点欠点を教えてください。

372 :nobodyさん:2006/01/23(月) 10:04:36 ID:???
mySQLの方が響きが良い。

373 :nobodyさん:2006/01/23(月) 10:10:50 ID:???
板違いじゃないのか

374 :371:2006/01/23(月) 10:17:45 ID:???
phpと使う場合の利点欠点です。
個人的には、性能よりも標準で、つまりより多く使われている方を選択したいのですが。

375 :nobodyさん:2006/01/23(月) 10:21:21 ID:???
>>374
じゃmysqlでいいんじゃない?
psql使えるレン鯖そう多くないし

376 :371:2006/01/23(月) 10:23:46 ID:???
ありがとう。糞切りがつきました

377 :nobodyさん:2006/01/23(月) 10:30:40 ID:???
今時の辞書は「踏ん切り」を「糞切り」と変換するのか・・・?

378 :nobodyさん:2006/01/23(月) 10:52:30 ID:???
そういう意味なら PHP 4 → MySQL, PHP 5 → SQLite じゃないか?

379 :nobodyさん:2006/01/23(月) 11:15:42 ID:???
これからはPostgreSQLですよ。マジで。

380 :nobodyさん:2006/01/23(月) 11:17:16 ID:???
2次元配列を使っていて説明しにくいのですが
例えば2×3の配列あって前の配列?の最後の配列を取りたい場合は
end(array)でとれると思うのですが
前の配列の最後の中にある配列の特定の値を取りたい場合はどうしたらいいのでしょうか?
array[0][2]という感じで。

一旦end(array)を取得して次にarray[2]とか2回に分けないといけないのでしょうか?


381 :nobodyさん:2006/01/23(月) 11:33:19 ID:???
end(ary[0])

382 :nobodyさん:2006/01/23(月) 12:10:22 ID:???
配列とか変数とかを気軽にRSS(RDF)形式に書き出すクラスは配布されていませんでしょうか?

383 :nobodyさん:2006/01/23(月) 12:55:18 ID:???
>>381 サンクス

384 :nobodyさん:2006/01/23(月) 13:27:42 ID:???
<?php
if($i==1){
?>

<TABLE>

<?php
}
?>

上のような記述方法って正式に認められてますでしょうか?

385 :nobodyさん:2006/01/23(月) 13:29:53 ID:???
>>384
ok

386 :nobodyさん:2006/01/23(月) 13:33:31 ID:???
ereg_replace を使ってURLのドメインまでを取り出したいのですが
どうすればよいのでしょうか?

http://www.yahoo.co.jp/hogehogehoge/hoge/hoge.htm

http://www.yahoo.co.jp

http://google.com/hoge.htm

http://google.com

のようにしたいのですがどうすればよいでしょうか?

387 :nobodyさん:2006/01/23(月) 13:35:27 ID:???
変数名を正規表現で抽出したいのですが、どのように記述すればいいでしょうか?

388 :nobodyさん:2006/01/23(月) 13:40:57 ID:???
WebProg の正規表現スレってなくなったの?

389 :nobodyさん:2006/01/23(月) 13:58:04 ID:???
>>386
pregじゃダメ?
$url = preg_replace("/^(http:\/\/[^/]+).*/","$1",$url);

あるいは

$tmp = parse_url($url);
$url = $tmp['scheme'] . '://' . $tmp['host'];


390 :nobodyさん:2006/01/23(月) 13:58:54 ID:???
>>388
あるよ

391 :nobodyさん:2006/01/23(月) 14:14:18 ID:???
>>389
parse_url()使ったほうが楽な気がする

$array = parse_url($url);
print $array['scheme'].'://'.$array['host'];

392 :nobodyさん:2006/01/23(月) 14:26:03 ID:???
parse_url() ってうまく解釈できないときにエラーが出るんで、
個人的にはオススメしない

393 :nobodyさん:2006/01/23(月) 15:02:13 ID:???
>>387
変数名の抽出ってPHPのソースからか???

394 :nobodyさん:2006/01/23(月) 17:24:31 ID:???
>>393
そそ、ソースからです。

395 :nobodyさん:2006/01/23(月) 17:32:57 ID:???
>>394
ブロックの長過ぎるコードの解析でもするならそれ用のツールを
用意した方がいいと思うんだけど。


396 :nobodyさん:2006/01/23(月) 18:12:39 ID:???
>>394
手抜き版
preg_match_all('/(\$GLOBALS\[[a-zA-Z_]+\w*\]|\$GLOBALS\[\'[a-zA-Z_]+\w*\'\]|\$GLOBALS\[\"[a-zA-Z_]+\w*\"\]|\$[a-zA-Z_]+\w*)/', $src, $match);
$list = array_unique($m[0]);
var_dump($list);

$XXXX と $GLOBALS[〜] だけ抜き出す。

397 :nobodyさん:2006/01/23(月) 18:13:29 ID:???
書き間違い。
$list = array_unique($m[0]); は $list = array_unique($match[0]);

398 :nobodyさん:2006/01/23(月) 19:09:38 ID:???
くだらない質問スマソ、
$var[] = "";
ってどういう意味でしょうか?


399 :nobodyさん:2006/01/23(月) 19:12:07 ID:???
>398
array_push( "", $var );
とほぼ同じ

400 :nobodyさん:2006/01/23(月) 19:36:32 ID:???
>>399
array_push( $var, "" );

だよね。
しかも$varを配列で宣言しておかないとワーニングになるし。

401 :nobodyさん:2006/01/23(月) 20:08:36 ID:???
こんばんは。昨日chown関数で質問してた者です。
一応解決?しましたので似たような人のために自分が取った方法を書いてきます。

sudoでapacheとnobadyにchownの権限を与えて後はsystem関数で出力 です。
何故かapacheとnobady両方に権限を与えてやらないと通りませんでした。
apacheで動かしてるんだからapacheだけでも行けそうな気がするのですがnobadyがないとFALSEを返すようです。

ちなみにテスト環境は/homeへテスト用アカウント発行して chown -R で再帰的に全てのフォルダ、ファイルを一旦apacheの所有にしてテストしました。
実行はブラウザでアクセスして動かしました。

蛇足ですが、スーパーバイザー権限てroot権限と解釈しているのですがあってますでしょうか

sudoでやりたいことは実現したのですがapahceとnobadyにchown権限を与えているという現状がかなりリスクを背負っているようで回避策を探しています・・・。



402 :nobodyさん:2006/01/23(月) 21:40:22 ID:???
>401
残念だが nobady ではない。 nobody だ。

403 :nobodyさん:2006/01/23(月) 21:51:41 ID:???
セッション情報をデータベースに保持しています。
データベースからセッション情報を取得してから
https://www.stackasterisk.jp/tech/php/searchAction.do?cid=18
のPHP出力をダウンロードさせるの情報を参考にして
phpを作ったのですが正常に反応しません。
セッション情報を取得せずに
試してみると上手くいくので間違いなくsession、ヘッダーあたりで問題があると
思うのですが、解決策はないでしょうか?

ちなみにデータベースからセッション情報を取得するのは
pearのDB.php使ってmysqlに接続しています。

404 :nobodyさん:2006/01/23(月) 21:53:27 ID:???
スーパーバイザーやapahceにも突っ込んであげないと。。。

405 :nobodyさん:2006/01/23(月) 22:00:07 ID:???
>>403
っ ソース

406 :nobodyさん:2006/01/23(月) 22:10:03 ID:???
>>402
まったく、このスレ(板)を見てるなら良く分かると思うんだがね。

407 :nobodyさん:2006/01/24(火) 01:41:43 ID:???
この板の名無しさんてnobodyだったんか
4年通ってたが今気づいた

408 :nobodyさん:2006/01/24(火) 03:54:25 ID:9b512MA6
質問です。
シフトJIS使ってたら、ファイルにデータを保存したりそれを読み込んで表示したり
したときにおかしくなったので、テキストを全部EUC-JPで扱いたいです。
php.iniでは、

mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = EUC-JP
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none

としているのですが、スクリプトでファイルを書き換えるとEUC-JPのファイルも
シフトJISに書き換えてしまいます。
どこが原因でしょうか?

409 :nobodyさん:2006/01/24(火) 04:07:26 ID:???
>>408
アップロードするツール(FFFTPとか)の余計なエンコード変換機能とか。
# FFFTPのはファイル"名"の変換だけだっけ?

410 :nobodyさん:2006/01/24(火) 04:33:25 ID:???
>>408
>スクリプトでファイルを書き換える

これが何やってるのかわからんことにはどーにもこーにも

411 :408:2006/01/24(火) 04:35:19 ID:???
>>409
んと、今ローカルでIIS(ver5.1)で動かしているんです。
EUC-JPにしたログファイルをスクリプトで書き換えたあと
ログファイルを見てみると、シフトJISになっているという感じです。

412 :nobodyさん:2006/01/24(火) 06:14:37 ID:QMkPpjCA
スクリプトが、Webページで実行されたか、コマンドラインから実行されたかを、
スクリプト内から知る良い方法はありますか?

413 :nobodyさん:2006/01/24(火) 09:17:44 ID:???
マニュアルの環境変数とか定義済み変数のところをよく読んでみよう

414 :nobodyさん:2006/01/24(火) 10:45:38 ID:???
設定は>>408で問題ないと思うが
・その設定の状態のもとで、スクリプトが本当に動いているのか。
ログに設定の状態を書き込むようにしてチェックしてみるとか
・スクリプト自体のエンコードが本当にEUC-JPか。そのスクリプトの中で
単純なファイルの書き込みを試してみる。例えば
$fp = fopen('test.txt','w');
fputs($fp,'漢字');
fclose($fp);


415 :nobodyさん:2006/01/24(火) 11:05:13 ID:???
>>411
確認したいんだけど、そのスクリプト既存のログファイルを読み込んで
何かデータを追加して書き込み直す処理だけをしてるのかな。
ここの"何かデータ"にあたるのはどうやって生成してる?

プログラムの設計者が敢えて変換を行ってなければ
PHPの設定如何に関わらず、ファイルの入出力に関しては自動に変換などはしない。
取り合えず>>414で簡単なファイル出力してチェック。

416 :nobodyさん:2006/01/24(火) 11:10:54 ID:???
FreeBSD 5.4 に php 4.4.2 のインストールを試してるんだけど
特になにもせず # configure && make && make install で
以下が md5 チェックを失敗してインストールされませんでした。

[PEAR] Archive_Tar: bad md5sum for file /usr/local/lib/php/Archive/Tar.php
[PEAR] Console_Getopt: bad md5sum for file /usr/local/lib/php/Console/Getopt.php
[PEAR] HTML_Template_IT: bad md5sum for file /usr/local/lib/php/HTML/Template/IT.php

これってバグなんでせうか?

417 :nobodyさん:2006/01/24(火) 11:19:16 ID:???
それは下らない質問ではないと思うんだけど。本スレの方がいいんじゃないかなぁ。

418 :nobodyさん:2006/01/24(火) 12:47:19 ID:???
>>417
原因が分かりました。レスありがとです。

pear 以下の tar ファイルにはやっぱり問題があって、
修正が行われたようです。。。

http://cvs.php.net/viewcvs.cgi/php-src/ChangeLog?r1=1.2233&r2=1.2234

2006-01-22 Greg Beaver <greg@chiaraquartet.net>

* (PHP_4_4)
pear/packages/Archive_Tar-1.3.1.tar
pear/packages/Console_Getopt-1.2.tar
pear/packages/HTML_Template_IT-1.1.tar
pear/packages/Net_UserAgent_Detect-2.0.1.tar:
fix bug #36002: md5sum checksum failures on install

とりあえず snapshot 版では fix されてるっぽいので、ここだけ差替えて
利用しようと思います。

419 :nobodyさん:2006/01/24(火) 13:23:11 ID:???
>>416
MD5SUMチェックってことは、それはバグにせよ
そのPHPパッケージの問題じゃないの?

420 :419:2006/01/24(火) 13:27:08 ID:???
>>418
つうことは公開してたtar玉とそのチェックサムを
生成した対象が異なってたつうことか。
# 手作業が介在してるのかね。

421 :nobodyさん:2006/01/24(火) 14:25:37 ID:???
mb_send_mailでメールを送信しているのですが、Subjectの最初の文字だけ化けてしまいます。
ソース文字コードSJIS

mb_language('Japanese');
mb_internal_encoding ('shift_jis');

$Subject="株式会社";

$rcd = mb_send_mail($MailTo, $Subject, $Message, $MailFrom);

化けてしまう文字 株
化けた結果 *

$Subject="会社株式";
とかの場合には問題なく表示できます。

同じような状態でEUCで記述した際にも、
登録 という文字が {2 に化けてしまいました。

PHP 4.4.1

よろしくお願いします

422 :nobodyさん:2006/01/24(火) 14:30:31 ID:???
>>421
mb_encode_mimeheader

423 :nobodyさん:2006/01/24(火) 14:58:21 ID:dZqRn44X
Atomを使いたいのでxsltを導入したいんですが
php.iniでextension=php_xslt.dllの前の;をはずすだけでは導入できてないようです
他に何かしなければならないのでしょうか?

ちなみにAtomを使うプログラムは
ttp://page2.xrea.jp/expack/
です

PHPのバージョンは4.4.2です

424 :nobodyさん:2006/01/24(火) 15:02:44 ID:???
ランダムで1〜100の中から一つ数字を選んで
テキストにその数字を書き込む。
というコードを作成したとします。

次にまたページを開いた時に
ランダムで1〜100の中から一つ数字を選んで
テキストに書き込みたいのですが
既にテキストに記入されている数字は選ばないようにしたいです。

なにか上手くやる方法はありませんでしょうか?


425 :nobodyさん:2006/01/24(火) 15:06:34 ID:???
>>423
その「php.iniでextension=php_xslt.dllの前の;をはずす」行為はどこで得た知識?
(php_xslt.dllを使うこと自体は別に間違いではないけど)
取り合えず、ちゃんとPHPのマニュアル嫁。

426 :nobodyさん:2006/01/24(火) 15:10:34 ID:???
>>424
事前にテキストを読み込んで、その値を使わないようにする。

ランダム値を生成して「その値」と等しければ、再度ランダム値を生成
その生成した値もまた…って処理をすれば良いんでないの。

427 :nobodyさん:2006/01/24(火) 15:23:49 ID:dZqRn44X
>>425
ありがとうございます
なんとか導入することができました

428 :nobodyさん:2006/01/24(火) 15:27:08 ID:???
>>424
結局、どこかの場所に使っていない数字を保存しておく必要がある。

閲覧ユーザーごとにやりたいなら、未使用数字を配列にしてセッションに格納
サイト単位でやりたいのなら、未使用数字をDBなどに格納

429 :nobodyさん:2006/01/24(火) 15:33:13 ID:joG44Ifc
ファイル書き込みを行う際に、別の人がファイルをロックしているか
どうかを判定するにはどうしたらいいのでしょうか?

430 :nobodyさん:2006/01/24(火) 15:35:30 ID:???
>>429
マニュアルで flock を読め


431 :nobodyさん:2006/01/24(火) 15:49:15 ID:???
>>429
ロックしている事が、他から確認できるようなロック方法を実装する

432 :nobodyさん:2006/01/24(火) 16:13:07 ID:joG44Ifc
>>430
一通り日本語の部分はよみましたが、どこに書いてるんですか?

>>431
やはり一発で確認する方法は無いという事ですか…

433 :nobodyさん:2006/01/24(火) 16:36:57 ID:IB/gJro7
CSVファイルに対して、擬似的にDBへアクセスするように
SQL文でデータを取り出せるようなクラスとかってどこかで配布していないでしょうか?

434 :nobodyさん:2006/01/24(火) 16:38:43 ID:???
>>429
ロックしてみてロックできなければ誰かがロックしている

435 :nobodyさん:2006/01/24(火) 17:25:12 ID:???
>>432
すでに他の人にflockされてるファイルをflockしようとしたら、
flockが解除されるまで待たされるかエラーが返ってくるから
それで一発で判定できるだろ。

436 :nobodyさん:2006/01/24(火) 17:35:19 ID:???
>>432
ざっくり書くとこんな感じでとりあえずいける。
if ( $fh = fopen( $filename, 'r+b' ) and flock( $fh, LOCK_EX ) ) {
ftruncate( $fh, 0 );
書き込み
}

ロックはその書き込みたいファイルだけじゃなくて他の処理も対象に
含まれる可能性があるので、絶対にこの書き方にすれば ok という
解は存在しない。十分練習を積むべし。

ちなみに、flock は実際にはファイルをロックするんじゃなくて
ロックしますという宣言をするだけなので、flock を使わずに
ファイルを変更することを止めることはできない。その辺注意ね。


437 :nobodyさん:2006/01/24(火) 18:07:54 ID:UpPUFgZM
他のスレで質問したのですが、いた違いだったみたいなのでここで質問させて下さい。

サーバ:
Redhat Enterprise Linux 3
Apache 1.3.33
PHP 4.3.11

クライアント:
Windows XP Pro SP2
Internet Explorer 6.0 SP2

クライアントにおいてクッキーが受け付けられません。
サーバからのレスポンス(PHP経由)ではSet-Cookieヘッダが出力されているのに、
その直後のクライアントからのリクエストになぜかCookieヘッダが付加されないようです。
Set-Cookieヘッダは「Set-Cookie: PHPSESSID=hogehoge; path=/」のように、
一時的なクッキーを設定するようヘッダを出力しています。
サーバにはIPアドレスでアクセスしており、
他のウェブサイトにドメインでアクセスするとクッキーを受け付けることが出来ます。
セキュリティの設定は全てのクッキーを受け入れるようになっています。

何か参考になる情報をご教示頂ければ嬉しいです。

438 :nobodyさん:2006/01/24(火) 18:17:38 ID:???
>>437
ヘッダはどうやって確認してるの
俺はFireFoxにWebDevelopperという拡張機能を追加してるんだがデバッグに便利だよ
レスポンスヘッダもクッキーの確認も簡単

439 :437:2006/01/24(火) 18:20:48 ID:UpPUFgZM
IEにレスポンスとリクエストのヘッダが見られるプラグインを追加して確認しています。
ちょっとそのWebDevelopperというのも調べてみます、情報有難うございました!

440 :nobodyさん:2006/01/24(火) 18:44:37 ID:???
>>438
WebDevelopperのレスポンスヘッダ表示ってコンテンツ表示と
同時に別のウィンドウに表示できる?
Information → View Response Headers だと
都度レスポンスを取りにいってるみたいで使い方が限定されるので
Fxの拡張だと http://livehttpheaders.mozdev.org/ の方が使い勝手がいい。

441 :nobodyさん:2006/01/24(火) 19:38:15 ID:???
/で終わるURLからファイル名を取得する方法を教えてください。
たとえば、
http://example.com/
というURLの場合、index.htmlなりindex.phpなりという文字列を取得したいのですが、
どのようにすればいいでしょうか?


442 :nobodyさん:2006/01/24(火) 19:44:37 ID:???
>>441
原則無理。
両方でgetしてみて判定する、という手順を踏めば可能。

443 :nobodyさん:2006/01/24(火) 19:52:38 ID:???
>>441
運がよければContent-Location:ヘッダを見れば判るかも。
たぶん確実な方法はない。

444 :nobodyさん:2006/01/24(火) 19:54:07 ID:???
>>442-443
なるほど、そうなのですね。
ありがとうございましたm(_ _)m


445 :nobodyさん:2006/01/24(火) 21:51:09 ID:OyZLn4Ht
<?php
$logfile = "hoge.txt";
srand( (double)microtime()*1000000 ); //乱数処理
$a=round( rand(0,10) );
$lines_e = @file($logfile);
while (list($num, $line) = each($lines_e)){
list($num,$mess) = split("\t",$line);
if($num==$a){
do {
echo $a.' = '.$num.'<br>';//テスト用に表示
srand( (double)microtime()*1000000 ); //乱数処理
$a=round( rand(0,10) );
} while ($num!=$a);//$numと$aが違くなるまで繰り返し
}
}
?>

hoge.txtには
1 aaaa
2 bbbb
8 aaa
6 eeee
のように番号とメモがタブ区切りで入っています。
ファイルに書き込むときに同じ番号がある場合
もう一度ランダムで重複しない番号を出す処理を考えていたのですが
上のソースではうまく出来ません。
どのようにすればよいでしょうか?

446 :nobodyさん:2006/01/24(火) 21:56:40 ID:???
>>445
乱数取得するたびにsrandやってるからだと思われる

447 :445:2006/01/24(火) 22:12:26 ID:???
なんか根本的に俺間違ってる気がしてきました。

このやり方でなくても
ファイルにある数字と重複しないランダムな数字の
出し方があればお願いします。

448 :nobodyさん:2006/01/24(火) 22:36:08 ID:???
>>445
最初にファイル読んでるときに連続していなければ間の番号、
最後まで連続してたら最終+1した番号を持つようにすれば
重複はしないだろう。

449 :445:2006/01/24(火) 22:39:27 ID:???
>>448
ランダム値にしたいので、
それで始めてしまうと
0,1,2,3,4,5,6,7,8,9となってしまいませんか?

450 :nobodyさん:2006/01/24(火) 23:13:35 ID:???
>>447
あい。

$logfile = "hoge.txt";
$num_max = 10;

$lines_e = @file($logfile);
$num = range(1, $num_max);
srand( (double)microtime()*1000000 );
foreach($line_e as $l) {
$n = split("\t", $l);
if(($pos = array_search($n[0], $num)) != FALSE) {
unset($num[$pos]);
}
}
shuffle($num);
print $num[0];


451 :nobodyさん:2006/01/24(火) 23:41:23 ID:???
>>447
<?php
$fp = fopen('log.txt','r+');
while( $ary = fscanf($fp,"%d\t%s\n") ){
$log[$ary[0]] = $ary[1];
}

srand((microtime()*1000000));
do{
$a = round(rand(0,10));
}while(isset($log[$a]));

$str = $a."\t".'comment';
echo $str;
fputs($fp,$str."\n");
?>

このままだと、使い切ると無限ループになるがな。

452 :nobodyさん:2006/01/25(水) 01:11:42 ID:???
a.php の中に include('b.php'); があります。
b.php の中には関数が山ほど定義されています。

この関数の一部を c.php にコピーし、
b.php の先頭に include('c.php'); と書いたとき
これって同じ動作が保障されていますか?

ぱっと見良さそうなんですが
動作しなくなる特別な場合とかありますか?

453 :nobodyさん:2006/01/25(水) 01:14:23 ID:???
>>452
コピーなの?移動じゃなくて?
同じ関数を複数のファイルで定義してまとめて読み込んじゃうと
関数の多重定義エラーで止まっちゃうよ。
定義を別ファイルに移動して多段階で読み込むだけなら無問題。

454 :nobodyさん:2006/01/25(水) 01:15:54 ID:???
>>453
すいません、移動の間違いでした。
これで安心してプログラムがかけます。
ありがとうございました。

455 :nobodyさん:2006/01/25(水) 01:16:31 ID:???
>>450>>451
どっちが良いの?気になるから
えらい人おしえて!

456 :nobodyさん:2006/01/25(水) 02:00:07 ID:???
ページ1でランダムに10個の俳句を並べそれぞれ5つのradioボタンで採点させています。
ページ2でバリデーションされるにはどうするのがいいですか?

つまり、ランダムに表示させた俳句番号が正しく送られてきているかチェックしたい。
しかしランダムの数値をサーバ側で持たなくてはいけないような気がするのですが、
session_idを使ったりするのでしょうか。

457 :nobodyさん:2006/01/25(水) 02:07:25 ID:???
もうちょっと下らない質問をしてくだちい

458 :nobodyさん:2006/01/25(水) 02:11:56 ID:???
さっぱり意味が分からないな。

input name="point[表示させた俳句ID]" value="点数"

こんな感じで配列渡しで終わったりしないのか?

459 :nobodyさん:2006/01/25(水) 02:14:39 ID:???
>>456
どのくらいの厳密性を要求してるのかにもよる気がするんだけど、
各採点ボタンの俳句No.+全No.順リスト1個の組み合わせにして
両者が合致してればOKにするとか、不安ならさらにリスト側をMD5で
暗号化しとくとかでも十分な気がする。
(それでも不安ならCRCでも付加しとけば良かろう)
個人的にはそういう一時的遷移情報の照合でセッションを使うのは
処理コストが高い+新規ウインドウを出すと矛盾しかねないので好かない。

460 :nobodyさん:2006/01/25(水) 02:22:55 ID:???
PHPで世界征服は可能ですか?

461 :nobodyさん:2006/01/25(水) 02:28:13 ID:???
C#なら!

462 :nobodyさん:2006/01/25(水) 02:44:08 ID:???
>>458
そのIDが次のページでチェックする時に保持されないので困っている次第です。

>>459
ちょっと理解できなかったです…すみません。
全No.順リスト1個ってなんでしょうか?

厳密性は、
DB上のPRIKEYが俳句No.となっていて<input name="俳句No.(つまりPRIKEY)"... です。
これだと好きなものに適当に点数をつけられるのは嫌かなー位です。

463 :451:2006/01/25(水) 02:48:59 ID:???
>>455
451の悪いところを挙げようか?
例えば0〜100億の範囲の内、1〜100億までを使い切っていたとすると
最後に残っている0に合致するまでランダムに値を生成しないとならないので
相当なロスがあるよ。1〜100億までを使い切るまでにも、
そういったロスが積み重なっている筈。

464 :450:2006/01/25(水) 03:10:28 ID:???
>>463
そういう意味では450のは多くても少なくても処理時間は極端には差がないけど、
最初に「使用可能なNo.のリスト」を生成するのでメモリを食いやすく、初回から
それなりの処理時間を必要とするかもね。
多分、まだデータの少ないうちなら451の方が処理速度が速い。(希ガス)

処理速度的には最後のランダム要素抽出ってshuffle→[0]抜き出しよりも
randで抽出位置の決定をやった方が速いかもしんない。
(PHPのshuffleの速度ってベンチ取ったことないから分かんないけど分量増えると遅そう…)

465 :459:2006/01/25(水) 03:22:27 ID:???
>>462
要するに
<input type=hidden name="俳句No[0]" value="3">
<input type=radio name="採点[0]" vakue="1">...<input type=radio name="採点[0]" vakue="5">
<input type=hidden name="俳句No[1]" value="5">
<input type=radio name="採点[1]" vakue="1">...<input type=radio name="採点[1]" vakue="5">
 :
<input type=hidden name="俳句No[9]" value="2">
<input type=radio name="採点[9]" vakue="1">...<input type=radio name="採点[9]" vakue="5">
とかいう実際の10個の俳句フォームに加えて
<input type=hidden name="俳句list" value="3,5,〜,2">
という、[0]〜[9]にそれぞれ何番を入れたかを連結したデータも一緒に入れてやって、
submitされたら
if(implode(",", $俳句No) != $俳句list) { echo "データが不正です"; }
とかすればいいんじゃないの?ってこと。

で、このリストが丸見えだとそっちも操作されそうで怖いと言うのであれば
<input type=hidden name="俳句list" value="<?=md5("3,5,...,2")?>">
とmd5化してやって、
if(md5(implode(",", $俳句No)) != $俳句list) { echo "データが不正です"; }
としちゃえば、そうそう容易には改変できないでしょ、ということ。

466 :nobodyさん:2006/01/25(水) 03:33:12 ID:???
>>455
451が最後に書いてる「全ての番号を使い切ってしまったかどうか」を判定させるなら
450の処理方法の方が格段にやりやすい。
多分、451はその処理を加えるだけで急激に速度が落ちる。

467 :466:2006/01/25(水) 03:35:06 ID:???
あ、ごめん。そんなことないや。
単純に if(count($log) >= 11) とかで一発で判定できちゃうね。
すまそ

468 :nobodyさん:2006/01/25(水) 04:05:39 ID:???
>>465
す、すごい技ですね。考えもつきませんでした。

ちょっと理解できなかったのは、俳句listには何が入るのですか?俳句No[]かな?

あれ?POSTで送られてくる値って前ページHTMLと同じ順番で来るんでしたっけ?


469 :nobodyさん:2006/01/25(水) 04:17:23 ID:???
>>468
POST後に俳句Noをimplodeで連結して判定してんだから
当然listに入れるのも俳句Noをimplodeしたものだよ。
あとPOSTの送信順はnameを配列変数名にしてれば気にする必要なし。
name="俳句No[3]"はPOSTされると$_POST["俳句No"][3]に格納される。

470 :nobodyさん:2006/01/25(水) 04:53:17 ID:???
>>469
やっと理解できたと思います。ありがとうございます。

上のソースだと valueのところを好きなようにいじって、md5(...)のとこも
好きなようにいじったように入れれば、任意の番号をいじれるじゃん!
って思ったけど、md5をsha1とか違うアルゴリズムにすればわからないわけですね…

POSTの送信順は、関係ないですね。俳句No[]は、0-10で並ぶわけですから。
非常に勉強になりました。

471 :nobodyさん:2006/01/25(水) 05:04:59 ID:???
確かにmd5の案は落とし穴っぽい。
cryptとか、補助キーを使う暗号にすればいいね。

472 :nobodyさん:2006/01/25(水) 05:16:44 ID:???
>>470-471
だから最初にどのくらいの厳密性を要求してんのか、って聞いたんじゃん。
そこの強度を上げる方策は色々あるんだから必要に応じて凝ればよろしい。

473 :nobodyさん:2006/01/25(水) 09:08:44 ID:???
phpで使えるhtmlってバージョン3ですか4ですか?

474 :nobodyさん:2006/01/25(水) 10:00:12 ID:???
バージョン6だよ

475 :nobodyさん:2006/01/25(水) 10:00:30 ID:???
>>473
Compact HTML でもなんでも好きなのをどうぞ


476 :nobodyさん:2006/01/25(水) 12:21:33 ID:???
俳句No[ ]いらなくないか?

477 :nobodyさん:2006/01/25(水) 12:48:25 ID:???
>>476
無くても処理は可能だけど、あった方が俳句listとの比較が容易になる上、表示の順番も含めてチェック可能になる。

478 :nobodyさん:2006/01/25(水) 13:21:01 ID:???
おい、おまえら

$str = 'a';
$str++;

これで$strはbになるって知ってたか?
知らなかったぜフハハー

479 :nobodyさん:2006/01/25(水) 13:48:37 ID:???
マニュアル行き

480 :nobodyさん:2006/01/25(水) 14:06:33 ID:???
なにこの良スレ

481 :nobodyさん:2006/01/25(水) 14:39:23 ID:???
>>478
Perlのパクリ

482 :nobodyさん:2006/01/25(水) 14:43:57 ID:???
質問です。

http://hogehoge.hoge/?aaa=5
などでURLを開くと
$aaaの値に5が入りますが

http://hogehoge.hoge/5
このようなURLで
$aaaに5を入れる事は出来ますか?


483 :nobodyさん:2006/01/25(水) 14:47:25 ID:???
.htaccessとかmod_rewriteとかApacheの機能を使ってURLの変換かければできなくはない。

484 :nobodyさん:2006/01/25(水) 14:48:15 ID:???
PATH_INFO も FAQ かな


485 :nobodyさん:2006/01/25(水) 14:53:03 ID:???
PATH_INFOってURLの途中にプログラム挟まないと無理じゃないの?

486 :nobodyさん:2006/01/25(水) 15:23:38 ID:???
>>485
exmaple.com のトップページがプログラムならいいんじゃないの?


487 :nobodyさん:2006/01/25(水) 15:47:06 ID:???
>>486
/5 ってのがくっついた時点で /5/{DirectoryIndex} にアクセスしない?
で、5 の部分がパラメータ値なら可変なんだろうからそんなディレクトリは存在しない→404かと

488 :軟式PHP:2006/01/25(水) 16:10:34 ID:???
483が答え書いてるジャソ

489 :nobodyさん:2006/01/25(水) 16:16:03 ID:???
>>488
別解としてPATH_INFOが使えるかどうか、という論議だろ。

490 :nobodyさん:2006/01/25(水) 16:53:56 ID:???
>>478
それよりも
$str = 'z';
$str++;
$strがaaになる
覚えておけ

491 :nobodyさん:2006/01/25(水) 16:57:41 ID:???
>>489
PATH_INFOでもindex.phpとかが省略されていたら無理
http://example.com/index.php/5 はOKだけど
http://example.com/5 は404not found


492 :nobodyさん:2006/01/25(水) 17:17:08 ID:???
そのへん極めるならPHP単体でやることじゃないな

493 :nobodyさん:2006/01/25(水) 17:20:08 ID:???
くだらなくないねぇ


494 :nobodyさん:2006/01/25(水) 17:24:07 ID:???
/?aaa=5 のパラメータの値として想定される数だけディレクトリ作って、
そこに自分のディレクトリ名を$aaaにセットするindex.phpを置けば
PHPだけでもできるな。

495 :nobodyさん:2006/01/25(水) 17:33:01 ID:P6kcSZ98
返り値のないクラスのテストについて教えてください。
class foo {
 function execute() {
  $sp =& fopen("huga.txt", "r");
  $fp =& fopen("hoge.txt", "w"); flock($fp, LOCK_EX);
  if ($fp == FALSE) {
   $result = PEAR::raiseError("Can't Open File");
   return $result;
  }
  while ($data = fgets($sp, 1024)) {
   fputs($fp, $data);
  }
  fclose($sp);
  flock($fp, LOCK_UN);
  fclose($fp);
  return TRUE;
 }
}
例えばPHPUnitを利用して
正しく書き込まれているか。エラーが生成されるか。
をテストしたいのですが、どのようにテストすればいいのでしょうか。


496 :nobodyさん:2006/01/25(水) 17:37:38 ID:???
>>495
PHPUnit 側でそのファイルに対してチェックを行うっつーのはダメでしょうか


497 :nobodyさん:2006/01/25(水) 18:49:30 ID:???
PHP でオセロ作るの無理っぽくね?と思ったゆうべの10時頃。
作り方も考えつかねーよウボァー

498 :nobodyさん:2006/01/25(水) 19:22:41 ID:???
無理ではないだろ

499 :nobodyさん:2006/01/25(水) 19:29:30 ID:???
>>497
おまえがタコなだけだ

500 :nobodyさん:2006/01/25(水) 19:29:56 ID:???
プレイヤーが○の時
1〜3はループ
1.置いた周囲に●があるか判定
↓YES
2.その方角をひとつづつ読み込み、○が最初に出た時点まで判定
↓YES
3.間を全て○にする

でいいんじゃないの

501 :nobodyさん:2006/01/25(水) 20:28:10 ID:???
言語選択の問題

502 :nobodyさん:2006/01/25(水) 21:00:06 ID:???
Ajaxと連携すればできるだろ。
これはRubyだけど、ttp://www.railthello.com/

503 :nobodyさん:2006/01/25(水) 21:04:12 ID:???
PHPでリアルタイムゲームは相性悪そう

504 :nobodyさん:2006/01/25(水) 21:20:18 ID:???
Ajaxまで使う必要あるか?別にコマを置く→リロードで構わないだろ。オセロくらい。

505 :nobodyさん:2006/01/25(水) 22:49:14 ID:???
むしろ、JavaScriptだけでいけそうな気もする。

506 :nobodyさん:2006/01/25(水) 22:55:02 ID:???
下手したらJavaScriptもいらないのでは。

507 :nobodyさん:2006/01/25(水) 22:58:40 ID:???
>>505-506
お前らはきちんと話を読め。誰か言い出すかと思ったけど。

508 :nobodyさん:2006/01/25(水) 23:06:06 ID:???
誰かがやらなきゃいけないなら俺がやる!

509 :nobodyさん:2006/01/26(木) 01:58:35 ID:???
送られて来た点数をMysqlでUPDATEしようとしています。

$id_point_map = array(1 => 4, 2 => 2, 3 => -2, 4 => -4); //idと点数

この場合以下のUPDATEをcount($id_point_map)分foreachでまわさないと
いけないでしょうか?一気にUPDATEする方法はあるでしょうか?

UPDATE date SET total_point=total_point+$point WHERE id = $id;



510 :nobodyさん:2006/01/26(木) 02:43:25 ID:oTQct+IL
preg_matchとpreg_match_allの違いって、
preg_matchは該当する先頭の1個だけで、
preg_match_allは該当するモノ全部って事??

511 :nobodyさん:2006/01/26(木) 03:01:14 ID:???
>>510
基本的にそんな感じ、詳しくはマニュアル嫁

512 :nobodyさん:2006/01/26(木) 10:41:21 ID:???
>>509
PHPの質問じゃない。MySQLのスレで聞いてこい。

513 :nobodyさん:2006/01/26(木) 11:19:34 ID:???
文字コードの変換方法おしえてください。
jcodeとかnkfみたいなのありませんか?

514 :nobodyさん:2006/01/26(木) 11:27:09 ID:???
>>513
マニュアルのマルチバイト文字列関数のところを穴が開くほど読め


515 :nobodyさん:2006/01/26(木) 11:38:00 ID:???
mb_convert_encodingがエラーで動かないんですが、追加で何かインスコとかしないとダメですか?

516 :nobodyさん:2006/01/26(木) 11:43:35 ID:???
環境書けよ

517 :nobodyさん:2006/01/26(木) 12:22:26 ID:???
xreaのPHP4サバでPEARを使うにはどうしたら宜しいのでしょうか?

require_once "HTTP/Compress.php";
とやると
Warning: main(HTTP/Compress.php): failed to open stream: No such file or directory
と出てしまいます。
CGI版PHPにしても同様です。

518 :nobodyさん:2006/01/26(木) 12:36:59 ID:???
>>515
エスパー的能力を発揮すると、
php-mbstringパッケージを入れろって頭に浮かんだよ。

519 :nobodyさん:2006/01/26(木) 12:43:58 ID:???
>>517
include_pathに、そのPEARライブラリを置いてあるパスを含ませる。

520 :nobodyさん:2006/01/26(木) 13:06:32 ID:???
function内で定義した変数を別functionで参照したいのですがどのようにすればよいのでしょうか?
globalでやってみても駄目でした。

<?
$a=10;
test();
function test(){
$b=20;
test2();
echo $b;
}
function test2(){
global $b;
$b++;
}
?>

↑では$bが21になるようにしたいんですけど・・。

521 :nobodyさん:2006/01/26(木) 13:32:24 ID:???
>>520
変数$bはtest内ローカル変数だから、test2内からでは参照できない。
変数$bを、変数$a同様にグローバルの場所で宣言するか、test内で global $b; として宣言する。

522 :nobodyさん:2006/01/26(木) 13:38:08 ID:???
>>520
つかその使い方なら test2($b); で渡せば良いだけだと思う。
どうも根本がわかってないようだが。

523 :nobodyさん:2006/01/26(木) 13:46:40 ID:???
Perl の sub や BASIC の GOSUB しかやったことない場合は
これで普通って思うかも

>>520
関数っつーのは一般に y= f(x) の形で表されるもので、
「何か値を入れたら何かが返ってくるもの」と考えるのが
C系の言語の基本です。で、関数の中身のことは知らなくて
いいように作る。これ。

524 :520:2006/01/26(木) 14:01:52 ID:???
みなさんありがとう。
>>522さんのやり方は当然わかっていたのですがどうせなら引数も
持たさないでいきたいなと思ったので・・。書いてなかったのですいません。
>>523さんの言いたいことはわかるのですが作るとなるとうーむ・・むつかしいところですね^^;


525 :nobodyさん:2006/01/26(木) 14:06:28 ID:???
>>524
もしいくつかの関数で変数を共有したいというのであれば、
global 宣言使うよりも class 使った方が何かといいよ。
おれも引数は少ない方が好きだからその気持ちは分からなくもない。


526 :nobodyさん:2006/01/26(木) 14:45:41 ID:???
>>525
classを活用出来ていない外野なんだけど、クラスでの解決方法をさらして欲しい・・
なんていうのは贅沢ですかそうですか

簡単にクラスを使った用例がホスイ

527 :nobodyさん:2006/01/26(木) 14:54:48 ID:???
>>526
class Hoge
{
var $b;
function test(){
$this->b=20;
$this->test2();
echo $this->b;
}
function test2(){
$this->b++;
}
}

$a = new Hoge;
$a->test();

528 :nobodyさん:2006/01/26(木) 15:01:11 ID:???
>>527
おぉ、サンクス。

>>526
メリットとしては共有しているものがはっきり違う形で
書かれているので関数の中だけ見ていてもぱっと見で影響
範囲が分かるってことと、共有する変数(PHP 的な正確な
用語は知らん)については最初に初期化しなければいけない
ので、これもあとで見たときに分かりやすくなるってこと
かな。使い捨てならどうだっていいことだけど。


529 :520:2006/01/26(木) 16:48:46 ID:???
おお、俺もひよこなんでclassの解説が聞きたかったので良かった。サンクス

で、確かにクラスにしようかなとも考えたのですが
なんというかオブジェクト?(カート、動物)と言った物の処理とは
ちょっと違うように思えたのでそれならclassもおかしいのかなと思いました?
言葉ではちょっと表しにくいですね・・・。
簡潔に言えば労働スケジュールを組んでいます。(時間配分や機械等)
でこの日にはこの処理をこれだけの量やってって感じなんですが
ここである条件の場合の処理というのを関数に分けているのです。
で、さらにこの分けた関数処理の中でも条件分岐によって重複する処理がでたので
さらに分けたということなんです。
・・て感じなのでなんていうか、クラス的な考え方ってありなのでしょうか?

530 :520:2006/01/26(木) 16:52:45 ID:???
あ、連投スマソ。ものはついでに教えてほしいのですが
俺の考え的には
if(){
 処理A
 処理C
}else{
 処理B
 処理C
}
↑の重複する処理Cの部分が多くなると関数として分けているのですが
こういう考え方についてはどう思われるのでしょうか?いろいろ教えてください^^;

531 :nobodyさん:2006/01/26(木) 16:57:53 ID:???
>>530
俺だったら
if(){
 処理A

}else{
 処理B
}
処理C

こう書く

532 :520:2006/01/26(木) 17:07:37 ID:???
>>531 あ、ごめん。はしょりすぎた。確かに>>530ならそうですねw
for(){
if(){
 if(){
  処理A
break 3
 }else{
  処理B
 }else{
  処理C
  処理D
  break 2
 }
}else{
 if(){
  処理E
 }else{
  処理F
 }else{
  処理G
  処理D
  break 2
 }
}
}
こんな感じでネストかけまくってるんです;;
処理Aとかも短くて同じ処理あるのですがいちいち関数で分けてたらややこしくなるしと思いまして・・

533 :nobodyさん:2006/01/26(木) 17:08:17 ID:???
>>529
オブジェクトは単なる概念であって物理的なモノとは全然関係ないんで、
「1日」がオブジェクトだったり、「作業」がオブジェクトだったり、
処理しやすいように書けばいいと思うけど?

何か一つオブジェクト指向言語をやってみると目から鱗が落ちて、
なんでもかんでもオブジェクトとして扱えるようになるかもしんない。
でもそうなると PHP やめたくなるかもしんない。

534 :nobodyさん:2006/01/26(木) 17:21:47 ID:???
PHPでMVCをうたってる参考書にはアクションクラスなるものもあるくらいだし
オブジェクト=モノ、みたいな発想にとらわれることはないかと。

ただのスタティックな関数の寄せ集めをそれっぽい名前でカテゴライズしてクラス階層に落とし込んだりもするし。

535 :nobodyさん:2006/01/26(木) 17:27:26 ID:???
>>532
脱皮が必要な時期にきてるかもね。
関数はくり返し使う処理を切り出すってより、「ロジックを書きやすく
読みやすいものにするためにブラックボックスを作る」という発想で
作っていくといいよ。まぁそのためにはデータ構造とかもいじらなきゃ
いけなくなるかもしんないけど。

例えば今回のスケジュールならたぶん作業や機械によって条件が
変わってくるでしょ? そういう条件をひっくるめてオブジェクトとして
くるんでしまう。そうするとおおもとのロジックで気にすべき条件は
見た目上だけど減るよね。オブジェクトの中に入っちゃうんで直接気に
する必要がなくなる。あとはロジックを書く際にいちばんほしい情報
だけをオブジェクトに教えてもらいながら書き進めていけばいい。

日本語だとえらく漠然としちゃうけど、オレの言いたいことは「ロジックを
気持ちよく書けるように工夫しろ」ってことだ。その結果、コード量が
増えてしまうことを恐れてはいけない。増えても読みやすければいいんだ。


536 :nobodyさん:2006/01/26(木) 20:51:35 ID:???
Apache+Tomcatを導入しろと言われたのですが
Apacheってなんのためにあるんでしょ?
URLから「8080」のようなポート番号が必要なくなるだけ?


537 :nobodyさん:2006/01/26(木) 20:55:49 ID:???
どこがPHPの質問やねん。

538 :nobodyさん:2006/01/26(木) 21:19:04 ID:???
>>536
Apacheのほうがwebサーバとしての機能が十分に備わってるからでしょ。
TomcatはあくまでもApacheのプラグインと考えたほうがいいよ。

539 :nobodyさん:2006/01/26(木) 23:06:17 ID:???
PHPで関数を多重同時実行することはできるでしょうか。
例えばfopenを使ってページや画像を保存する処理、つまり多重ダウンロードなどをしたい時は、
fopenでなくsocket系を使うべきでしょうか。

540 :532:2006/01/27(金) 08:10:12 ID:???
>>533-535
ありがとうございます。
>>535さんまた難しそうですね^^;
確かに実際にオブジェクト指向組んだことないし勉強しなければ・・
俺は癖でつい読みやすさよりコード量減らしてしまふ・・orz
>>533 やめたくなるってのはオブジェクト指向には適していないから??

541 :nobodyさん:2006/01/27(金) 08:44:08 ID:???
>>540
短くすること自体は良い習慣だけどね
全体量が小さくなることよりもブロックが小さくなることの優先度が
高いかな。おれはね。長いブロックを読み書きする体力がないもんで。

PHP はオブジェクト指向には「あまり」向いてないと思うよ。
5 はだいぶマシっぽいけど。
まぁそれは今から気にする必要ないんじゃない?

542 :nobodyさん:2006/01/27(金) 10:09:24 ID:???
俺は構造化のためにclass使ってるだけだけど、
かなり見通しも良くなるし、変数のスコープも明確になる。

ひとまず、クラスなんて使ってみれば「どうということはない」。
オブジェクト指向はその後でもいいんじゃね?


543 :nobodyさん:2006/01/27(金) 11:43:37 ID:???
そうですね。一人で作ってる小さいプログラムですし。
MVCとかも以前JSPサーブレットとか使ったときちょっとやったけど
量が少ないと分けない方が楽なんですよね。
もはや人に見せることは考えてないですが・・^^;
・・とこんなこと書いてると俺のひよこレベルがw

544 :nobodyさん:2006/01/27(金) 15:02:56 ID:???
PHPなら最初のころはclassなんてイラネと思うだろうけど
後のメンテナンス性、拡張性考えると自然とオブジェクト指向になっていくお^^

545 :nobodyさん:2006/01/27(金) 15:42:53 ID:???
オブジェクト指向がよくわからんのだけども、
とりあえず全てclassに入れればいいのかな?

546 :nobodyさん:2006/01/27(金) 15:47:56 ID:???
やみくもにclassに突っ込んだだけならオブジェクト指向とはいえない。
PHPなんて代表的なオブジェクト指向が必須でない言語の一つだから、無理してclassを使う必要はない。

547 :nobodyさん:2006/01/27(金) 16:29:44 ID:???
>>545
ちょっと前に書いてあるじゃん。
変数を共用したいとかそういう、「同じグループに属してる感」が
ないのに class に入れたって面倒なだけ。


548 :nobodyさん:2006/01/27(金) 16:40:41 ID:Y9rt4MFE
フレームワークとテンプレートエンジンて何が違うの?

549 :nobodyさん:2006/01/27(金) 17:32:34 ID:???
function hoge(arg1,arg2){
 for(){
  処理A
 }
 if(flag){処理B}
}

↑上の状態で処理Aの中でflagがtrueになった場合、
下のif文中処理Bのところでもっかいfor文に飛ばすにはどうすればよいですか?
for文の外に無限ループつけてそこにcontinueとかするしかないのでしょうか・・

550 :軟式PHP:2006/01/27(金) 17:43:45 ID:???
for()
{
処理A
}
を関数化すりゃいいんでねぇの。

551 :nobodyさん:2006/01/27(金) 17:51:28 ID:???
●改造は自由にどうぞ
●著作権は消さないで

というスクリプトを改造して、HPに載せたいんだけど、改造したものでも著作権の表示は必要なの?

552 :nobodyさん:2006/01/27(金) 17:55:18 ID:???
>>551
日本語読めませんか?

553 :nobodyさん:2006/01/27(金) 17:58:29 ID:???
改造といってもベースになってるのは他人の物なんだから、
著作権明示は必要。
どうしても消したいってときは、作者に連絡してみれば?
カンパ金かなんか払えば消してもいいって人いるかもよ。

554 :nobodyさん:2006/01/27(金) 18:12:54 ID:46g/AEL1
スレ違いかと思うんですが、
PHPでBlogを作っているんですが、メールで更新出来る様にしたいと思い色々調べて、.forwardを使ってメールをプログラムに転送すれば良いと解ったのですが、転送先のプログラムにはどのような処理を書けばいいのでしょうか。
例えばGETなりPOSTなりで送られてくる訳ではないですよね?
自分なりに調べてみたんですが、今ひとつ解説してあるサイトが見つかりません。。
ヒントだけでも頂けないでしょうか。
よろしくお願い致します。

555 :nobodyさん:2006/01/27(金) 19:50:32 ID:???
>>554
標準入力

556 :nobodyさん:2006/01/27(金) 21:10:57 ID:???
>>548
テンプレートエンジンはあくまで動的なページ生成を PHP を
直接書かずにできるようにする仕組み。フレームワークはユーザー
からの入力、画面遷移、セッション、DB など全般的に抽象化して
アプリケーションの骨格だけ書くことに集中させてくれるもの。

557 :nobodyさん:2006/01/27(金) 23:24:19 ID:Y9rt4MFE
>>556
ありがとうございます

558 :nobodyさん:2006/01/28(土) 04:46:39 ID:NaSuq9Gx
>>555
まだ試してないんですが、検索したらそれらしいものが出てきました!
ありがとうございました!

559 :nobodyさん:2006/01/28(土) 04:49:51 ID:???
変数とかファンクションに名前つけるときの命名なんだけど

myFunction()

my_function()

おまいら、どっちにしてる?

560 :nobodyさん:2006/01/28(土) 05:48:23 ID:???
>>559
下のほう

561 :nobodyさん:2006/01/28(土) 05:53:02 ID:???
たぶん my_func()


562 :nobodyさん:2006/01/28(土) 05:58:04 ID:???
javaのコーティング規約にのっとって、
$my_fanc
myFanc

563 :nobodyさん:2006/01/28(土) 07:32:48 ID:???
>>559
PEARに準拠

564 :nobodyさん:2006/01/28(土) 07:37:46 ID:???
PEARのコーティング規約に準拠するのがいいよ。
だからこっち myFunction()


565 :nobodyさん:2006/01/28(土) 10:48:04 ID:???
>>562
同じく

566 :nobodyさん:2006/01/28(土) 13:16:01 ID:???
最近PHPはじめたんですけど、
PEARって何?って人にどこかいいサイトありませんでしょうか?
「PEAR は、TeXの CTAN および Perlの CPANにヒントを得たPHP拡張および
PHPライブラリのコード用のコードレポジトリです。」
こんなことを言われても正直わかりません…

567 :nobodyさん:2006/01/28(土) 13:17:27 ID:???
>>566
ttp://www.amazon.co.jp/exec/obidos/ASIN/4798109592/
詩ね

568 :nobodyさん:2006/01/28(土) 13:19:43 ID:???
誰も本を紹介してくれとは言ってませんよ。
サイトを紹介してください。

569 :558です。:2006/01/28(土) 13:26:03 ID:NaSuq9Gx
何度もすいません。
テストでfgetsで取得してファイルに書き込むようにプログラムしたんですがうまく行きません。
これってもしかしてCGI版じゃないとダメな感じなんでしょうか。。

570 :nobodyさん:2006/01/28(土) 13:29:43 ID:???
>>566
公式に管理された汎用PHPライブラリのことだよ。

571 :nobodyさん:2006/01/28(土) 13:35:57 ID:???
>>569
CGI っつーか CLI
単体でコマンドラインから起動できるバイナリが必要


572 :nobodyさん:2006/01/28(土) 13:51:20 ID:???
>>569
ほいっ。マニュアル
「第43章PHP をコマンドラインから使用する」
ttp://www.php.net/manual/ja/features.commandline.php

573 :nobodyさん:2006/01/28(土) 14:17:47 ID:mOSvPqom
フォームから変数に代入する方法は分かりますが、
変数をフォームに出力するにはどうすればいいのでしょうか?

574 :nobodyさん:2006/01/28(土) 14:26:58 ID:???
とりあえずググって色々サンプルとか調べてみれば

話はそれからだw


575 :nobodyさん:2006/01/28(土) 14:27:54 ID:???
>>573
それは HTML の問題だろ…。

$test = htmlspecialchars($_REQUEST['test']);
<input type="text" name="test" value="$test">

576 :nobodyさん:2006/01/28(土) 14:36:08 ID:???
" "で囲まれた中に記述する変数は全て{ }で囲んでも問題ありませんか?
また、そうする事が推奨されていたりはしますか?


577 :nobodyさん:2006/01/28(土) 14:47:59 ID:???
問題があるかどうかはやってみればいいじゃん。
思い通りに表示されれば問題なし。
エラーが出たら問題あり。

一応囲むのが普通とだけ言ってみる。

578 :nobodyさん:2006/01/28(土) 14:49:34 ID:mOSvPqom
ググって、見つからなかったから聞いているのですが。

579 :nobodyさん:2006/01/28(土) 14:55:06 ID:???
>>577
手元では問題なかったのですが、
特別なケースがあるのかなと思って・・・

今までは必要最低限でしか{ }を使わなかったですが
これからは基本的に囲むようにします

580 :nobodyさん:2006/01/28(土) 14:55:48 ID:???
>>576
問題は無いつーか、問題が無くなるわな。
マニュアルによると、PHPの中の人が変数名を見つけ出す方法はこのようになっている。

> ドル記号($)を見付けるとパーサは、有効な変数名を形成することが可能な最長のトークンを取得します。
> 変数名の終りを明示的に指定したい場合は、変数名を波括弧で括って下さい。

581 :nobodyさん:2006/01/28(土) 14:58:38 ID:???
>>580
なんかその理屈だと}だけでいい気がす

582 :nobodyさん:2006/01/28(土) 15:01:32 ID:???
>>578
探し方が悪いだけじゃない?


583 :nobodyさん:2006/01/28(土) 15:06:18 ID:???
function hoge($aaa, $string) {
if ($aaa) echo $string;
}

という条件付echoを作成しました
どんな関数名にしたらいいでしょうか
みなさんの知恵をください
沢山使うので一般的な名前にしたいのですが

584 :nobodyさん:2006/01/28(土) 15:15:46 ID:???
>>583
echoIf( $condition, $string )

585 :nobodyさん:2006/01/28(土) 15:28:04 ID:???
echo $aaa ? $string : "";

586 :nobodyさん:2006/01/28(土) 15:39:50 ID:???
phpinfo();で表示される Apache Environment の値を取得するには
どうすればいいんでしたっけ?
$_ENV か $ENV だったような気がしたのですが・・・。

具体的には、REQUEST_METHOD の値を知りたいのですが。

587 :nobodyさん:2006/01/28(土) 15:59:44 ID:???
>>584
採用させていただきます
ありがとうございました

588 :nobodyさん:2006/01/28(土) 17:05:51 ID:EkhKiUPm
PHPで、javadocみたいにコメントからドキュメントを作ってくれるのってありませんか?

589 :nobodyさん:2006/01/28(土) 17:26:27 ID:???
>>588
ぜひ作ってください

590 :nobodyさん:2006/01/28(土) 17:29:39 ID:???
>>581

$foo[$bar][$hoge['$fuga']]}

こんなのでも}の起点を正確に探知しなきゃいけないパーサカワイソス

591 :nobodyさん:2006/01/28(土) 17:38:09 ID:???
<input type='hidden' name='a[]' value='1'>をGETメゾットで送りたいのですが可能でしょうか?

./?a%5B%5D=1では受け取れなかったのです。

592 :nobodyさん:2006/01/28(土) 17:41:17 ID:???
>>591
試してみれば

593 :591:2006/01/28(土) 17:53:49 ID:???
構造上の問題だった-;)
失礼しました

594 :nobodyさん:2006/01/28(土) 18:10:29 ID:???
>>588
http://pear.php.net/package/PhpDocumentor

595 :nobodyさん:2006/01/28(土) 18:10:40 ID:???
ファイル分割について質問があります

例えばC++でDBを扱うクラスclass_dbを db.h と db.cpp に記述したとします。
db.hにクラス宣言、db.cppに定義を行いますよね。
さらに aaa.h、bbb.h、ccc.hでclass_dbのstatic関数を用いたいときは
これらの先頭にinclude<db.h>と書きますよね。

    main.cpp
   ↓  ↓  ↓
 aaa.h bbb.h ccc.h
   ↓  ↓  ↓
      db.h

の感じでインクルードします。

このような事をPHPでやるとき、このまま書くと多重定義になるので
      main.php
  ↓   ↓   ↓   ↓
aaa.php bbb.php ccc.php db.php

と書いたらうまくいきました。

ところがaaa.php、bbb.php、ccc.phpはdb.phpをインクルードしてないのに
db.phpで定義した関数が出てきてしまい、何か気持ち悪いです。

PHPはこういうもんなんだと納得すべきでしょうか。
それともいい方法があれば教えてください。

596 :nobodyさん:2006/01/28(土) 18:17:39 ID:???
>>595
include_once

597 :nobodyさん:2006/01/28(土) 21:07:05 ID:xY1GiFbj
PHPでezwebのサブスクライバを取得する場合、どう書いたらいいんでしょう?

cgiだったら

if ($user =~/UP\.Browser/) {
$user = $ENV{'HTTP_X_UP_SUBNO'};
}

でいけるみたいなんだが、PHPだとどう記述するのでしょうか?


598 :nobodyさん:2006/01/28(土) 21:13:33 ID:???
>>597
ezwebの事は知らんが、そのコードを見た感じだと、

・$userは環境変数UserAgentから取得。
・$userがUP.Browserという文字から始まっていれば、ezwebだと解釈し、
・さらに環境変数HTTP_X_UP_SUBNOを取得すると、サブスクライバとやらが取得できる。
ってことじゃないの?
$_SERVER $_ENV配列あたりを覗けば希望するものが得られるかと。

599 :nobodyさん:2006/01/28(土) 22:42:35 ID:???
>>597
CGIでなくPerlだったら、なんだろうが(PHPでもCGIは書けるぞ)
PHPで同じ内容は
if (preg_match('/UP\.Browser/', $user)) {
$user = $_SERVER['HTTP_X_UP_SUBNO'];
}
と書く。

600 :nobodyさん:2006/01/28(土) 23:11:00 ID:OGAeWMPn
教えてください。
phpで、windowsで言う所の「ファイルの作成時刻」を得たいのですが、
statについて調べてみると


8 atime 最終アクセス時間 (Unix タイムスタンプ)
9 mtime 最終修正時間 (Unix タイムスタンプ)
10 ctime 最終変更時間 (Unix タイムスタンプ)

とのことで作成時刻は得られないのでしょうか。
それと、最終修正時間と最終変更時間って何の違いでしょう?

601 :nobodyさん:2006/01/28(土) 23:14:56 ID:xb4UVvPr
よくブログなどで、
携帯メールを指定アドレスに送る→ブログに更新
なんてのがありますが、具体的にどうやって実装すればいいでしょうか。

602 :nobodyさん:2006/01/28(土) 23:20:06 ID:???
>>600
ctime - unix系で言うところのinodeの情報(所有者やグループ、パーミッション等)が変更された時。

603 :nobodyさん:2006/01/28(土) 23:26:43 ID:???
>>600
マニュアルにも書かれているが、
filectime
>注意: 多くのUNIXファイルシステムでは、i-ノードが変更された際、つまり、パーミッション、所有者、グループ、
>または他のメタデータが書き込まれた際に、ファイルが変更されたとみなされます。
filemtime
>注意:この関数は、ファイルのブロックデータが書き込まれた時間を返します。これは、ファイルの内容が変更された際の時間です。
つまり、ファイルの内容が最後に更新された時間がfilemtime、
内容以外でもパーミッションなども含めて最後に更新された時間がfilectime
ということになる
ちなみに、fileatimeの所に
>いくつかのUNIXでは、ファイルのctimeはファイルの作成時間として参照されます。これは間違っています。
>多くのUNIXファイルシステムでは UNIXファイルの作成時間は存在しません。
とマニュアルには書かれている

604 :nobodyさん:2006/01/28(土) 23:35:04 ID:???
>>601
>>554->>555

605 :nobodyさん:2006/01/28(土) 23:36:44 ID:???
どうもです。

606 :600:2006/01/28(土) 23:37:28 ID:???
ガーン。マジだ。statは調べたけどfilectimeなんてのもあったのか。
thxですた。∧||∧

607 :600:2006/01/28(土) 23:38:21 ID:???
>602さんにももちろんthxですた∧||∧ ∧||∧

608 :nobodyさん:2006/01/29(日) 02:12:39 ID:???
お願いします!
今、WindowsXPのコマンドプロンプト上で動かすスクリプトを書いています。
内容はディレクトリの中身を表示すると言う単純なものなのですが、下のソースのように
if(!is_dir($file))としているにもかかわらずフォルダ名まで表示されてしまいます。
この指定ならフォルダ名は表示されないと思うのですが間違っているのでしょうか?
PHPのバージョンは5.1.2です。

<?php

$dir = opendir("./foruda") or die("Directory is can not open !!");
while ($file = readdir($dir)) {
if(!is_dir($file)) {
echo "$file\n";
}
}

closedir($dir);
?>

609 :608:2006/01/29(日) 02:15:11 ID:???
すみません。タイプミスです。
×echo "$file\n";
○echo "$file\r\n";

610 :nobodyさん:2006/01/29(日) 02:20:23 ID:???
>>608
is_dir() は不完全。is_dir() のマニュアルのユーザノートにも書かれていたと思うが。
本当にディレクトリかどうか調べるなら
filetype() の結果を使うべき。

611 :608:2006/01/29(日) 02:24:31 ID:???
>>610
おぉ、即レスどうもっす!
なるほど、解りました。早速使ってみます

612 :608:2006/01/29(日) 02:48:36 ID:???
キャッシュが消えない('A`)
clearstatcache()でOKですよね?
しかもfiletype()つかったらWarning: filetype(): Lstat failedって出てきた・・・
これはLstatが使えてないってことでしょうか?


613 :nobodyさん:2006/01/29(日) 02:51:21 ID:???
>>608
ひとりでマニュアル読む訓練をしてくれ

614 :nobodyさん:2006/01/29(日) 02:53:55 ID:???
>FAQの中の人
http://www.phpmyfaq.de/

615 :608:2006/01/29(日) 03:00:44 ID:???
すみません。出直してきます('A`)

616 :nobodyさん:2006/01/29(日) 03:22:48 ID:Kr5RpJOz
<form ...>
<input type="submit" value="再生">
</form>
こういうタグがあった場合、再生と書かれたボタンを押したときに
どんな変数が送信されるんでしょうか?name="..."という名前がない場合は
どうなるのか疑問です

617 :nobodyさん:2006/01/29(日) 03:48:31 ID:???
PHP4でDB接続をADOdbで行っています。
DBコネクションのオブジェクトでclassメンバの$dbconをclassの関数から呼ぶ場合

$this->dbcon ですが、dbconのメンバ関数を呼ぼうとして
$this->dbcon->getRow($sql); これがエラーになります。

どうしてですか?スマートな解決策はありますか?
今は毎回以下のようにしててマヌケな感じがします。
$db = $this->dbcon;
$db->getRow($sql)'

618 :nobodyさん:2006/01/29(日) 03:53:53 ID:???
>>616
それはHTMLの仕様であってPHPの仕様ではないが。
http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/interact/forms.html#h-17.13

619 :608:2006/01/29(日) 04:38:15 ID:???
駄目だ・・・キャッシュの消し方とかstatが何なのかとかは良くわかったけど
エラーが消せない('A`)

620 :608:2006/01/29(日) 06:21:48 ID:???
解った・・・やっと解った!!!!!
filetype関数には絶対パスが必要なんですね!!

621 :nobodyさん:2006/01/29(日) 09:17:52 ID:a2S36AV1
<?php
$file = fopen("./ua.dat","a");
flock($file,LOCK_EX);
$line = $_SERVER[?HTTP_USER_AGENT?]."\n";
flock($file,LOCK_UN);
fclose($file);
?>

UA(User Agent)をファイルに記録しようと思って、このようなスクリプトを作ったのですが…
次の条件を実現させるにはどうすれば良いでしょうか?
1.同一IPが二回目のアクセスした場合重複カウントしない
2.同じ名前のUAがある場合は次のように(ヒット数+UA)記録する:
   12hit  Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1; .NET CLR 1.1.4322; .NET CLR 2.0.40607)
    5hit  Mozilla/4.0 (UA偽装)

622 :nobodyさん:2006/01/29(日) 10:06:20 ID:???
>>621
1.COOKIE
2.同じUAを足していく

623 :nobodyさん:2006/01/29(日) 10:12:02 ID:a2S36AV1
>>622
>2.同じUAを足していく

詳しく。

624 :nobodyさん:2006/01/29(日) 10:20:59 ID:???
>>621
その前にファイルを読み出して UA とアクセス数のデータ取り出さなきゃ
重複チェックもアクセス数の計算もできないわけだけど
一気にハードルが上がっちまった気がするぞ
つかこれ記録できてる? できてないよね?

どうしてもリアルタイムで処理したいっつーんなら勉強するしかないが、
そうでないならそのまま append していってあとで集計すれば?
同一 IP のチェックなら cookie は要らないから


625 :nobodyさん:2006/01/29(日) 12:57:03 ID:???
>>601
うちではこうやってる。

要件:
qmail1.03
PEAR

手順:
.qmailファイルを作成してphpスクリプトにリダイレクトする

例:
~blogpost/.qmail
------------------------------------------------
| /usr/local/bin/php ~blogpost/recieve.php
------------------------------------------------

するとrecieve.phpが起動し、メールの内容が(ヘッダも込みで)標準入力で受け取れるので、
Mail::mimeDecodeで解析する。このへんはPEARマニュアル見ればだいたいわかるかと。
あとは解析したデータを元に処理するだけ。


626 :nobodyさん:2006/01/29(日) 13:01:15 ID:???
Mail::mimeDecode の解析結果って、マニュアルの記述は不備じゃありません?

627 :nobodyさん:2006/01/29(日) 13:34:35 ID:???
まぁ、pearのマニュアルってのは、元々の英語版でさえ無い場合もあるし
日本語版ってのは善意で訳してくれる人が居なければ存在すらしないものだからねぇ。
気付いた人や必要になった人がやればいいと思うよ。がんがれ>>626

628 :nobodyさん:2006/01/29(日) 16:40:45 ID:???
今PHPの勉強中なのですが
買ってきた本のサンプルを動かしてみたのですが
ログイン画面にIDとPASSを入力してボタンを押しても
画面が変わらないままです。
サンプルの中は基本的にそのままです。
(MySQLの接続に関する設定は変更しましたが・・・)
以前、他の本のサンプルでも同じようなことがありました。

スレ違いかもしれませんが
もし原因がわかる方がいらっしゃったらおしえていただけないでしょうか

629 :nobodyさん:2006/01/29(日) 16:45:54 ID:???
実際のコードを見ない事には何とも言えんべ。
その本のサポートページがあるのならそこで聞くなり、
このスレで続けるなら肝になる部分を適切に掲示するなり。

630 :nobodyさん:2006/01/29(日) 16:46:50 ID:???
>>628
多分、その本が古い。

631 :nobodyさん:2006/01/29(日) 21:13:27 ID:???
>>628
その類の本はミスが多い。

632 :nobodyさん:2006/01/30(月) 01:25:09 ID:???
>>628
extract($_POST);
とかそんなのつかってね?

633 :nobodyさん:2006/01/30(月) 01:45:11 ID:???
本のサンプルスクリプトが動かないことくらいよくあるから気にしないが吉

634 :nobodyさん:2006/01/30(月) 02:02:00 ID:gG8yFj6C ?
ごめんなさい、↓なんですけど
自分で「短い文字でもちゃんとSJIS→JISに変換できるように!!」
と入れた処理なんですが、後から見て何をやっているか
わからなくなってしまいました。


/* 文字数が少ないとエンコードに失敗するんだとさ。*/
$message = "あいうえお眉幅ABC".$message;
$body = mb_convert_encoding( $message , "JIS", "EUC-JP,UTF-8,SJIS,ASCII,JIS");
$body = substr ( $body , 3 + 14 + 3 + 3 );

@なぜ「"あいうえお眉幅"」ではなくて「"あいうえお眉幅ABC"」なのか
A最後の「3 + 14 + 3 + 3」の詳細
解読できる人がいたら助けてください。。。。

http://pc8.2ch.net/test/read.cgi/php/1136276300/から誘導していただきました。
マルチではありません。。。。)

635 :nobodyさん:2006/01/30(月) 02:04:15 ID:???
>>617
だれかぷりーず!

636 :634:2006/01/30(月) 02:06:21 ID:gG8yFj6C ?
ちなみにソースはやむを得ない事情によりSJIS、
メールを送信するためにJISに変換、といった処理です。
(他にこうしたら効率的、では無くて、何でこういうことをしちゃったかを思いだしたいんです。。。)

637 :nobodyさん:2006/01/30(月) 02:08:13 ID:???
ttp://php.s3.to/counter/
ここのカウンターを使ってるのですが、
include()を使ってカウンターを挿入しているので
phpのページにしか利用できません。

で、ttp://www.kent-web.com/count/dream.html
みたいに <img src="スクリプト名">
で表示させたいと思ったのですが、上手くいきません。
少々改造しなきゃいけないと思うのですが、
どのように改造すればいいでしょうか?

638 :634:2006/01/30(月) 02:17:52 ID:gG8yFj6C ?
>>637
http://72.14.203.104/search?q=cache:gRnlLcv7kCcJ:homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_k12.htm+img+src+php+cgi&hl=ja&gl=jp&ct=clnk&cd=2&lr=lang_ja

639 :637:2006/01/30(月) 02:24:24 ID:???
>>637
ありがとうございます、
そのページでは
fopenでrbを引数として利用していますが、
手元のリファレンスではbはwindowsのみと書いてあります。
これはlinuxでも使用可能でしょうか?

640 :634:2006/01/30(月) 02:39:25 ID:gG8yFj6C ?
>>639
http://72.14.203.104/search?q=cache:tXKhe0RNfHsJ:manual.xwd.jp/function.fopen.html+php+fopen+%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA&hl=ja&gl=jp&ct=clnk&cd=4&lr=lang_ja

>Windows上では、\nを\r\nに透過的に変換する text-mode変換フラグ('t')が提供されます。
>それに対し、'b'を使って強制的にバイナリモードにすることもできます。 その場合データの変換はされません。
→windowsでは、場なりで開こうとすると勝手にデータの中身を書き換える機能があります。

>それに対し、'b'を使って強制的にバイナリモードにすることもできます。
→'b'を使うと、そのファイルそのままの状態で扱います。


641 :634:2006/01/30(月) 02:40:22 ID:??? ?
>>640
×→windowsでは、場なりで開こうとすると
○→windowsでは、バイナリで開こうとすると


642 :nobodyさん:2006/01/30(月) 02:44:30 ID:???
バイナリタン(*´Д`)ハァハァ

643 :634:2006/01/30(月) 02:46:37 ID:??? ?
>>639
さらに間違えた。

意訳

windowsではファイルを開こうとすると
ファイルの中身を勝手に書き換える機能があります。
そうされたくなかったから、'b'オプションをつけましょう。
なお、UNIXでは勝手に書き換える機能は無いので
指定しなくでもそのまま扱ってくれますが、
必要ないですが、念のため'b'をつけると確実です。


644 :nobodyさん:2006/01/30(月) 08:02:12 ID:???
>>634
なんでお前さんが忘れるぐらいに思いつきでやってる処理を他人が判るんだよ。

>1. なぜ「"あいうえお眉幅"」ではなくて「"あいうえお眉幅ABC"」なのか
ISO-2022-JPにエンコードしても変化の無い文字で適当なのを入れたかったんじゃないの。
 
>2. 最後の「3 + 14 + 3 + 3」の詳細
3 = ESC $ B (エスケープシーケンス)
14 = あいうえお眉幅
3 = ESC ( B (エスケープシーケンス)
3 = ABC
でしょ。多分

645 :nobodyさん:2006/01/30(月) 08:33:29 ID:???
>>634
ソースがSJISなら
// $message = "あいうえお眉幅ABC".$message;
$body = mb_convert_encoding( $message , "JIS", "SJIS");
// $body = substr ( $body , 3 + 14 + 3 + 3 );
でいい

646 :nobodyさん:2006/01/30(月) 10:11:54 ID:???
>>635
これはむしろ本スレの方が回答得られるかも?

647 :nobodyさん:2006/01/30(月) 10:49:41 ID:???
>>635
自分のところで試してみたけど
$this->conn->getRow($sql);
みたいな記述は、ちゃんと動いたよ
答えがないのは、そういう問題がおきている人がいないせいじゃないかな

PHPのバージョンは 4.3.9


648 :nobodyさん:2006/01/30(月) 11:49:21 ID:PZnOPnCs

すみません、質問です。
他のサーバのcsvファイルを参照したい場合は
どのようにすればいいのでしょうか?

649 :nobodyさん:2006/01/30(月) 12:02:05 ID:???
相手サーバーのCSVファイルがhttpで参照できる位置にあるなら
PHPの設定次第だけどfile("http://相手サーバー/xxxx.csv");で参照できるかも。
駄目ならFTPで接続するとか、Web経由でCSVファイルをダウンロードするための
プログラムを相手サーバー上に用意するとか。

650 :nobodyさん:2006/01/30(月) 13:03:45 ID:???
>649

file("http://相手サーバー/xxxx.csv");
だと駄目でした。
FTP接続とか、別の方法を調べて試してみます。

651 :nobodyさん:2006/01/30(月) 13:22:32 ID:???
>>650
駄目な理由が明らかじゃないからなんとも言えんが、
httpストリームのファイルオープンが使用制限されてるだけで
相手側ではHTTPで取れるようなところにちゃんと置いてあるなら
PEARのHTTP_Requestクラス使って取り込んだら?


652 :nobodyさん:2006/01/30(月) 13:24:45 ID:???
>>650
とりあえず相手サーバの管理者の聞くのが先でしょーよ。
どうやって共有しますかと。

653 :nobodyさん:2006/01/30(月) 14:49:21 ID:???
phpを実行しようとするとダウンロード画面が出ますがなぜでしょうか。

環境
FC3
php5.1.2
Apache2

httpd.confに施した設定
AddType application/x-httpd-php .php の追加

他に何をすればこの問題は解決されるでしょうか。
ググってみたんですが解決出来ませんですた。

654 :nobodyさん:2006/01/30(月) 14:53:17 ID:???
>651

ありがとう御座います。

無知なもので、ヒントをいただけるだけで非常にありがたいです。
PEAR HTTP_Requestクラスについても調べてみます。


655 :nobodyさん:2006/01/30(月) 15:00:22 ID:???
PHPを動作させてるサーバのIPやホスト名を取得したいのですが、
これは環境変数から取得するってことであってますか?
ぐぐったのですが、リモートのホスト名などの取得についてしか
見つかりませんでした

656 :nobodyさん:2006/01/30(月) 15:05:25 ID:???
>>655
$_SERVER["SERVER_ADDR"]

657 :nobodyさん:2006/01/30(月) 15:07:43 ID:???
>>655
普通
http://ホスト名/

658 :nobodyさん:2006/01/30(月) 15:14:42 ID:???
>>653
あんま覚えてないけどLoadModule行とかいらなかったっけ??
後axpsとか組み込み方で設定が違ったような気がしますが・・

659 :nobodyさん:2006/01/30(月) 15:18:12 ID:???
>>657
おれは $_SERVER['HTTP_HOST'] が取れるならそれ、だめなら
$_SERVER['SERVER_NAME'] の二段構えにしてる

660 :nobodyさん:2006/01/30(月) 15:19:55 ID:???
つーか
ググったググったじゃなくて、>>1 にも書いてあるが

ま ず マ ニ ュ ア ル 読 め
http://www.php.net/manual/ja/

661 :nobodyさん:2006/01/30(月) 15:25:21 ID:???
ググっても大抵はマニュアルにたどり着くはずなんだけどな

662 :nobodyさん:2006/01/30(月) 16:13:54 ID:???
マニュアル読めしか言えないカスはレスするな

663 :nobodyさん:2006/01/30(月) 16:20:34 ID:???
何度インスコしてもlibphp5.soというファイルが作られないんですがなぜでしょうか?

参考にしたサイト
http://kamakura.cool.ne.jp/oppama/oswa/phpstart.html

664 :nobodyさん:2006/01/30(月) 16:26:33 ID:???
まぁここで得られる情報よりもマニュアルの方が何倍もまともで有用だし
マニュアルから自分の必要としている情報を見つけ出す能力も重要
なんだけどな

665 :nobodyさん:2006/01/30(月) 16:30:25 ID:???
>>663
自分の環境は?

666 :663:2006/01/30(月) 16:42:37 ID:???
>>665
fedora3です

http://www.php.net/manual/ja/install.unix.php
ここ読んだけどlibphp5.soが作られません。

667 :nobodyさん:2006/01/30(月) 16:57:39 ID:???
Suse Linux 10.0にphp5をインストールする方法を教えてください。

668 :nobodyさん:2006/01/30(月) 17:07:57 ID:???
>>666
作られてるけど場所違ってるとかない?
俺昔探した記憶があるようなないような

669 :666:2006/01/30(月) 17:09:51 ID:???
>>668
find使って検索しましたが見つかりませんですた。

670 :nobodyさん:2006/01/30(月) 17:12:56 ID:???
>>667
基本的にUnix系はどれでも一緒じゃね?
ttp://pc8.2ch.net/test/read.cgi/linux/1137686775/l50
ttp://www.php.net/manual/ja/install.unix.php

671 :nobodyさん:2006/01/30(月) 17:16:47 ID:???
>>669
findなんて使ったことねーなぁ。
俺はもっぱらlocate使ってるけど・・。
updatedbだったかDB更新してからもっかいやってみ

672 :nobodyさん:2006/01/30(月) 17:29:07 ID:???
なかったらmake時にエラーでてないか?
apacheがDSOに対応してるのかそこらへんだろ、ガンガレ
ttp://oshiete1.goo.ne.jp/kotaeru.php3?q=1260172

673 :nobodyさん:2006/01/30(月) 17:40:25 ID:???
>>663
・--with-apxs2=/usr/local/apache2/bin/apxsとか抜けてねぇか
・ビルド時に該当するエラー出てないか
・作られてるけど、探し切れてないだけではないか

674 :nobodyさん:2006/01/30(月) 18:07:52 ID:???
だいたいのディストリビューションにパッケージが
あるんじゃないの?
野良ビルドなんてよほどの理由がない限りやんないけど。


675 :nobodyさん:2006/01/30(月) 21:09:44 ID:???
>>666
FC3でパッケージ版ApacheにPHP5を入れようとしたら失敗した事がある
仕方ないからApacheのビルドから始めたらうまくいった

676 :nobodyさん:2006/01/30(月) 21:13:14 ID:iPn7Dq8b
ページが読み込まれた際に指定したページへ飛ばす事は
headerで作成出来たのですが

読み込まれた際に2つのサイトを同時に開く方法は
ありませんでしょうか?


677 :nobodyさん:2006/01/30(月) 21:21:27 ID:???
>>676
PHPは接続してきた相手にデータを返すのがお仕事。
それが別ウィンドウなのかとかフレームなのかとかはブラウザがするお仕事で、知ったこっちゃない。
なので、PHPに接続する前にJavaScriptやフレーム等で解決しておくか、
それらを利用できるようなhtmlをPHPで出力してあげましょう。

678 :nobodyさん:2006/01/30(月) 21:22:23 ID:???
>>676
javascript

679 :nobodyさん:2006/01/30(月) 21:28:25 ID:iPn7Dq8b
>>677>>678
ありがとうございます。
javascriptにて現在奮闘中なのですが
urlはphpで得た変数となります。
javascriptにてbodyonlordで試しているのですが
頭が混乱してきました。もう少し粘ってみます。

680 :nobodyさん:2006/01/30(月) 22:22:56 ID:???
>>679
PHPでJavaScriptを記述すればいいよ。
echo "window.open( $url1 ); window.open( $url2 );";

681 :もっく:2006/01/30(月) 22:45:18 ID:5vpkjCd3
自分のサイトにポイント課金システムを導入したいのですが、
安く、占いで通話時間に応じて、減算できるシステム知ってる人いたら
おしえてください。
ググっても高いし、出会い系ばっかりです。

682 :もっく:2006/01/30(月) 22:46:26 ID:5vpkjCd3
自分のサイトにポイント課金システムを導入したいのですが、
安く、占いで通話時間に応じて、減算できるシステム知ってる人いたら
おしえてください。
ググっても高いし、出会い系ばっかりです。

683 :もっく:2006/01/30(月) 22:58:31 ID:+WpFBy1B
自分のサイトにポイント課金システムを導入したいのですが、
安く、占いで通話時間に応じて、減算できるシステム知ってる人いたら
おしえてください。
ググっても高いし、出会い系ばっかりです。

684 :もっく:2006/01/30(月) 22:59:06 ID:+WpFBy1B
自分のサイトにポイント課金システムを導入したいのですが、
安く、占いで通話時間に応じて、減算できるシステム知ってる人いたら
おしえてください。
ググっても高いし、出会い系ばっかりです。

685 :nobodyさん:2006/01/30(月) 23:01:47 ID:???
レッツPHP!さんの写メールBBSを設置したのですが
更新をクリックしても

-ERR authorization failed

と表示されるだけで投稿も出来ません。
サーバーはロリポップです。
よろしくお願いします。

686 :nobodyさん:2006/01/30(月) 23:13:20 ID:???
>>685
メールのアカウントかパスワードの設定ミス

687 :nobodyさん:2006/01/30(月) 23:35:51 ID:??? ?
>>644
ありがとうございます。
思い出しました。すっきりしました。

Aはそのとおりですね。
@は、実際の文字列が半角で始まるか半角で始まるかわからないから半角で締めておけば
どっちがきても安心、という理由だったともいます。

>>645
>$body = mb_convert_encoding( $message , "JIS", "SJIS");
本当だ、うまくいきました。半角カナ1文字だけ、とかもちゃんといきますね。
こっちにします。

ありがとうございました。

688 :nobodyさん:2006/01/31(火) 02:15:44 ID:???
文字化けが直りません・・・orz
十三 → 十\三 は
if(get_magic_quotes_gpc()) {$sled_title=stripslashes($sled_title);}
で直ったんですが、そうすると今度は ー の文字が [ になってしまいます。
そして次に mb_convert_kana で一度半角にしてから全角にすると直りました。

・・・

しかし 表あった という文字が 浮?った に・・・orz

文字コードはSJISです。
どなたかお助けをお願いいたします。。
PHPのVer4.3.11です。

689 :nobodyさん:2006/01/31(火) 02:34:19 ID:hnBahd6E
質問させてください。

既にPC内にあるデジカメで撮影した画像に、ドットを描きたいと思っています。
まずは試しに、画像の一番左上のピクセルに真っ黒いドットを描こうと試してみました。
結果は、一応うまくいったのですが、描けたのは真っ黒いドット(#000000)ではなく、
そのピクセルに既にあった色と合成されたような(#010410)のようなドットになってしまいました。

php.netのリファレンスを見て、imagealphablending関数が怪しいと思い使用してみたのですが、
引数をtrue、false、いずれに設定しても変化が見られませんでした。
(同関数のリファレンスページにある英語のコメントは読めませんでした;;)

環境は、PHP 5.1.2。
もちろんGDは使えるよう設定しています。
バージョンは2.0.28です。

どなたか解決法をご存知の方はご教授願います。
以下が、テストに用いたソースコードです。

$img = imagecreatefromjpeg('./hoge.jpg');
//imagealphablending($img, false);

imagesetpixel($img, 0, 0, imagecolorallocate($img, 0, 0, 0));
header('Content-type: ' . image_type_to_mime_type(IMAGETYPE_JPEG));
imagejpeg($img);

690 :nobodyさん:2006/01/31(火) 02:36:00 ID:???
CLI版で、プロセス制御+ソケットのプログラムを書こうと格闘してます。
http://www.php.net/manual/ja/ref.pcntl.php とか
http://www.php.net/manual/ja/ref.sockets.php とかの
サンプルを参考に作ったのですが、Log4php で「関数がありません」と
出てエラーとなります。declare(ticks=1);をコメントにすると
動くのですが、declare(ticks=1);って必要ですか?

691 :nobodyさん:2006/01/31(火) 02:54:02 ID:???
>>690
http://www.php.net/manual/ja/ref.pcntl.php
>declare()を使用して、プログラム中でコールバックの発生を許可する場所を指定する
>必要があります。これにより、非同期のイベントを処理する際のオーバーヘッドを
>最小限に抑えることが可能となります。

692 :691:2006/01/31(火) 02:55:13 ID:???
すまん誤解を招く引用をした。
必要ではないけど速くなるっていみな。

693 :nobodyさん:2006/01/31(火) 04:19:38 ID:???
PHPプログラミングのロジックを勉強するのにオススメの本はありませんか?
どれもPHPで出来ることは書いてあるんだけど、
具体的にどんな感じにコードを書いていけば良いのかよく分からない…。

694 :nobodyさん:2006/01/31(火) 06:57:09 ID:???
>>693
つpear


695 :nobodyさん:2006/01/31(火) 09:01:44 ID:???
>>689
ひとまず、RECTを描いてみたらどうだろうか?
いや、モヤレの可能性はないかな?と思って。

696 :nobodyさん:2006/01/31(火) 09:35:33 ID:???
>>689
User Contributed Notesによると、バージョンによって
imagealphablending()のデフォルトが違うらしい。
新しいものはデフォルトがTRUE。

・imagealphablending($img, FALSE)の戻り値はどうなっているか。
・imagecolorallocatealphaで不透明色を設定したらどうか。

697 :nobodyさん:2006/01/31(火) 11:21:59 ID:DKAPyXEr
DBから取得したデータを
javacriptのresponseXMLで受信させる場合、

simplexml_load_staringでXMLオブジェクトを作り、
渡そうと考えたのですが、
このやり方ってどうなんでしょうか?

こういう場合の常套手段があれば教えてください。

698 :nobodyさん:2006/01/31(火) 15:02:58 ID:b+k1eFbT
住宅ローンについて計算してみたかったんですけど、プログラムを以下の
ようにしたところ動きませんでした。
<?PHP
function calculate(){$principal = document.loandata.principal.value;
$interest = document.loandata.interest.value / 100 / 12; $payments = document.loandata.years.value * 12;
$x = pow(1 + $interest, $payments); $monthly = ($principal * $x * $interest) / ($x - 1);
if (!isNaN($monthly) && ($monthly != Number.POSITIVE_INFINITY) && ($monthly != Number.NEGATIVE_INFINITY))
{document.loandata.payment.value = round($monthly); document.loandata.total.value = round($monthly * $payments);
document.loandata.totalinterest.value = round(($monthly * $payments) - $principal);}
else{document.loandata.payment.value = ""; document.loandata.total.value = "";
document.loandata.totalinterest.value = "";}}
function round($x){return round($x * 100) / 100;}
?>
どうやらif文のところがエラー起こってるみたいなんですけど、どこが
違っているのかがわかりません。
どうか、どうすればいいのか教えてください、お願い致します。

699 :nobodyさん:2006/01/31(火) 15:15:12 ID:???
ビックリするほど見辛い。
あとそれは何言語だ。

700 :nobodyさん:2006/01/31(火) 15:33:49 ID:???
>>698
document.loandata.payment.value とかよくわからんがちゃんと認識されている?
そこらへん一旦変数とかに格納させたら問題ないっしょ。

701 :nobodyさん:2006/01/31(火) 15:37:04 ID:???
JavaScriptじゃないの?
ここはPHPスレだよ。

702 :nobodyさん:2006/01/31(火) 15:50:33 ID:???
>>701
<?PHP

?>
で囲めばどんな言語も全てPHPに!!

703 :nobodyさん:2006/01/31(火) 15:52:29 ID:???
見辛くて本当に申し訳ないです。
JavascriptからPHPにしたかったんですけど、どうすればいいのか
よくわからなかったのです。
認識は・・・されているかどうかわからないんですけど、エラーが起こって
いるのはその辺みたいです。

704 :nobodyさん:2006/01/31(火) 15:52:41 ID:???
荒らしじゃねーの?これ

705 :nobodyさん:2006/01/31(火) 15:53:39 ID:???
>>703
JavaScriptとPHPはかなり文法が異なるから
両方のマニュアルをよく読んで勉強しる。


706 :nobodyさん:2006/01/31(火) 15:55:30 ID:???
http://hogehoge.com/?a=apple

とすると$aにはappleが入りますが
これを

http://hogehoge.com/?apple
などで値を取得しているサイトがあるのですが
どのようにしているのでしょうか?



707 :nobodyさん:2006/01/31(火) 15:58:15 ID:???
>>706
list($a) = split("&", $_SERVER('QUERY_STRING'));

708 :nobodyさん:2006/01/31(火) 16:00:20 ID:???
俺だったらvalueの値をPHP変数にもって引数として関数に送るけど
みんなはどう?

709 :nobodyさん:2006/01/31(火) 16:25:15 ID:???
>>708
ソースお願いします。

710 :706:2006/01/31(火) 16:55:10 ID:SKUvf+xl
>>707さん
ありがとうございます。
出来ました。


以前http://hogehoge.com/?apple
の?をとって
http://hogehoge.com/apple
でも変数を取れる方法としてhtaccessがありましたが
それ以外は不可能でしょうか?

ディレクトリを無数に作成する方法以外であったら
おねがいします。

711 :nobodyさん:2006/01/31(火) 16:57:40 ID:???
>>710
mod_rewrite

712 :706:2006/01/31(火) 17:04:46 ID:???
>>711
ありがとうございました。

713 :nobodyさん:2006/01/31(火) 17:25:20 ID:???
>>698
http://tgfans.s9.x-beat.com/698.php
あれ?なんか値段がおかしいwaヽ(´ー`)ノ

714 :nobodyさん:2006/01/31(火) 18:41:13 ID:???
>>709
ソースってほどのもんじゃないし今更思ったんだがJSでやった方がよさそうな気もしてきたな。
PHPでするなら取りたい値をvalue=<?=$a?> とかでもたしておいて
計算したいタイミングでfunction cal〜($a,$b){}とか引数つけて呼び出せばok
でもJSみたいに表示させてる値そのまま変えれないと思う多分。どのタイミングで変えたいとかにもよる。
onclickでリロードさせてやるとかせんと駄目かも・・ 
あと基本的にPHPはサーバ側、JSはクライアント側で動くので・・ 
間違ってたら補足入れまくってください by 素人勉強中の意見



715 :714:2006/01/31(火) 18:42:38 ID:???
あ、値変えるなら&$aみたいに変えてやってね

716 :nobodyさん:2006/01/31(火) 19:30:05 ID:???
>>714
何の話なのかも分からん

717 :nobodyさん:2006/01/31(火) 19:53:15 ID:FZIxO5Ot
PHP4+MySQL3を使用しています。

DBのテーブルに該当データが何件あるかを調べて、0件であればデータを追加する
という仕組みを作っています。

$query = 'select * from table where id="1"';
$result = mysql_query($query);
$count = mysql_num_rows($result);
if($count == 0){
//データ追加
}

該当データが(id=1)1件以上ある場合には、エラーにならないのですが、0件の場合
supplied argument is not a valid MySQL result resource
のエラーが返ってきてしまいます。

select count(*) from table where id="1";
にして、mysql_fetch_array()にしても同様のエラーが返ってきてしまいます。該当の
データが0件でエラーを出さないようにするにはどうすればいいのでしょうか?

718 :nobodyさん:2006/01/31(火) 19:55:17 ID:???
>>714
何 の 話 を し て い る ?

もうちょっと頭の中を整理してから書いてくれ

719 :nobodyさん:2006/01/31(火) 20:16:52 ID:???
POST、GETの変数名隠蔽の手段で、リクエストURLを誤魔化すツールみたいなの無かったっけ?

aaa.php?b=c → aaa/b/c/

みたいになるようなやつ


720 :nobodyさん:2006/01/31(火) 20:17:55 ID:???
PHP4ですが
htmlspecialchars()
mysql_real_escape_string()
ってやってから保存すると文字化けする事がありますか?


721 :nobodyさん:2006/01/31(火) 20:33:15 ID:???
>>719
>>706-707 >>710-711
htaccessでのやり方は分かるけど、mod_rewriteはやったことないな。
ググれば出てくるでしょ。

722 :nobodyさん:2006/01/31(火) 20:59:56 ID:UhWLOiX4
if($_GET){エラー表示 exit;}
と$_POSTの配列を全部htmlspecialchars()でチェックしてるんですが、これでセキュリティ的にバッチグーと言えますか?
$_GETは100%使わないスクリプトです。

723 :nobodyさん:2006/01/31(火) 21:07:54 ID:???
>>717
mysql_query($query)がTRUE(ついでにFALSEの場合も実装しとけ)を
返す時の処理を追加。

724 :nobodyさん:2006/01/31(火) 21:37:28 ID:???
>>719
Apacheのmod_rewriteがそれ。
もしくは aaa.php?b=c → aaa.php/b/c/ なら PATH_INFO

725 :719:2006/01/31(火) 21:39:32 ID:???
>>721
>>724
レスありがとん
調べてみるー

726 :nobodyさん:2006/01/31(火) 22:03:51 ID:???
>>722
変数の使用用途によってバッチグーか大馬鹿か決まるのでどうとも言えん

727 :nobodyさん:2006/01/31(火) 22:12:15 ID:UhWLOiX4
>>726
つまり馬鹿と天才は紙一重と言いたいわけですね。ありがとさんです。

728 :nobodyさん:2006/01/31(火) 22:24:07 ID:???
レッツPHP!さんの写メールBBSを設置したのですが
メールを送って更新しても投稿されません。
サーバーはロリポップです。config.phpの設定は

// 受信メールサーバーの設定
// POP3サーバー
$host = "mailxxx.lolipop.jp";
// ユーザーID
$user = "lolipop.jp-dpxxxxxxxx";
// パスワード
$pass = "xxxxxxx";

としました。ここと更新後のジャンプ先と
対応MIMEサブタイプだけjpgにしてあとの全てはデフォルトです。
どうすれば正常に使えるようになるでしょうか?
よろしくお願いします。


729 :721:2006/01/31(火) 22:43:58 ID:???
>>724-725
aaa/b/cでも、htaccess+PATH_INFOでいけるよん。
aaa.phpをaaaにリネームして、
htaccessで
<FilesMatch "^aaa$"> ForceType application/x-httpd-php </FilesMatch>
aaa(.php)で
$data = explode("/",$_SERVER('PATH_INFO'));
後は$dataを適当に利用。

730 :nobodyさん:2006/01/31(火) 23:00:39 ID:JNPr6KIK
すんません、質問です。
PHP+GDでV602SHで撮った写真を、ImageCreateFromJPEGで開こうとすると、
'XXXXXXXX.jpg' is not a valid JPEG file
となります。

GDで開けないJPEGファイルというのは存在するのですか?

ちなみにIEでは普通に見れますが、
Photoshopでは挙動がおかしく、一度上書きしてEXIFの情報をリセットしないと別名での保存ができません。

731 :nobodyさん:2006/01/31(火) 23:49:51 ID:sD84bde5
すみません。
$a1="onetwethree";
$a2="onethree";
$a3="one";
のような状態で、検索をかけて文字列にマッチする場合のみtrueを返したいです。
検索条件は
oneとtweで検索すると$a1が
oneとtweとthreeで検索すると$a1が
oneで検索すると$a1,$a2,$a3が
という風にしたいのですが、おそらくeregを使うと思うのですが書き方がわかりません。
どなたかお願いいたします。

732 :nobodyさん:2006/01/31(火) 23:59:36 ID:???
>>731
一発でやろうとしないで、条件語句をひとつずつつき合わせながらフラグでも立てるが吉
それよりも、英語の勉強をやり直した方が良いぞ。


733 :nobodyさん:2006/02/01(水) 00:05:30 ID:???
>>728
設置スレにGO

734 :nobodyさん:2006/02/01(水) 00:10:26 ID:???
>>730
>GDで開けないJPEGファイルというのは存在するのですか?

あるよ。詳しく調べてないけど。
GDじゃなくても、Windowsの画像ビュアーでも
ツールによって大丈夫なJPEGと駄目なJPEGとかがある。
ZIPとかRARなどのアーカイブも似たような対応度の差異があるね。

735 :734:2006/02/01(水) 00:17:22 ID:???
GDのJPEG機能はlibjpegに依存するんかな。
やりくりを考えるなら、そっちを調べた方がいいかも。

736 :731:2006/02/01(水) 00:21:04 ID:ECRbG5Uq
>>732
英語は苦手で・・・
フラグの使い方をご伝授いただけないでしょうか?
ソースお願いします

737 :nobodyさん:2006/02/01(水) 00:55:43 ID:???
>>736
最初にフラグ変数0に初期化して比較して1たしていくだけじゃん?

738 :730:2006/02/01(水) 01:13:38 ID:o8148rQE
>>734-735
ありがとー
libjpeg調べてみるよ。

739 :nobodyさん:2006/02/01(水) 01:22:17 ID:???
>>731
$a1="onetwethree";
$a2="onethree";
$a3="one";
foreach(split(" ", $_GET["search"]) as $g) { //検索単語はsearchに空白区切りで入るとする
$search .= "(?=.*$g)";
}
foreach(array($a1, $a2, $a3) as $a) {
if(preg_match("/$search/", $a)) $ret[] = $a;
}
var_dump($ret);


740 :731:2006/02/01(水) 01:38:00 ID:ECRbG5Uq
>>739
丁寧な説明付きでありがとうございます。
今入れ替えてみたところ動作いたしました。ありがとうございました。

741 :nobodyさん:2006/02/01(水) 03:03:03 ID:???
tweも直してやれよ・・・

742 :nobodyさん:2006/02/01(水) 03:09:49 ID:???
>>741
仕様だろ

743 :nobodyさん:2006/02/01(水) 10:14:22 ID:???
PHPのSOAPでは
1.PHP5純正のSOAP
2.PEARのSOAP
3.NuSOAP
どれがお奨めですか?


744 :nobodyさん:2006/02/01(水) 13:16:22 ID:???
ばかやろ、ソープは本番するところだろ。
まがい物入れたりできねーんだ。

純正の1にしておけ

745 :nobodyさん:2006/02/01(水) 13:46:23 ID:???
>>744
建前上、ソープで本番は禁止されております。
また、生は衛生上望ましくありません。

746 : :2006/02/01(水) 14:42:36 ID:???
配列に別の配列を追加したいのですが間単にできる関数とかないでしょうか?
foreach(){
 array_push()
}
こんな感じで1個ずつ入れていくしかない??

747 :nobodyさん:2006/02/01(水) 14:52:03 ID:???
>>746
array_push()やarray_unshift()は複数のデータをまとめて追加できる。
他にもarray_merge()やarray_splice()なども同様で、配列のどの位置に追加したいかで使い分け。

748 :nobodyさん:2006/02/01(水) 14:52:07 ID:???
>>746
array_push ( array &array, mixed var [, mixed ...] )


749 :746:2006/02/01(水) 15:08:06 ID:???
>>747-748 ありがとう

750 :nobodyさん:2006/02/01(水) 15:20:16 ID:???
むしろマニュアルには1個しか追加しないならarray_pushを使うのは無駄だから
$array[] = 値; を使うことを推奨してるくらいだ

751 :nobodyさん:2006/02/01(水) 15:36:33 ID:???
>>744-745
やっぱり純正ですか。
ありがとう。


752 :nobodyさん:2006/02/01(水) 16:32:45 ID:???
PHP+MySQLでデータのリストを1ページ何件とページに分けて表示するときなんですが
こういう場合はSQL内でLIMIT(OFFSET)を使い取得するデータを選ぶほうがいいのか
全部取得してしまってPHPで表示するのを取捨選択するのとどっちがいいでしょうか。

LIMIT使うほうがサーバへ負荷が少なくて済みそうな気がするんですが
この場合、全部で何件のデータがあるのか調べる場合
もう一度SQL打たないと駄目でどっちにすべきか迷ってます。

753 :nobodyさん:2006/02/01(水) 16:44:36 ID:???
>>752
俺なら総件数が確実に少ないなら全部取得して、
多くなる可能性があるときは2回selectを打つな。

754 :軟式PHP:2006/02/01(水) 16:55:11 ID:???
>>752
総件数を表示したい。とかいう場合でなければ

offset 位置 limit 表示数 + 1

で取得すれば、次のページが必要かどうかわかるお。

755 :nobodyさん:2006/02/01(水) 16:58:50 ID:???
乱数生成関数rand()について質問なんですが、
AとBの2つの乱数を生成した時に、
乱数の値がかぶってしまった場合に、
再びやりなおすといった処理はどのようにやればいいのでしょうか?
ヒントがあれば教えていただければありがたいです。

srand();
$i[] = rand(1, 5);
$i[] = rand(1, 5);
echo "{$i[0]}\t";
echo "{$i[1]}\t";

756 :軟式PHP:2006/02/01(水) 16:59:39 ID:???
↑に加えて、全部で何件のデータが調べる場合は続けてcount()打ったほうが負荷は低いはず。


757 :nobodyさん:2006/02/01(水) 17:01:29 ID:???
LIMIT 使っても全件数が取得できる方法があったはず。
MySQLの機能で。

758 :nobodyさん:2006/02/01(水) 17:10:50 ID:???
>>755
$i[] = $a = rand(1, 5);
while(($b = rand(1, 5)) == $a) 1;
$i[] = $b;
echo "{$i[0]}\t";
echo "{$i[1]}\t";

759 :755:2006/02/01(水) 17:14:35 ID:???
>>758
おぉー。お早い回答ありがとうございます。
早速100回ほど試行したところ1回もかぶりませんでした。
しかし仕組みがわからないorz
マニュアル引いて勉強してきます。
どうもありがとうございました。

760 :757:2006/02/01(水) 17:23:01 ID:???
>>752
LIMITした方がいいと思う。
Webサーバーは簡単に増やせるけど、DBサーバーは増やそうと思っても面倒だし。

で、LIMITしたときの全件取得方法。
SQLの話だけど、まあいいかな?
FOUND_ROWS()
http://dev.mysql.com/doc/refman/4.1/ja/miscellaneous-functions.html

PHP側では結局2回クエリー発行することになるけど、MySQLはきっと楽なはず。


761 :nobodyさん:2006/02/01(水) 17:32:02 ID:???
>>760
ほほー。これは便利そうだ。

762 :752:2006/02/01(水) 17:33:09 ID:???
>>760
うおおお!ありがとうございました。
勉強不足でしたすいません。

データ数によっては>>753氏の言うように全件取得し
count()もよさそうですね。

>>ALL
SQLの話になり申し訳ない

763 :nobodyさん:2006/02/01(水) 18:03:21 ID:xx2TLFWy
変数の中に入っている値の、決められた文字列n個目までを取り出したい場合は、
一端splitで切って配列にしてから…って以外にないのでしょうか?

764 :nobodyさん:2006/02/01(水) 18:23:07 ID:???
>>763
ttp://jp.php.net/manual/ja/function.substr.php


765 :763:2006/02/01(水) 18:36:57 ID:xx2TLFWy
>>764

例えば、
「あけましておめでとうございます。今年は戌年です。去年は猿年です。来年は猫年です。」
と言う文章があって、
この文章の"。"の3個目までを取り出したいとき、です。

わかりずらくてスマソ。

766 :nobodyさん:2006/02/01(水) 18:45:48 ID:???
>>765
素直に explode/implode すれば?

767 :765:2006/02/01(水) 18:53:07 ID:xx2TLFWy
>>766
やっぱそれしかないのでしょうか。
変数の中が大量でも遅くなったりしないのでしょうか?


768 :nobodyさん:2006/02/01(水) 19:07:17 ID:???
>>767
そんな心配するくらいだったら、最初から設計を考え直すべし。


769 :nobodyさん:2006/02/01(水) 19:20:24 ID:???
mbereg("^[^。]*。[^。]*。[^。]*。", "あけましておめでとうございます。今年は戌年です。去年は猿年です。来年は猫年です。", $hoge);

だめ?

770 :nobodyさん:2006/02/01(水) 19:23:28 ID:???
>>767>>769
でも速度的には下手に正規表現使うくらいなら分解した方が速いよ。


771 :nobodyさん:2006/02/01(水) 19:24:20 ID:???
>>765
やりたいことが良くわかんないけど、
前方から"。"をサーチ&カウントして目的の位置を取得
文字列の頭から目的の位置までを抜き出せば良いんじゃないの。
オーソドックスでベタなやり方だけど、別に問題がある訳でもないと思うが。

772 :nobodyさん:2006/02/01(水) 21:06:32 ID:???
<textarea>から受け取ったテキストで、
改行コードの前に改行数をつけるような処理をしたいのですが、
うまくいきません。

preg_replaceで置き換えるようにしてるのですが、ループのところでつまってしまいます・・・。

$temp = $_POST['temp'];  //テキストエリアから取得したもの

function hoge($str,$count)
{
 preg_replace("/\r\n/",$count."\r\n",$str);
}
hoge($temp);
こんな感じにして、どういう風にループをまわせばよいのか・・・。
ループの終了条件を取得するために改行数を取得しようとしましたが上手くいかず・・。
どなたかご教授いただけると幸いです。

773 :nobodyさん:2006/02/01(水) 22:02:29 ID:???
×ご教授
〇ご教示
まず日本語を(ry

774 :nobodyさん:2006/02/01(水) 22:36:17 ID:???
これからPHPについて学んでいこうと思うのですが、
バージョンは5.x.xのものを使えばいいんでしょうか?

775 :765:2006/02/01(水) 22:39:48 ID:fBKX7o67
>>771
実際は、
$hoge="今日から2月。<br>昨日は1月。<br>明日も2月。<br>そして水曜日。"
と言う変数があったとして、
ブラウザで表示させた時の2行目までを取り出したいのです。

なので、文字列<br>が2個目までのモノを取り出したい、という事で…。

776 :nobodyさん:2006/02/01(水) 22:46:38 ID:???
>>775
おまえしつこい。

>>771の通りだろうが。
「。」を「<br>」に置き換えりゃ済むことだろうに。
それとも何か?
ソース丸ごと書かなきゃ満足しないのか?
だったら、ホカイケ。

777 :nobodyさん:2006/02/01(水) 22:53:38 ID:???
>>772
$temp $_POST['temp'];
print preg_replace('/(\r\n)/', '(++ $i) . "$1"', $temp);

778 :nobodyさん:2006/02/01(水) 22:54:55 ID:???
>>777
書き間違い
$temp $_POST['temp'];
 ↓
$temp = $_POST['temp'];

779 :nobodyさん:2006/02/01(水) 22:57:50 ID:???
>>775
素直にexplodeして取り出すのが速い。
多分、それ以外の方法だとかえって遅い。

780 :nobodyさん:2006/02/01(水) 23:08:38 ID:???
PHPがweb上で呼び出されたとき、
それがhttpかhttpsのどっちで通信されているかを
判断する方法を教えていただけませんか。
よろしくおねがいします。

781 :765:2006/02/01(水) 23:16:50 ID:fBKX7o67
あ、ごめん>>771しか見てなかった。

>>769
>>770
サンプルありがとー。
でも、正規表現よりは配列に格納した方がいいのか〜。
なるほど。ありがと。

>>779
そっか。じゃあ素直に…とりあえず報告。
↓↓↓↓↓

//----------------------------------
//ブラウザに2行分だけ表示させる
//----------------------------------
$hoge="今日から2月。<br>昨日は1月。<br>明日も2月。<br>そして水曜日。"
//<br>ごとに配列に格納
$hoge_array=explode("<br>", $hoge, 3);
//2番目の配列だけを表示
for($nCnt=0; $nCnt<=1; $nCnt++){
echo $hoge_array[$nCnt] ."<br>\n";
}

>>776
お門違いですぜ。

782 :nobodyさん:2006/02/01(水) 23:19:20 ID:???
>>777
どうも、ありがとうございます。
やはり改行コードで行数取得なのですね・・・。
ありがとうございます。

783 :nobodyさん:2006/02/01(水) 23:27:42 ID:???
事故解決しました

784 :nobodyさん:2006/02/01(水) 23:48:44 ID:???
$HOGE = 'hoge';
echo "string is $HOGE";

という動作を期待して

define(HOGE, 'hoge');
echo "string is HOGE";

と書いてもうまくいきませんよね。

echo "string is ". HOGE;

とすればいいのですが、あまり" "で分けたくありません。
一気に書く方法ってありませんでしょうか。


785 :nobodyさん:2006/02/01(水) 23:53:51 ID:???
fopen で自サイトの hoge.cgi を動作させたいんだけど無理ですか?
他のサーバからなら http://hogehoge.com/hoge.cgi をfopen出来たんです。

786 :784:2006/02/02(木) 00:09:00 ID:???
補足です。

echo "string is {HOGE}";
echo "string is {constant(HOGE)}";
echo "string is {constant('HOGE')}";

全部うまくいきませんでした。

787 :nobodyさん:2006/02/02(木) 00:10:26 ID:???
>>784
個人的に興味があるだけなんだけど、なんで" "で分けたくないの?
処理的に理由がある?

788 :nobodyさん:2006/02/02(木) 00:13:45 ID:???
短いならいいんですが、長くなると

echo "orenge : $HOGE1\n apple : {$HOGE2}\n banana : $HOGE3\n

789 :nobodyさん:2006/02/02(木) 00:16:31 ID:???
間違えて途中で送信してしまいました。すいません。

>>788
短いならいいんですが、長くなると

echo "orenge : {$HOGE1}\n apple : {$HOGE2}\n banana : {$HOGE3}\n";

は綺麗ですが、

echo "orenge : ". HOGE1. "\n apple : ". HOGE2. "\n banana : ". HOGE3. "\n";

は見難いからです。
HTMLのソースを出力するときにクオーテーション(' ')などが含まれると
さらに見づらくなります。

790 :nobodyさん:2006/02/02(木) 00:20:59 ID:???
HTMLだとこんな感じです。

$orange = 3;
$apple = 5;
$banana = 10;
echo "<a href='index?orange={$orange}&apple={$apple}&banana={$banana}'>";

上をdefine使って定義した場合、

define(ORANGE, 3);
define(APPLE, 5);
define(BANANA, 10);
echo "<a href='index?orange=". ORANGE. "&apple=". APPLE. '&banana='. BANANA. "'>";

となります。下は見づらくないでしょうか。括弧の対応関係がよくわからなくなります。
define使わないほうがいいんでしょうか・・

791 :nobodyさん:2006/02/02(木) 00:21:25 ID:???
>>785
http://jp2.php.net/manual/ja/ref.filesystem.php#ini.allow-url-fopen

あと例に使うドメインはexample.comな。 決まりごとだから守れよ。

792 :nobodyさん:2006/02/02(木) 00:23:57 ID:???
>>790
見づらい見づらくないは主観の問題だから答えられないが。
そこまでしてdefineを使う理由は?

793 :nobodyさん:2006/02/02(木) 00:28:26 ID:???
>>792
session idなどが最初からdefineされているなどの理由です。

794 :nobodyさん:2006/02/02(木) 00:31:11 ID:???
>>793
変数使っちゃ駄目なん?

795 :nobodyさん:2006/02/02(木) 00:32:26 ID:???
わざわざ
$sid = SID;
としてから$sidを使うという事ですか?


796 :nobodyさん:2006/02/02(木) 00:34:10 ID:???
defineで定義した定数を何度も呼び出す事なんて無いと思うんだけどな。
どうしても見難くていやなら関数用意して定数放り込むようにしたらどう?

797 :nobodyさん:2006/02/02(木) 00:34:27 ID:???
まあ、別に変数を使ってもいいんですよ。
ちょっと心持気持ち悪いですが。

ただ、defineのままできる方法があるのかなと思いまして。

結局ないんでしょうか。

798 :nobodyさん:2006/02/02(木) 00:37:52 ID:???
>>796
リンク張るときに
echo "<a href='http://". URL_WEB_SERVER. "/". THIS_FILENAME. "'>hoge</a>";

とか。結構使うんですが、こういうのってやめたほうがいいですか?
全部変数にするべきですかね。

799 :nobodyさん:2006/02/02(木) 00:39:50 ID:???
>>750
すごいショック。
ほんとだマニュアルにも確かにそう書いてある・・・。

マニュアルは結構まめに確認するほうだけど、完全に見落としてた。


800 :nobodyさん:2006/02/02(木) 00:40:03 ID:???
>>798
いや。そのままで良いんじゃないの。
784はその書き方が気持ち悪いみたいだから関数用意したらって言っただけだよ。

801 :nobodyさん:2006/02/02(木) 00:43:25 ID:???
なるほど、参考になりました。

echo "{HOGE}";

でHOGEの中身が出力されるって仕様があってもいい気がするんですけどねー。
しないのは何か理由があるのかなあ。

802 :nobodyさん:2006/02/02(木) 00:46:02 ID:???
>>801
そんな仕様のほうがキモイ。見にくい。


803 :nobodyさん:2006/02/02(木) 00:48:36 ID:???
そもそも定数って何のためにあるのか分からないんだけど・・
変数じゃなくって定数にしなきゃいけないって状況がある?
これも単なる興味の質問だけど

804 :nobodyさん:2006/02/02(木) 00:50:20 ID:???
既出だったら申し訳ない。
セッションを使ったi-mode向けの掲示板を作っているのですが、
前のページに戻る際なんかにキャッシュが効かなくなりました。
毎回通信して読み直しています。この方が都合が良いといえば良い
のですが・・・。(D901iで検証しています)
PCではキャッシュが効いているようなのですが、これはi-modeの
仕様なのでしょうか?

805 :nobodyさん:2006/02/02(木) 00:51:00 ID:???
>>803
変更したくない場合じゃないの?

806 :nobodyさん:2006/02/02(木) 00:52:13 ID:???
>>805
変数だって勝手には変わらないじゃない?

807 :nobodyさん:2006/02/02(木) 01:00:57 ID:???
>>806
その変更がないことを視覚的にも(普通は大文字で書くよね)
はっきり表現したいんじゃない?

808 :nobodyさん:2006/02/02(木) 01:03:42 ID:???
大勢でプロジェクト組むとき勝手に変えられる恐れがないからかな

809 :nobodyさん:2006/02/02(木) 01:11:47 ID:???
>>808
なるほど
個人で作っているから分からない発想だった
thnx

810 :nobodyさん:2006/02/02(木) 01:14:41 ID:???
さて くだらなくなくなってきました。

811 :nobodyさん:2006/02/02(木) 01:18:35 ID:???
上級者には当たり前の疑問も気軽に議論出来るのがこのスレの存在意義だろー

812 :nobodyさん:2006/02/02(木) 03:08:48 ID:???
<?php
//
// 西暦を和暦に変換する
//
include_once("display.inc");
include_once("input.inc");
include_once("calc.inc");
include_once("result.inc");
if (empty($_GET['yyyy'])):
$_GET['yyyy'] = "";
endif;
display_input_area();// 入力エリアの表示
if (!empty($_GET['yyyy']) && input_is_valid()):// 妥当性チェック
$result = calc_gengou();// 元号の計算
display_result($result);// 元号の表示
endif;
?>

↑を実行したら、

Warning: main(display.inc): failed to open stream: No such file or directory in D:\Program Files\xampp\htdocs\~test\part1\chap2\test8.php on line 5

Warning: main(): Failed opening 'display.inc' for inclusion (include_path='.;D:\Program Files\xampp\php\pear\') in D:\Program Files\xampp\htdocs\~test\part1\chap2\test8.php on line 5

というエラーが表示されました。
なにがいけないんでしょうか?
同じディレクトリにdisplay.incはあります。
PHPは4.4.1です。

813 :nobodyさん:2006/02/02(木) 03:13:13 ID:???
>>812
考えられるのは実際のファイル名とincludeしてるファイル名が違うこと。

814 :nobodyさん:2006/02/02(木) 09:04:07 ID:???
>>801
たぶん、本当の答えは「テンプレートエンジンを使え」だと思う。

文字列の連結って結構わけわかめになるからねー。
気持ち悪いのは分かるよ。

815 :nobodyさん:2006/02/02(木) 10:11:57 ID:???
>>801
CとPerlのいいとこ取りをしようと張り切った挙句に
ポリシーが曖昧で中途半端な仕様になってるだけ

816 :軟式PHP:2006/02/02(木) 10:19:32 ID:???
だがそれがイイ。

817 :nobodyさん:2006/02/02(木) 10:32:23 ID:20uSXYKW
P-WEBの自動リンク集のスクリプトで一番下のリンクって消していいんですか?

818 :nobodyさん:2006/02/02(木) 10:58:55 ID:???
>>817
該当スクリプトのライセンスと日本の国内法を確認しろ。

819 :nobodyさん:2006/02/02(木) 11:53:28 ID:???
>>812
試しに
<?php
var_dump(glob("*.inc"));
?>
ってのを動かしたとき、表示内容の中にdisplay.incはあるか?

820 :nobodyさん:2006/02/02(木) 12:11:49 ID:???
>>813
>>819

array(4) { [0]=> string(8) "calc.inc" [1]=> string(11) "display.inc" [2]=> string(9) "input.inc" [3]=> string(10) "result.inc" }
と表示されました。
今やってみたらなぜか動きました。
何がいけなかったんだろう?
お騒がせしました。

821 :nobodyさん:2006/02/02(木) 13:48:17 ID:???
フレームがあるページをPHPで書くとするとどう表現すればいいでうか?

822 :nobodyさん:2006/02/02(木) 13:59:08 ID:???
それHTMLだし

823 :nobodyさん:2006/02/02(木) 14:54:38 ID:???
html何ですが、今までindex.html、left.html、right.htmlでフレームを作ってましたが
これをPHPのecho等でhtmlで出力する時にどう表現すればいいのかを知りたいのですが

824 :nobodyさん:2006/02/02(木) 14:56:54 ID:???
って思ったんですが、これはhtmlで1ファイルで実現できないとphpでも出来ないですよね。

825 :nobodyさん:2006/02/02(木) 15:10:14 ID:???
>>823
index.php、left.php、right.phpでいいやん

826 :nobodyさん:2006/02/02(木) 15:14:02 ID:???
>>825
それを1つのファイルでできないかなっておもいまして・・・

827 :nobodyさん:2006/02/02(木) 15:20:24 ID:???
>>826
だからまずは、
複数のフレームを1つのHTMLファイルで実現する手段を見つけなよ。
それさえ出来れば、後のことは引き受けた。

828 :nobodyさん:2006/02/02(木) 15:21:02 ID:???
>>823
何も難しく考えることはない。
フレームなんてブラウザが同じ画面に構成してるだけなんだから。
index.php、left.php、right.phpという、それぞれ元のhtmlを吐き出す
PHPスクリプトからはじめてみな。

829 :nobodyさん:2006/02/02(木) 15:25:36 ID:???
>>826
んじゃ、index.phpを
index.php?f=main、index.php?f=left、index.php?f=right
で呼び出した時にそれぞれのフレームの内容を吐くようにつくれば?
ただHTMLのフレームって、ファイルをまとめるためじゃなくて、
寧ろ分けたままのものを、表示の際にまとめるための手段だと思うんだけど。

830 :nobodyさん:2006/02/02(木) 15:45:28 ID:???
GETで配列を渡したいのですが今とりあえずserializeでやっていますが
結構長くなってしまうのでもうちょっと短くする方法はありませんでしょうか?


831 :nobodyさん:2006/02/02(木) 15:58:28 ID:???
>>830
同鯖内ならSESSION

832 :nobodyさん:2006/02/02(木) 16:57:21 ID:???
>>830
こんなのも
http://jp.php.net/http_build_query

833 :nobodyさん:2006/02/02(木) 20:01:06 ID:ix6GldKp
<input type="hidden" name="ad" value="sample1@xxxx.xxx">
<input type="hidden" name="ad" value="sample2@xxxx.xxx">
<input type="hidden" name="ad" value="sample3@xxxx.xxx">
<input type="hidden" name="ad" value="sample4@xxxx.xxx">
 ・
 ・
 ・
という風な値をフォーム送信時に、
$ad=
sample1@xxxx.xxx\n
sample2@xxxx.xxx\n
sample3@xxxx.xxx\n
sample4@xxxx.xxx\n



";
という風に格納したいのですがやり方がわかりません。
ググッてみたんですが、検索キーワードが悪いのか、目的地にたどりつけず・・・
どなたか教えてください

834 :nobodyさん:2006/02/02(木) 20:04:51 ID:???
配列使え

835 :833:2006/02/02(木) 20:42:59 ID:ix6GldKp
>>834
ありがとうございます。解決しました。


836 :nobodyさん:2006/02/02(木) 20:51:18 ID:???
四文字で解決ってどうなのよ…

837 :nobodyさん:2006/02/02(木) 21:01:14 ID:???
下質です

838 :nobodyさん:2006/02/02(木) 21:09:46 ID:E0bq5JaA
それで解決できるってすげーよ。

839 :nobodyさん:2006/02/02(木) 22:02:31 ID:AVLZG/Ha
他の掲示板にPOSTでデータを送るにはどうすればいいの?
悪用するわけじゃないけど、荒らしスクリプトみたいなのってどういう仕組みなのかなって思って。

840 :nobodyさん:2006/02/02(木) 22:06:05 ID:???
>>839
さんざん既出。ソケット使え。(梨でも良いが)

841 :nobodyさん:2006/02/02(木) 22:15:18 ID:???
>>840
うるさい

842 :nobodyさん:2006/02/02(木) 22:18:02 ID:???
>>840
荒しとヒントの区別の付かない人には無理だと思う。

843 :nobodyさん:2006/02/02(木) 22:19:36 ID:???
842 nobodyさん sage投稿日: 2006/02/02(木) 22:18:02 ID:???
>>840
荒しとヒントの区別の付かない人には無理だと思う。

844 :nobodyさん:2006/02/02(木) 22:21:28 ID:???
>>842
だな
>>840で判らなきゃ何言っても無理

845 :nobodyさん:2006/02/02(木) 22:21:44 ID:???
興味本位で便乗するけど、同じ名前のフォーム部品を持つHTML作って送りつければいいだけじゃないの?

846 :nobodyさん:2006/02/02(木) 22:28:36 ID:???
まぁ、手動でぽちぽちするならそれもありかもな。

847 :nobodyさん:2006/02/02(木) 22:28:52 ID:???
>>845
それだとUA変えたりできないじゃん

848 :nobodyさん:2006/02/02(木) 22:29:27 ID:???
ある意味正解。しかしたいていの「まともな」スクリプトやサーバーは制御されてる。

849 :nobodyさん:2006/02/02(木) 22:30:35 ID:???
既に答えは出たし、こういう話題は荒れるからここで終了。

850 :nobodyさん:2006/02/02(木) 22:33:54 ID:???
post

851 :nobodyさん:2006/02/02(木) 22:33:59 ID:???
PHPエディターを置いてるサイトの解説を見て、PC上でPHPを動くように最新版をダウンロードしまくったのですが、php.ini?の設定で変えておいた方がいい箇所ってありまつか?

852 :nobodyさん:2006/02/02(木) 22:38:49 ID:???
PHPエディターを置いてるサイトの解説を見て、PC上でPHPを動くように最新版をダウンロードしまくったのですが、php.ini?の設定で変えておいた方がいい箇所ってありまつか?

853 :nobodyさん:2006/02/02(木) 22:44:26 ID:???
>>852
実際にどこかのサーバで動かすスクリプトの開発環境として使用するなら、
そのサーバの環境に合わせる。(エンコード周りとか結構重要)
「とりあえず、遊んでみるだけ」って言うなら、当面はデフォで桶

854 :nobodyさん:2006/02/02(木) 22:47:40 ID:???
累計17万5千ダウンロード突破(2006/1/8)

・・そんなに使ってるのか!?

855 :nobodyさん:2006/02/02(木) 22:51:15 ID:???
>>853
ありがd。とりあえずこのまま開発してって不具合があったら調整していきます。

856 :nobodyさん:2006/02/02(木) 22:51:49 ID:???
>>854
>>851-852

857 :nobodyさん:2006/02/02(木) 22:52:27 ID:5dJz86s1
次のような方法で、グローバル変数を関数内で呼び出せることは分かっています。

<?php
$var_A = 1;
function Test() {
  global $var_A;   //グローバル文で宣言
  echo $var_A;
}
Test();
?>

しかし、関数Aで定義した変数を、関数Bで使う方法が分かりません。

function A() {
$var = "hoge";
}

function B() {
print $var;
}

これで $var を表示する方法が知りたいのです。
検索をかけても、グローバル変数を関数内で呼び出す方法が載っているサイトばっかりひっかかって、
下記の方法がなかなか見つからないのです。

ご教示お願いします。

858 :857:2006/02/02(木) 22:55:15 ID:???
追記です
後者は、

A();
B();

を実行した場合についてです。


859 :857:2006/02/02(木) 22:59:26 ID:???
関数Aと関数Bの両方で
「global $var;」を宣言したら使えました。
phpのスコープの概念が他の言語とかなり違っていて混乱していました。

global $var; は、
「グローバル変数 $var を 関数内で使用することを許可する。」というだけではなく、
「関数 $var を グローバル変数にする。」という処理も同時に行うという事なんですね。

自己解決でスレを汚して申し訳なかったです。


860 :nobodyさん:2006/02/02(木) 23:35:23 ID:???
>>859
スコープの「概念」自体は他の言語と大差ないよ。
ただ、デフォルトがグローバルなのかローカルなのかの差はある。

861 :857:2006/02/02(木) 23:47:17 ID:???
>>860
関数内での宣言がデフォルトでローカル変数の言語は使ったことがあったので良かったんですが、
グローバル変数を関数内でそのまま呼び出せない部分で混乱したようです。

| global $var; は、
| 「グローバル変数 $var を 関数内で使用することを許可する。」というだけではなく、
| 「関数 $var を グローバル変数にする。」という処理も同時に行うという事なんですね。

と考えていたのですが。

| ローカル変数 $var と グローバル変数 $var は別に存在する
| 関数で「global $var;」と宣言した場合には、その関数内ではグローバル変数の $var が使われる。
| 他の関数内でそのグローバル変数 $var を使いたい場合には、そっちも global $var; と宣言する必要がある。

とシンプルに考えたらなんだか理解した気になれました。

862 :nobodyさん:2006/02/03(金) 00:00:10 ID:???
別の関数内の変数を必要とした事が一度もないんだけど

863 :nobodyさん:2006/02/03(金) 00:13:21 ID:???
そもそも、グローバル変数を介した関数間の変数のやり取りはよろしくない。
クラスにしてメンバ変数つかうのが妥当だと思われる。

864 :nobodyさん:2006/02/03(金) 00:16:10 ID:???
globalを使わなきゃいけない状況ってどんなのがあるの?

865 :857:2006/02/03(金) 00:19:30 ID:???
>>862
うんと、本来の「関数」ではないところに、
作業の流れを分かりやすくするために関数扱いにして
一番上で条件ごとにどの関数を呼び出すのかを列挙している感じに使ってます。


866 :857:2006/02/03(金) 00:25:50 ID:???
具体的にはこんな風に関数を使っているので、
関数から他の関数で使っている変数を呼び出す必要があるんです。


# 処理内容を順番に列挙
LoadFile();
if ($_POST['Type'] == "表") {
FileTable();
} else {
FileG();
}


# ファイル読み込む
function LoadFile {
$ファイル内容 = fopen("hogehoge.dat", "r");
fclose($ファイル内容);
}


# ファイルの内容を表にする
function FileTable {
〜ここで変数 $ファイル内容 を使う〜
}


# ファイルの内容をグラフにする
function FileG {
〜ここで変数 $ファイル内容 を使う〜
}


867 :857:2006/02/03(金) 00:26:34 ID:???
()を抜かしていたので修正

# 処理内容を順番に列挙
LoadFile();
if ($_POST['Type'] == "表") {
FileTable();
} else {
FileG();
}


# ファイル読み込む
function LoadFile () {
$ファイル内容 = fopen("hogehoge.dat", "r");
fclose($ファイル内容);
}


# ファイルの内容を表にする
function FileTable () {
〜ここで変数 $ファイル内容 を使う〜
}


# ファイルの内容をグラフにする
function FileG () {
〜ここで変数 $ファイル内容 を使う〜
}




868 :nobodyさん:2006/02/03(金) 00:31:58 ID:???
ところで、引数を使うのはダメなの?
function LoadFile () {
return $handle = fopen("hogehoge.dat", "r");
}

$naiyou = LoadFile();
if ($_POST['Type'] == "表") {
FileTable($naiyou);
}

これじゃダメ?

869 :nobodyさん:2006/02/03(金) 00:33:06 ID:???
配列$x に 二次元配列$y[2][1] の値を代入したくて、次のような式を書きました。

print "$x[$y[2][1]]";

そうすると、パースエラーになってしまうようです。
Parse error: syntax error, unexpected '[', expecting ']' in /ディレクトリ階層/hogehoge.php on line 数字

原因を教えて頂けると幸いです。


870 :857:2006/02/03(金) 00:36:49 ID:???
>>868
上級者の方はそういうコードを好まれるみたいですね。
自分の場合は、関数から引数を2つ出力できなかったり(配列使えばできるけど)するので
なんとなく867みたいなやり方がわかりやすい気になっちゃうんです。
自分のコードは脆弱性を作りやすい書き方みたいですので、他の人のを参考にして綺麗なコードを書くように心がけます。


871 :nobodyさん:2006/02/03(金) 00:39:36 ID:???
>>869
$x[] = $y[2][1];
print_r($x);
じゃ駄目なのかな

872 :869:2006/02/03(金) 00:47:34 ID:???
>>871
あ、すみません。
表現がおかしかったようです。


(誤) 配列$x に 二次元配列$y[2][1] の値を代入したくて、次のような式を書きました。

言葉で説明できないのでコードで書きますね。

このようなコードを1行に書きたいんです。
配列に配列をいれることをよくやるので1回一時的な変数にいれたりするとまどろっこしいので。
| $hoge = $y[2][1];
| $x[$hoge];


これを多くの言語では、$x[$y[2][1]] と書けばできるんですが、
phpではこのようにシンプルにやる方法はないのでしょうか?



873 :nobodyさん:2006/02/03(金) 00:58:02 ID:???
>>867
なんか昔のBASICのサブルーチンを思い出すようなコードだな。

874 :nobodyさん:2006/02/03(金) 00:59:29 ID:???
>>872
普通にできるだろう。
869のエラーはそれを”〜”中で書いてるせいだと思う。

875 :無知ですまそ:2006/02/03(金) 02:01:46 ID:SfkSG4GR
パスワードチェックで

if ($FORM{'mail'} ne 'aaa') { &error("パスワードが違います"); }

としたのだけど、aaaとbbb以外は違うとするにはどうすればいいのか教えてください。

876 :無知ですまそ:2006/02/03(金) 02:02:53 ID:SfkSG4GR
if ($FORM{'pass'} ne 'aaa') { &error("パスワードが違います"); }

でした。

877 :nobodyさん:2006/02/03(金) 02:10:54 ID:???
>>875-876
おまえさん、そりゃPerlだよ。


878 :nobodyさん:2006/02/03(金) 02:15:28 ID:???
>>870
基礎からやり直したほうがいいと思う。
用語も間違ってるし、全くわかってないだろ。

879 :nobodyさん:2006/02/03(金) 02:24:40 ID:???
>>873
むしろCOBOLっぽい

880 :nobodyさん:2006/02/03(金) 02:26:02 ID:???
>>875-876
って、マルチかよ・・

881 :nobodyさん:2006/02/03(金) 10:36:16 ID:???
ASPのServer.Transferのように
GETとPOSTとSESSION以外で別ページに変数渡す方法ないでしょうか?

やりたいことは別PHPプログラムへ変数を渡すことです、
GETとPOSTはセキュリティの関係上使用したくありません、
変数を渡されるPHPプログラムは全く弄ることができないので、
SESSIONでも難しい状態です。
宜しくお願いします。

882 :nobodyさん:2006/02/03(金) 10:48:39 ID:???
PHPってオーバーロードできないんですね・・^^;

883 :nobodyさん:2006/02/03(金) 11:14:29 ID:???
php で関数をラップするにはどうしたら?

wrapper(1, 2, 3);
function wrapper() {
  $args = func_get_args();
   //return original($args);
  //これでは original(1, 2, 3) ではなく original(array(1, 2, 3))
}

python かなんかだと配列渡すと勝手に展開してくれた記憶が。
同じようなことをやりたい。

884 :nobodyさん:2006/02/03(金) 12:08:13 ID:???
>>883
call_user_func_array()

885 :nobodyさん:2006/02/03(金) 12:13:10 ID:???
>>881
渡されるプログラムをいじれないなら、渡されるプログラムが
受け取れる方法を確認するのが先じゃないのか?
つか渡されることを前提に作られていないなら get, post 以外は
無理だろ、ふつー。

886 :nobodyさん:2006/02/03(金) 12:14:01 ID:???
>>881
そういうまっとーな質問は本スレ池

887 :nobodyさん:2006/02/03(金) 12:17:20 ID:???
>>881
ASPのServer.Transferだって渡される側を改造しないとデータは受け取れなくなかったか?

888 :nobodyさん:2006/02/03(金) 12:17:48 ID:???
>>881
変数をファイルに書き出して、FTP(もしくはSCP)で相手環境に投げる















・・・・んなバカなw

889 :nobodyさん:2006/02/03(金) 12:19:23 ID:???
>>857
>>520- からの流れを読んで class 使うのが吉

890 :nobodyさん:2006/02/03(金) 12:26:45 ID:???
>>889
こんな分割の仕方をする人がそのままの感覚でクラスを使ったら
めちゃめちゃメモリ食いのプログラムが出来上がる予感

891 :nobodyさん:2006/02/03(金) 12:32:38 ID:???
atomのパーサ・ジェネレータでC++のフリーのライブラリってありますか?


892 :nobodyさん:2006/02/03(金) 12:36:20 ID:???
ここはPHPの質問スレなんだが

893 :883:2006/02/03(金) 14:18:12 ID:???
>>884
うぽ。サンクス

894 :nobodyさん:2006/02/03(金) 14:39:16 ID:???
>>890
今時そんな貧乏的なプログラミングする必要あるの?
どんな分割しようがこの時代において大差ないだろ。

そんなに、負荷が気になるなら eAccelerator でも使ってコンパイルすりゃいいじゃん。
そしたら分割がどうのなんてことによる差なんて殆どなくなるから。


895 :nobodyさん:2006/02/03(金) 17:23:33 ID:???
$a = &$b;

$a =& $b;
って一緒ですか?

896 :nobodyさん:2006/02/03(金) 17:37:27 ID:???
>>895
$aと=と&と$bはそれぞれ別のtokenだからスペースの有無は関係ないと思う

897 :nobodyさん:2006/02/03(金) 17:57:08 ID:???
>>894
あの単なるラベルにしかなってないレベルの機能分けでクラスにしたら
大半の変数をメンバ変数に抱えてグローバルで持ち回る羽目になると思うし、
しかもそれをいちいちオブジェクトを通した間接参照することになる。
そういう状態になると、PHPってメモリを無駄に馬鹿食いする上に激遅になるんで
ホントにそのためだけにアクセラレーターなどを導入する羽目になりかねないと思う。


898 :nobodyさん:2006/02/03(金) 17:58:27 ID:???
設計はどうでもPHP使うならアクセレータはあった方がいいよ

899 :nobodyさん:2006/02/03(金) 19:47:52 ID:QzQwZT7X
おい

require_once "Auth/Auth.php";

function loginFunction()
{
/**
* HTML出力は、作成するアプリケーションに合うように、
* 変更してください。
*/
echo "<form method=\"post\" action=\"" . $_SERVER['PHP_SELF'] . "\">";
echo "<input type=\"text\" name=\"username\">";
echo "<input type=\"password\" name=\"password\">";
echo "<input type=\"submit\">";
echo "</form>";
}

$dsn = "mysql://user:password@localhost/database";
$a = new Auth("DB", $dsn, "loginFunction");

$a->start();

if ($a->getAuth()) {
/**
* サイトの出力はここ。
*/
}

動かないんだが、
テーブル指定してないのにつながるの?
教えて下さい。


900 :nobodyさん:2006/02/03(金) 19:52:35 ID:???
オーイ(^o^)/~~~~~オーイ
エスパーさんお呼びですよ

901 :nobodyさん:2006/02/03(金) 19:58:00 ID:???
>>899
> おい
偉そうなやつだな。

902 :nobodyさん:2006/02/03(金) 20:06:13 ID:???
動かないんならつながらない。
答えは出てるんじゃまいか。

903 :nobodyさん:2006/02/03(金) 20:30:19 ID:???
>>899
それ配布するつもりか?
プログラム言語触ったことないやつにはecho "";なんて意味不明だ。
別ファイルにhtml部分は書き出したほうがいいんじゃないか?

904 :nobodyさん:2006/02/03(金) 20:56:05 ID:???
>>896
そういうことか、さんくす
あるところに=&を参照代入の演算子だって書いてあったから=&で1つなのかと思った

905 :nobodyさん:2006/02/03(金) 21:12:53 ID:???
>>899
>>903の言う通りだ。includeやら何やらでHTMLファイルを読み込むように汁。



906 :nobodyさん:2006/02/03(金) 22:40:41 ID:???
SJISで
mb_ereg(preg_quote($a),"あと");


$a="あ";
だと真で
$a="あと";
だと偽

になるんですが両方とも真にしたいのです。原因わかる方いますでしょうか?

907 :nobodyさん:2006/02/04(土) 00:13:04 ID:???
>>906
良く判らんがSJISに対応してないpreg_quoteで処理したら
そもそもおかしいのでは?

908 :nobodyさん:2006/02/04(土) 01:09:37 ID:???
>>906
再現しない。普通にどっちも真になった。
SJISだ、と言ってるが、実はソースがSJISなだけでphp.iniの設定はSJISじゃなかったりしないか?

909 :nobodyさん:2006/02/04(土) 05:58:57 ID:???
>>906-907
あれま、そうなんですか。よく確認してませんが、php.iniではEUCかもしれません。今起きたばかりなんであとにしますが、php.iniをいじれないのでme_internal_encoding()、ini_set()あたりでいけますかね?

910 :nobodyさん:2006/02/04(土) 06:00:01 ID:???
・元になる配列はn個ある。(全てにキーが付けられていて、配列の長さ・並び順は同じ)
・共通部分を抜き出した配列を作り、重複するキーと値のペアを削除したい。

$array1 = array( 'a'=>1, 'b'=>2, 'c'=>3 )
$array2 = array( 'a'=>1, 'b'=>3, 'c'=>5 )
    ↓
$array1 = array( 'b'=>2, 'c'=>3 )
$array2 = array( 'b'=>3, 'c'=>5 )
$result = array( 'a'=>1 )


$result = array_intersect_assoc($array1, $array2 [, array ...])
マニュアルを調べて重複する物を取り出す方法は分かったけど、重複してるのを消すには各配列毎にunsetしなきゃダメかな。
もっとスマートな方法があれば教えてください。

911 :906:2006/02/04(土) 08:30:29 ID:???
INI_SET("mbstring.internal_encoding","SJIS");
でできました。ありがとうございました。

912 :nobodyさん:2006/02/04(土) 09:10:21 ID:???
「List」が「いst」に見えました。
俺、疲れてるんでしょうか?

913 :nobodyさん:2006/02/04(土) 09:50:22 ID:???
>>910
array_unique()使うといいのでは

914 :nobodyさん:2006/02/04(土) 10:09:10 ID:???
array_unique() は一つの配列内での値の重複を無くす関数で、
複数の配列間で共通の物を抜き出す用途には使えないんじゃないかな。

915 :nobodyさん:2006/02/04(土) 10:17:19 ID:???
あ〜そっか。
array_diff()だな。

916 :nobodyさん:2006/02/04(土) 10:32:01 ID:???
>array_diff() は、他の引数のいずれにも存在しな いarray1の値の全てを有する配列を返します。
ってなってるから
>>910の例に則ると、array_diff($array1, $array2) の結果は array( 'b'=>2 ) になって、
欲しい結果として例示してる $result と 各$arrayには当て嵌まらなく・・ orz

917 :nobodyさん:2006/02/04(土) 10:38:25 ID:???
mysqlで、abc.txtの中身
あいう|aabbccdd|1234
えおか|eeffgg|4321567
等100件くらいのデータを登録したいのですが、10件ほどしか登録できません。
どうしたらいいでしょうか?

$text = "abc.txt";
$mi = file($text);
$i = 1;
foreach($mi as $val){
$jon = explode('|', $val);
mysql_query("INSERT INTO dare VALUE ($i,'$jon[0]','$jon[1]','$jon[2]')");
$i++;
}

918 :nobodyさん:2006/02/04(土) 10:47:46 ID:???
関係ないけどforeachでやってる意味なさそうな


919 :nobodyさん:2006/02/04(土) 10:51:55 ID:???
>>916
$array1と$array2の共通部分が$resultならそれを各配列から除けばいい。
$array1 = array_diff_assoc($array1, $result);
多分こんな感じ。

920 :nobodyさん:2006/02/04(土) 10:53:47 ID:???
>>917
クエリー発行の代わりにechoでもして変数の中身を確認してみ。

921 :nobodyさん:2006/02/04(土) 11:02:10 ID:???
>>919
あぁ、なるほど・・勘違いして妙な事言ってすみません。
動作チェックをして意図した通りに動く事を確認しました。ありがとうございます

922 :nobodyさん:2006/02/04(土) 11:15:04 ID:???
>>920
echoはちゃんと100件ほど表示されるんですよ。

navicat使っとく事にします。
ありがとうございました。

923 :nobodyさん:2006/02/04(土) 11:53:48 ID:???
>>917
mysql_query("INSERT INTO dare VALUE ($i,'$jon[0]','$jon[1]','$jon[2]')") or die(mysql_error());

924 :nobodyさん:2006/02/04(土) 19:36:20 ID:???
やべぇ。
PEAR が ペアって読むって TV 見てて初めて気付いた。。
てゆーか梨だったと今更気付いたしorz

925 :nobodyさん:2006/02/04(土) 20:40:11 ID:???
>>924
m9(^Д^)プギャー

オレもだorz

926 :nobodyさん:2006/02/04(土) 20:55:59 ID:???
うえ?ピアーじゃないの?

927 :nobodyさん:2006/02/04(土) 20:57:52 ID:???


928 :nobodyさん:2006/02/04(土) 21:07:39 ID:???
発音はピに近いペアー
日本語読みだとペアー

929 :nobodyさん:2006/02/04(土) 22:13:32 ID:???
http://dictionary.goo.ne.jp/voice/p/00060483.wav

930 :nobodyさん:2006/02/05(日) 03:06:13 ID:???
くだらない質問がおkということでやってきました。
当方WindowsでPHPをコーディングしているのですが、仕事場ならまだしも自宅でコーディングする時に
あの登録されていない拡張子のアイコンがとても気になります。Javaとかは良いアイコンがあったので
変更しているのですが、PHPファイルの良いアイコンがなかなか見つかりません。
誰か良いアイコンご存じないですか?

931 :nobodyさん:2006/02/05(日) 03:07:29 ID:???
http://www.uploda.org/uporg304451.zip
これ使ってる。

932 :nobodyさん:2006/02/05(日) 03:19:48 ID:???
>>931
横からだが、それイイネ

933 :930:2006/02/05(日) 03:59:17 ID:???
うおおおおおおお!!!!!!
ありがとうございます!
こんな素敵なアイコンがあったのか・・・
やる気が出てきたです!

しかしアイコンとかちょっとかえるだけで何か凄い新鮮な気分だ

934 :nobodyさん:2006/02/05(日) 04:06:25 ID:???
0602/0131.dat

といったフォーマットの文字列から、
1〜4文字目と8〜9文字目を抜き出して
06 02/31
というフォーマットに変換にしたいんですが、どうやるのが手短ですか?
自分がやるとsubstrとか何度も使いまくってエライことになりそうなんですが…。

935 :nobodyさん:2006/02/05(日) 04:07:17 ID:???
>>931
俺もそれ使ってみよう

936 :nobodyさん:2006/02/05(日) 04:09:38 ID:???
>>934
正規表現かsscanf。自分でやるなら正規表現だけど、どっちでもいいと思う。

937 :nobodyさん:2006/02/05(日) 04:50:40 ID:uUJqicme
元あるHTMLファイルにコメントを書き込んでいくスクリプトを製作しているのですが、
書き足していくと、もとある文章の上に書き足されてしまいます。
もとある文章の下に加えたい場合はどのような操作をすればよいのでしょうか?

938 :nobodyさん:2006/02/05(日) 05:12:58 ID:???
自分も始めたばかりでよく分からないのですが

<?
$logpath = "hoge.txt";

$lines = @file($logpath);
$fp = @fopen($logpath , "w");
flock($fp, LOCK_EX);
  $lines[] = "追加したい文字列<br>\n";
  foreach($lines as $value) fputs($fp, $value);
flock($fp, LOCK_UN);
fclose($fp);

/*確認*/
$lines = @file($logpath);
foreach($lines as $value) print($value);

?>

こんなんでどうでしょう

939 :nobodyさん:2006/02/05(日) 05:15:00 ID:???
>>937
fopenの第二引数について調べておいで。

940 :nobodyさん:2006/02/05(日) 05:16:52 ID:???
>>938
いい筋してる でも無駄がある。

941 :938:2006/02/05(日) 05:17:52 ID:???
なるほどaにすればforeach使う必要ないのかw
勉強になりますた

942 :nobodyさん:2006/02/05(日) 05:23:48 ID:???
wは必要ない時はあんまり使わない方がええよ。

943 :nobodyさん:2006/02/05(日) 05:31:54 ID:???
モジュール版のphpって Apache 自体が処理するんですよね。

ってことは、無限ループphpを作って実行した場合には、
そのphpを終了することはできないのでしょうか?

終了するためにはApache再起動が必要になるんですか?


944 :nobodyさん:2006/02/05(日) 05:41:50 ID:???
>>943
そこのあたりあんまり詳しくないけど多分そうだと思う。
しかもApache2からはタスクバーにApacheアイコンあるでしょ?
それからはApacheの再起動とか出来なくなっちゃう。
マイコンからサービスで止めなきゃダメポ

945 :nobodyさん:2006/02/05(日) 05:51:49 ID:???
長いソースはってもいいですか

946 :nobodyさん:2006/02/05(日) 05:57:28 ID:???
ステップ数にも夜が
出来るならどっかにあげてくれ

947 :943:2006/02/05(日) 05:58:55 ID:???
>>944
ということは、例えば共有レンタルサーバでスクリプトを無限ループさせちゃったら、
サーバ管理者しか止められないということなんでしょうか(´・ω・`)

948 :945:2006/02/05(日) 06:01:16 ID:???
MySQL用のDB操作クラスなんですが、基底クラス+派生クラスで158行あります。
空白改行とコメント含んでます。貼るには長いですかね。。
はれる場所さがしちゅ

949 :945:2006/02/05(日) 06:20:23 ID:???
なさそうなんで、切り抜いて貼ります。
すごく初歩的な質問になりますけれど、継承というのはこういう使い方でおかしくないでしょうか?
質問の仕方が悪いかもしれませんが、どう聞くべきかむずかし。。

親クラスに↓こんなメソッドがある場合、

//レコード取得
public function Set_Data($result, $row) {
mysql_data_seek($result, $row);
return mysql_fetch_array($result);
}

子クラスでそれを使いたい場合は↓のようにしている。

//結果取得
public function Setdata($row=0) {
$rs= parent::Set_Data($this->result, $row);
$this->setBbsdate($rs["bbsdate"]);
$this->setBbsid($rs["bbsid"]);
$this->setUsername($rs["username"]);
$this->setTitle($rs["title"]);
$this->setBody($rs["body"]);
$this->setMailaddress($rs["mailaddress"]);
$this->setWebaddress($rs["webaddress"]);
$this->setDeletekey($rs["deletekey"]);
$this->setRemotehost($rs["remotehost"]);
}

950 :nobodyさん:2006/02/05(日) 06:26:14 ID:???
>>949
普通、子クラスから親クラスのメソッド呼び出すときも
$this->Set_Data(); ってやると思うぞ。

951 :nobodyさん:2006/02/05(日) 06:28:22 ID:???
>>937
HTMLのどの位置にどうやって書き込んでるのさ。
現状の上書きしちゃうっつー方式がよく分からんぞ。

952 :949:2006/02/05(日) 06:34:24 ID:???
>>950
ありがとうございます。

例えば、こんな親のコンストラクタがある場合、

//親コンストラクタ
public function __construct() {
$this->constr = mysql_connect('*******', '****', '*******');
$this->dbname = '******';
mysql_select_db($this->dbname);
}

子のコンストラクタから親のコンストラクタを使う場合、↓みたいにしなきゃいけなかったので
親の使うときは全部こうなのかと勝手に思い込んでました。

//コンストラクタ
public function __construct() {
parent::__construct();
}

ご教授ありがとうございました。

953 :nobodyさん:2006/02/05(日) 09:10:19 ID:iOU2xOeQ
質問させてください。

formのtextareaタグで以下のデータを入力します。
aaa
bbb
ccc

スクリプトで、
$arr = explode("\n",$data)
のように、改行コードで配列に格納し、

if ($arr[0] == "aaa")
で比較しても条件にマッチしません。

var_dump($arr[0])したところ、4文字になっていました。
どういうことなのでしょうか?


954 :nobodyさん:2006/02/05(日) 09:52:04 ID:???
改行コードについて詳しく調べてみなさい
さすれば道は開けよう

955 :nobodyさん:2006/02/05(日) 10:23:24 ID:???
\r\n

956 :nobodyさん:2006/02/05(日) 10:34:00 ID:???
trim

957 :nobodyさん:2006/02/05(日) 10:45:22 ID:???
>>953みて思ったんですけど

str_replace("\r","\n",$text);
str_replace("\r\n","\n",$text);

って常にやっとけばいいのかな?

958 :nobodyさん:2006/02/05(日) 11:08:26 ID:???
>>957
\r\n \n \rの3パターンがある。(\n\rは無い)
それぞれの場合にその処理をするとどうなるか考えてみると、おのずと答えがでる。

959 :nobodyさん:2006/02/05(日) 11:31:00 ID:???
perlから移行中なのですが、正規表現におけるphpとperlの違いをドキュメント化したサイトはありませんか?

960 :nobodyさん:2006/02/05(日) 11:34:34 ID:???
>>959
perlがわかってるなら、phpマニュアルみれば違いがわかるのでは?

961 :nobodyさん:2006/02/05(日) 12:17:34 ID:???
>>959
ttp://jp2.php.net/manual/ja/ref.pcre.php

962 :nobodyさん:2006/02/05(日) 13:38:58 ID:???
                           ___    _
   | ̄|  />  _           _   /   _|   | |  />
   |  |//   \ \   __   / /   \ \.     |  |//
   |    \     \ \/ \/ /       〉 ヽ.    |   \
   |  |\ \     \ /\ /    | ̄ ̄   ノ     |  |\ \
 /::::/'"   ̄ヾi    /  ̄ ̄ \  /::::/'" ̄ ̄ヾi   /   ̄   ヽ
 |:::::::| ,,,,,_  ,,,,,,|   |  ^   ^  |  |:::::::| ,,,,,_  ,,,,,,|  |  ^    ^  |
 |r-==( 。);( 。)   | >ノ(、_, )ヽ、.|   |r-==( 。);( 。)   | >ノ(、_, )ヽ、.|
 ( ヽ  :::__)..:: }    ! ! -=ニ=- ノ !  ( ヽ  :::__)..:: }   ! ! -=ニ=- ノ !
  ヽ  ー== ;      \ `ニニ´ /   ヽ  ー== ;    \ `ニニ´ /
   \___ !        ̄ ̄       \___ !        ̄ ̄ ̄

963 :nobodyさん:2006/02/05(日) 14:37:05 ID:6eXZDRj2
指定したURLから読み込んだhtmlファイルから、特定の場所の値を取り出す方法は、何かありますか?
例えば、2番目のテーブルの3行目の左から4個目のセルの値を取り出す方法。
やっぱり、文字列処理をしないといけないのでしょうか?

964 :nobodyさん:2006/02/05(日) 14:38:11 ID:???
当然。

965 :nobodyさん:2006/02/05(日) 14:47:07 ID:???
>>949
何かを取得するためのメソッド名が setXxx なのは絶対におかしい。
getXxx にしとけ。

966 :nobodyさん:2006/02/05(日) 15:11:02 ID:???
>>959
PHPにはPerl互換の正規表現を扱うpreg系ライブラリがあるから
それ使ってればそれほど違いを意識しないで済むよ。
若干の仕様差はあるけど、pregのマニュアルの中で明記されてる。

Perl互換でないereg系は要するにPerl拡張の入ってない標準的な正規表現です。

967 :944:2006/02/05(日) 15:57:34 ID:???
>>947
今の俺の理解力ではそういうことになる。
一応そこに確認してみたらどうだろう?
で、結果が解ったら俺に教えてくれ('A`)

968 :nobodyさん:2006/02/05(日) 17:15:02 ID:???
>>947
共有サーバだったら、PHPなりPerlなりの実行時間には制限が設けられていると思う。
1ユーザがリソースを食い尽くさないようにね。
なので、その制限時間を越えたら、問答無用で強制終了されると思われ。

969 :nobodyさん:2006/02/05(日) 17:35:00 ID:???
ちょっと思ったんだけど、ローカルでチェックしてても無限ループする可能性があるのってどんな場合が考えられるのかな?

970 :nobodyさん:2006/02/05(日) 17:35:04 ID:???
エクスプローラからドラッグアンドドロップでファイルをアップロードできるようにしたいのですが、
ActiveXを組み合わせる以外に方法はありませんか?



971 :nobodyさん:2006/02/05(日) 17:52:09 ID:???
既出か分からないけど、
トップーページと入力すると
本来ならば%83g%83b%83v%83y%81[%83WのはずなのにPHPは%83g%83b%83v%83y%81_%83Wと受け取ってしまう。

[となるべく部分が_になってしまう。
[[[とすると_[[と受け取るので最初の[のみ誤認してしまうようです。

これの対処はどのようにすればいいでしょうか?

972 :nobodyさん:2006/02/05(日) 17:54:39 ID:???
>>947
CGIだから無限ループが問題にならないということはないよ。
リソース食えば同居してるApacheの足を引っ張るから。

普通のまっとうな管理者ならリソースの制限をしてるので、
ユーザの過失で無限ループに陥っても、管理者が手動で止めるまで際限なく
ループが続くということはない。Apahce+PHP(サーバモジュール/CGI/suExec等)の
組み合わせにもよるので、制限や監視のしかたにも色々とあるが
そういった用意は管理者がしてるものなので「管理者が止めないとだめ」というのは正しい。

制限、監視をしてても、それらは一時的にはサービスの提供に支障が出るので、
テスト自体を共有サーバでしてるような香具師は注意・警告の上、
何度も繰り返すようなら契約の解除ぐらいはやります。他の人に迷惑だからね。

973 :nobodyさん:2006/02/05(日) 18:03:33 ID:???
>971ですが状況が分かりづらくてすみません
>トップーページと入力すると
というのはURLに入力という意味で
http://.../index.php?トップページ』
としたときです。
このように入力した後 echo key ($GET); とするとトップペ\ジとなります。

それと、環境はPHP5を使用しています。
OSはWindowsXP SP1でAN HTTPDとApacheの両方で同様の誤動作を確認しています。

情報足らずで失礼しました、
引き続き対処の程を教えていただけるようお願いします。

974 :nobodyさん:2006/02/05(日) 18:12:41 ID:???
>>947
ブラウザ閉じればPHPも途中で終了するんじゃないかな。

975 :nobodyさん:2006/02/05(日) 18:25:21 ID:???
>>973
それで理由が分かったよ。
それ、PHPの仕様。マニュアル嫁。

976 :nobodyさん:2006/02/05(日) 18:35:09 ID:???
->
↑の説明って、マニュアルのどこにありますか?

977 :nobodyさん:2006/02/05(日) 18:54:32 ID:???
>>976
クラスの章かな
単体で->の説明は無いけど使い方ならサンプルソースで分かると思う。

978 :nobodyさん:2006/02/05(日) 19:00:18 ID:???
>>975
なる程、仕様なのですね。
配列とkey関数のマニュアルは読んで見ましたが該当していそうな部分は見当たりませんでした。
さすがにあの量の中から探すのも大変なのでどこに書かれているか教えていただけませんか?

ついでに報告として
$test = Array ("トップページkey" => "トップページvalue");
print_r ($test);
print (key ($test));
を実行して見ましたが、トップペ\ジkeyとは表示されませんでした。
valueの方も同様にトップペ\ジとはなりませんでした。

979 :nobodyさん:2006/02/05(日) 19:14:37 ID:???
>>977
そこは読んだのですけれど、分からなかったのです。
説明しているサイトとかないでしょうか?
簡単にでも言語化してあれば自分でいじってみるのですが…。

検索エンジンにもかからないんですよね…。

980 :nobodyさん:2006/02/05(日) 19:23:02 ID:???
「php クラス」で検索すればそこそこヒットする筈なんだが。。。(そのページの拡張子がphpのものもヒットしてしまうが)

981 :nobodyさん:2006/02/05(日) 19:26:40 ID:???
>>980
ありがとうございました。
検索してみます。

982 :nobodyさん:2006/02/05(日) 19:59:05 ID:???
>>979
言語化というのはPHPとして書かれているという意味でいいんかな。
サンプルソースあるよ。
ttp://php.s3.to/man/language.oop5.basic.html

983 :nobodyさん:2006/02/05(日) 20:01:21 ID:???
$n="00000000236";

みたいになってるデータをただの「236」という数字に直すにはどうしたらいいんでしょうか?

984 :nobodyさん:2006/02/05(日) 20:02:28 ID:???
文字列で

<a href="yahoo.co.jp">yahoo</a>
<a href='yahoo.co.jp'>yahoo</a>
<a href=yahoo.co.jp>yahoo</a>

の違いって何でしょうか。
echoで出力するときにあんまり" "や' 'で囲むと複雑になるので
囲まないでやりたいんですが、どう使い分けるんでしょうか。

985 :nobodyさん:2006/02/05(日) 20:12:39 ID:???
使いわけつーか、html4仕様で属性での " や ' が省略できる時の条件つーのが決められている。
自分で調べてみるかWeb制作板で聞いてみそ

986 :nobodyさん:2006/02/05(日) 20:13:28 ID:???
>>983
即席で申し訳ないが
$num = sscanf ($n, "%d");

987 :nobodyさん:2006/02/05(日) 20:19:21 ID:???
>>983
ついでに資料見っけたんで張る。
http://www.php.net/manual/ja/language.types.type-juggling.php#language.types.typecasting

echo (int)$n = "00000000236";
や、$nの型自体を変えたい場合は
settype($n, "integer")
としてもいいかも

988 :nobodyさん:2006/02/05(日) 20:19:55 ID:???
>>984
URIの場合は "" や '' で囲まなければならない。
1つのブラウザでたまたま表示できても、他のブラウザで表示できる保証はない。

<a href="http://www.hogehoge.foo/my document.html">test</a> みたいに、
URIに空白が含まれていたら、囲わないと殆どのブラウザで表示できなくなるぞ。

ちなみに、URIに空白文字の使用は認められている。



989 :937:2006/02/05(日) 20:21:24 ID:uUJqicme
おかげさまで解決できました
ありがとうございました

990 :nobodyさん:2006/02/05(日) 20:33:02 ID:???
>>983
条件にもよるけど、intval($n)とか(int)$nでいいと思う。

991 :nobodyさん:2006/02/05(日) 20:49:02 ID:???
>>931
今見たら404。
どなたか>>931と同じアイコンをアップしてくれぬか。

http://www.php.net/download-logos.php
のでもいいんだけども。

992 :>>953:2006/02/05(日) 20:52:41 ID:JmIOlMc7
ありがとうございます!!


993 :nobodyさん:2006/02/05(日) 21:24:21 ID:???
php-cgi.exeをコマンドライン上で起動すると、正常に機能するのに
AN HTTPDから起動させようとするとうまくいかないのはなぜでしょうか。
php.exeなら動くのでAN HTTPDの設定は問題ないと思うのですが・・・

994 :nobodyさん:2006/02/05(日) 22:15:33 ID:???
埋め

995 :nobodyさん:2006/02/05(日) 22:24:26 ID:???
>>993
その段階だと俺はphp-cgiで動くなぁ、とか言うコメントしかできないかも。
OSとかAN HTTPDの設定とか書いてくれると色々アドバイス貰いやすいよ。

996 :nobodyさん:2006/02/05(日) 22:27:28 ID:???
>>991
ちょっと待ってろ

997 :nobodyさん:2006/02/05(日) 22:34:49 ID:???
>>991
どうぞ。
すまんぬ、いつもの癖でパスつけちゃった
ttp://upld3.x0.com/index.html
多分見たら解ると思う

998 :nobodyさん:2006/02/05(日) 22:39:03 ID:???
【PHP】下らねぇ質問はここに書き込みやがれpart16
http://pc8.2ch.net/test/read.cgi/php/1139146534/l5

999 :nobodyさん:2006/02/05(日) 22:44:35 ID:???
1000だったら次スレの>>10がおっぱいうp

1000 :nobodyさん:2006/02/05(日) 22:44:58 ID:???
1000!

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

261 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)