【PHP】下らねぇ質問はここに書き込みやがれ 67 at PHP
[2ch|▼Menu]
[前50を表示]
100:nobodyさん
08/04/13 14:55:35 /XYVoWCv
>>96
すみませんでした。

101:nobodyさん
08/04/13 16:58:04 mSGmcBg3
質問です。
たとえば、数十個のディレクトリ名を定数として利用する場合、配列でなくdefineでも問題ないと思いますが、
状態遷移に必要な情報を管理する多次元の配列の定数が必要な場合、どのようにするのがベターなのでしょうか?
・グローバルなところに変数として置く(現在はこの考えを利用)
・オブジェクト定数で管理
・XML/YAMLなどでデータ分離
あたりが思いつくのですが、常套手段などがあったらご教授お願いします。

102:72
08/04/13 17:59:49
>>73-79
ありがとうございます
明日の6時になったら動作するか確認してみます

103:nobodyさん
08/04/13 18:29:39 cn35Eo4d
20で質問した者です。

ord()とchr()を使用することでバイナリの扱いを解決することができました。
答えてくださった方々、ありがとうございます。

もうひとつ質問なのですが、phpの配列の要素数に上限はあるのでしょうか?

要素数が100000くらいのときはプログラムが正常に動くのですが、
要素数が1000000くらいになると途中でプログラムが止まってしまいます。

どなたかご存知であれば教えてください。
お願いします。

104:nobodyさん
08/04/13 18:56:04 cn35Eo4d
103です。
追記します。
このようなプログラムを組んでおり、
容量が1MBを超えるようなファイルだとプログラムが途中で止まります。

$fno = fopen("sample.mp3", 'rb');
while (!feof($fno)) {
$data[] = fread($fno, 1);
}
fclose($fno);

105:nobodyさん
08/04/13 19:33:29
>>104
[PHP] 配列に値を入れていくとエラーになりプログラムが落ちます。
URLリンク(q.hatena.ne.jp)
と同じ現象じゃないかな。
つまりPHPスクリプト一つに許可されている使用メモリ量をオーバーしているんだと思うよ。

デフォルトでは8MBか16MBに設定されているらしいのに、
たった1Mのファイルでオーバーしちゃうなんておかしいと思われるかも知れないけど、
PHPは配列の要素毎にも変数の型を持っているだろうから、余計にメモリを食っちゃうんだろうね。

単純に読み込んだデータにバイト単位でアクセスしたいのなら、
$data = fread($fno, filesize("sample.mp3"));
として一つの変数へ一気に読んじゃえば、配列と同じに$data[0]って感じで読めるんじゃない?
上のは試してないから嘘かもしれないけど。

106:nobodyさん
08/04/13 21:43:31 RGnLfYK/
phpgroupwareを入れたら下記のエラーが出てしまいました

NOTE: You must have cookies enabled to use setup and header admin!*

ブラウザ側ではクッキーは有効にしてるんですが・・・・どうすればいいでしょう?


107:nobodyさん
08/04/14 00:14:07
このindex.cgiがエラーがでるんですが修正できますか?(属性755)
URLリンク(www.borujoa.org)


108:nobodyさん
08/04/14 00:42:56
そんな餌で(ry

109:nobodyさん
08/04/14 00:46:10
fscanfがおかしいですだって?

110:nobodyさん
08/04/14 04:32:32
>>98
教えてくれ

111:nobodyさん
08/04/14 07:07:30
>>110
>>1

112:nobodyさん
08/04/14 11:41:38 6hAyd3lA
浮動小数点を表示すると、元の数値によって指数形式になったり
ならなかったりします。どういうルールで変換されているんでしょうか。

php -n -r "print(floatval(1100000));" → 1100000 が表示される。
php -n -r "print(floatval(1200000));" → 1.2E+6 が表示される。
php -n -r "print(floatval(1300000));" → 1300000 が表示される。
php -n -r "print(floatval(1300000));" → 1.4E+6 が表示される。
php -n -r "print(floatval(1500000));" → 1500000 が表示される。

環境は以下の通りです。

$ php --version
PHP 5.2.5 (cli) (built: Mar 3 2008 14:30:26)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
with eAccelerator v0.9.5.2, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
with Xdebug v2.0.2, Copyright (c) 2002-2007, by Derick Rethans

OS:Windows XP SP2

113:nobodyさん
08/04/14 14:26:42
すごくくだらない質問ですが、教えて下さい。
PHP5に元から入っているSQLiteのバージョンは2ですよね?
これを、バージョン3にしたいのですがインストールがいまいち分かりません。
環境は、WinXP Apache2 PHP5 です。

DB板に書くべきか悩みましたが、
PHP関係なのでこちらに書きました。

114:nobodyさん
08/04/14 14:39:54
SQLite3はPDOでされます。

115:nobodyさん
08/04/14 15:31:07
>>114
日本語でおk

116:nobodyさん
08/04/14 17:23:23
えすきゅうらいとさんはぴーでぃーおでされます。

117:nobodyさん
08/04/14 18:17:04
質問です。

PHPを記述しているページのアドレスをhttp://○○.phpではなく
http://○○.htmlまたは.php以外のモノにしたいのですが
やりかたが分かりません。

PHPを使っていると思われるサイトでも
アドレスが、http://○○.htmlとなっているのを見かけるのですが
どうやっているのでしょうか?

知っている方がいましたら教えてください。



118:nobodyさん
08/04/14 18:24:35
>>117
htaccessのAdd-Type

119:nobodyさん
08/04/14 18:47:51
htaccessでリネーム?するんですね。
検索してやり方を調べてみます。ありがとうございました。

120:nobodyさん
08/04/14 19:11:38
リネームじゃない
Apacheに拡張子htmlをPHPとして動かすように指示するだけ
Add-Type application/x-httpd-php .html
とかにすれば拡張子htmlのものがApacheでPHPとして扱われる
まぁこれ以上は板違いなんで
.htaccessについて深く知りたければWeb制作板へどうぞ

121:nobodyさん
08/04/14 19:42:46
その昔、
拡張子phpを使いたいという理由だけでPHPを始めた俺が来ましたよ
(突っ込みは無用)

アドレスが*.phpなのがオサレなんだと思ってた時期もありました

122:nobodyさん
08/04/15 00:26:29
>>112
それってPHPじゃなくてもなるんじゃなかったっけ。
CPUに詳しい人に聞いた方が良いと思う。

123:すのっぶ
08/04/15 02:01:01 LJ3oHWbN
php限定という訳じゃなくてすいません。
md5だと32桁の16進数値になりますが、大文字小文字を区別した表示でもっと短いhashはどのようなものがありますか?
ある携帯サイトで送られてくるメールのURLにそれらしきものがあり、「RJgYbxmTqnN5」という表記でした。

124:nobodyさん
08/04/15 02:04:11


125:nobodyさん
08/04/15 02:12:30
それはbase64では

126:nobodyさん
08/04/15 02:38:46
crypt

127:nobodyさん
08/04/15 07:42:07 LJ3oHWbN
URLリンク(jp.php.net)
crypt だった。サンクス > 126

ちょっと古いサーバで試したんだけど、salt を指定しない場合、「$1$Qgv55ZYN$likCiswhSgaLSaWdJeObY.
」とかで、しかも毎回内容が変わってた。これはこれで役にたつものなの?どうやってパスワードチェックするんだろう。

ちなみにそのサーバの定数値は以下
CRYPT_SALT_LENGTH 12
CRYPT_STD_DES 1
CRYPT_EXT_DES 0
CRYPT_MD5 1
CRYPT_BLOWFISH 0

OS REDHAT 9

128:nobodyさん
08/04/15 09:26:21
指定されないソルトは乱数で生成されるから、それは正しい。

パスワードのチェックの時は、ソルトを読み取ってから
入力されたパスワードのハッシュを計算する

つ man 3 crypt


129:nobodyさん
08/04/15 14:10:49
ログ解析ソフトってあるじゃないですか。
あれの滞在時間とか、直帰率とか、再訪とか、
ああいうのの開発手法について、概要でも良いので
説明しているサイトをご存じないですか?
ググっても、ASPとかWeb屋とかが出てくるばかりで・・・・

130:nobodyさん
08/04/15 14:31:23
>>129
だいたいどういうことすればできるかイメージつくだろ。
クッキー、セッション、リファラーetc
それすらイメージできないうちは作れるレベルにないということ。

131:nobodyさん
08/04/15 14:43:24 tEWEzoyO
URLリンク(jp.php.net)
imapでpop3サーバーにつないで、読んだメッセージをDBにしまい
ごにょごにょしようかと思ってるのですが、
メッセージを既読にするにはどうしたらよいのでしょうか?

imap_setflag_full()
はimapでつないだ時だけ見たいだし、
imap_body()
に「既読フラグをたてないオプション」みたいのがあるので、読めば自動的に立つのかと思ったけど
だめっぽいです。

立てられないと、毎回すごい数のメールを見に行かなきゃならないのでちょっと現実的じゃないかなと。

わかりましたらお願いします。

132:nobodyさん
08/04/15 14:47:25
>>130
ログは取ってるんですよ。
IPアドレスとかUAとか、アクセス時刻とか。
それらをどういうふうにデータとして加工・保存していけばいいかのヒントになるようなものがあればということです

書き方が悪かったですね。スマソ

133:nobodyさん
08/04/15 15:31:02
藻前の望みをリストアップして1時間眺めれば判る。

134:nobodyさん
08/04/15 15:43:29 6h+mXfU6
うんかー02(urlつきだと書き込めないので省略)っていう2ちゃんねるビューワー機能のサイトがあるんだけど、
人大杉の板を.dat直読みさせることで、表示を可能にしてるらしい
.datがどこにあるか教えてください

例えば、ここのスレ スレリンク(php板) の.datってどこでしょうか

135:nobodyさん
08/04/15 15:49:37
アクセス毎に10MBぐらいのファイルの読み書きするのって負荷かかりますか?

あまり詳しくないのですがDB使う場合とファイルをそのまま読み書きするのでは
やっぱ違いますか


136:nobodyさん
08/04/15 16:02:39
>アクセス毎に10MBぐらいのファイルの読み書きするのって負荷かかりますか?
なんでこんな糞システムになるのか理解できないが改善できるなら改善してくれ
じゃないと色んなところに迷惑がかかる
アクセス数が1日数件なら問題ないけど

>DB使う場合とファイルをそのまま読み書きするのではやっぱ違いますか
違う
扱うデータ件数が多ければ多いほどDBのほうが有利

137:nobodyさん
08/04/15 16:19:15
10MBぐらいのファイルじゃわからんな。
10MBのログに吐き出すだけならデータベースよりも軽石。

138:135
08/04/15 16:28:06
レスどうもです
ちょっと説明不足でした
プログラムファイルが10MBというわけではなく読み書きするデータファイルが10MBあるということです
最初は0でだんだんたまっていくという仕組みです

cgiで動かしていたのですが10MBぐらいで鯖の限界がきました
なのでPHPで作り直そうと思い、どのやり方が負荷が少ないかということで聞いてみました

やはりDBの方がいいのでしょうか





139:nobodyさん
08/04/15 16:51:25
鯖の限界っていうのがどういうことかわからないけど
おそらく使用可能なメモリが足りてないんでしょ?
だとするとcgiがだめでphpなら平気そうとかそういうレベルじゃないような気がする
特にPHPやPerlでWebプログラム組んでる人は特段意識しないだろうけど
扱うファイルが膨大となるとメモリ管理を効率よくおこなうプログラムを意識しないとだめだと思う
全てを配列に読み込むとかしただけでも相当メモリ使用量が増えるから

というわけでどういうものなのか想像できないのでなんともいえないけど
プログラム側の設計とファイルの扱い方についてを根本的に変えないといけないと思う

140:nobodyさん
08/04/15 17:09:48
このindex.cgiがエラーがでるんですが修正できますか?(属性755)
URLリンク(www.filebank.co.jp)

141:nobodyさん
08/04/15 17:24:26
>>138
別にログにレコード追記するだけなら別に10Mが100Mでも遅くならんだろう。

ただまぁ、段々増えると言っている割りに、読み書きと言っているし、
なんとなく、file()とかで読み込んで...とか考えてそうだから素直にDBを使った方がいいね。
違ったらごめんよ


142:nobodyさん
08/04/15 17:41:39
アクセスログか何か?
配列に読み込んで追加して・・・とかやってるんなら追記モードでオープンすれば問題ないでしょ。
とりあえずもっと詳細な情報がないと何とも言えない。
>>136
データ件数が少なくてもリレーションや制約,データ構造のためにDB使う意味はあるよ。

143:nobodyさん
08/04/15 19:53:03
$binstr = "0x71,0x8E,0x01,0x00,0x00,0x00,0x00,・・・";
こんなデータの並びをバイナリにして、ブラウザからダウンロードさせたいと考えて
いるのですが上手くいきません。どなたアドバイスして頂けないでしょうか?

以下失敗例です・・・
$binarr = split(",", $binstr);
$bin = "";
for ($i=0; $i<count($binarr); $i++) {
$bin.= pack("c", $binarr[$i]);
}
header("Content-Type:application/octet-stream");
echo $bin;
exit();


144:nobodyさん
08/04/15 20:12:25
自己解決しました・・・
$bin.= pack("c", $binarr[$i]);

$bin.= pack("c", hexdec($binarr[$i]));

ん〜しかしpackの説明のとこで0xXXって感じで渡してるのに
なぜこれで上手くいったのかいまいち納得できず・・・

145:nobodyさん
08/04/15 20:38:20
HTTP_RequestでsetBasicAuth使わない場合は、
getResponseBodyでちゃんと返ってくるんだけど、
setBasicAuth使う&setMethod(HTTP_REQUEST_METHOD_POST)
すると
getResponseBodyしても何も文字列が返らない。

バグか何か?
どなたかご存じないですか?

146:145
08/04/15 20:39:06
ちなみに
setMethod(HTTP_REQUEST_METHOD_GET)
なら問題ありませんでした。

147:nobodyさん
08/04/15 21:11:59
変数に入ってる文字列を数式として評価できるのってevalだけですか?
$a="1+2";
とかがあったら3にしたいだけなんですが

148:nobodyさん
08/04/15 22:05:32
ども。
GDのimagecreatefromjpegを使っているのですが、
画像がでかいと死にます。
普通に死んでくれると問題ないんですが、
エラーメッセージも、返り血もなく、いきなり実行が中断されるので、エラートラップもしけません。
問題を回避する方法知ってる人いませんか?

149:nobodyさん
08/04/15 23:57:17
エログ見てみ。

150:nobodyさん
08/04/16 00:16:21
いつも見てますよエロゲ

151:nobodyさん
08/04/16 08:11:13 1M88tLAK
JpGraphで画像を出力したのですがどういうわけか携帯では見れません
もちろん画像形式はgifにしました
PCでは当然見れますし保存すると拡張子もgifです

考えられるのはキャッシュ化したファイルにはpngとなっているのですが
ダウンロードしてみると中身はちゃんとgifです。

どうすればいいでしょうか



152:nobodyさん
08/04/16 09:39:16
>>148
メモリーが足りてないんだろう。
memory_limitの値とかチェック。
あと、imagecreatefromjpegの前にファイルサイズとかチェックしろ。

153:151
08/04/16 10:28:41
自己解決しますた

154:nobodyさん
08/04/16 11:27:50 DHAOt7zZ
Dynamic EXtensionってなんですか?
これの設定がよくわかりません。
postgresqlやいろいろ入れていった場合
追加していけばいいのでしょうか?


155:nobodyさん
08/04/16 12:19:19 xAJOe1B+
関数の中でcookieを使うにはどうしたらいいのでしょうか?
下記のようにしているのですが、クッキーが有効となりません。

function cookieTest(){
if($_COOKIE["test"]<>"on"){
クッキーがない場合の処理
}
setcookie("test","on",time()+30);
}

156:nobodyさん
08/04/16 13:05:55
引数で渡す

157:nobodyさん
08/04/16 13:12:39 KGnhrG4i
.htmlの拡張子をphpファイルとして実行したいのですが、

.htaccessの

AddType application/x-httpd-php .htm .html

以外のやり方で、デフォルトで.htmlをphpファイルとして実行する方法はないでしょうか?
よろしくお願いします。

158:nobodyさん
08/04/16 13:16:48
httpd.conf(笑

159:nobodyさん
08/04/16 13:17:54
.htaccessも弄れないようなところで拡張子を誤魔化したいってのに不正のにほいがぷんぷんする。

160:nobodyさん
08/04/16 13:46:10
>>157
そんなにいやならフレームでも使ってろ
見た目はhtmlだろ

161:157
08/04/16 13:56:24 KGnhrG4i
>>160
いえ、ローカルのテストサーバ―として利用しているので、嫌とかではないんですが
毎回ディレクトリごとに.htaccessを設置するよりも、デフォルトで設定しておきたいのです。

AddType application/x-httpd-php .htm .html

これをhttpd.confに記述すればいいんでしょうか?

162:nobodyさん
08/04/16 14:05:29
>>161
>ディレクトリごとに
ルートに1つ置いとけばいいだろ

>これをhttpd.confに記述すればいいんでしょうか?
YES

まぁスレ違いもいいところだぜ・・・

163:nobodyさん
08/04/16 14:06:46
テストとして使ってるだけなら拡張子にこだわってるのはおかしいだろ。

164:131
08/04/16 14:11:58 QC7Y4msP
imap_setflag_full()
でフラグは立っていたみたいです。

imap_headerinfo()
で見ると、実際変わっていました。

しかし、imap_checkで変えるrecentの数や、
imap_searchでの検索でも、フラグが立っているとみなされません。

\\Flaggedをたてて、 UNFLAGGEDなんかでimap_searchしてみても
全権引っかかってしまいます。

From "hoge@hogehoge"
なんかで検索すると、うまく見つられてるようです。

常に1000件くらいメールがあるので、全部に対して処理をすると、読みこんで
メール解析したオブジェクト組み立てるだけで15秒〜30秒かかります。
DBに登録して・・・と考えると、ぜひ、新しいメールだけに処理をしたいのですが
なにか方法ありますでしょうか?

お願いいたします。

165:nobodyさん
08/04/16 14:32:44 KGnhrG4i
>>162
ありがとうございました

166:nobodyさん
08/04/16 14:36:42 pyqKRshm
>>155
$_COOKIEはグローバル変数だよ?

167:nobodyさん
08/04/16 14:41:52 pyqKRshm
>>155
あーわかった。それはクッキーに値が入ってない。
CやperlとかでCGI経験がないと、httpプロトコルが分らないから
クッキーはヘッダーで渡されているというのが分らないんだよね。

つまり、本文(html)を出力した後にクッキーは送出できないんだけど、
ここを理解しないと、今後同じデバッグに苦しむことになるよ。

解決策は、本文の前にsetcookieを呼ぶこと。
実装上のコツはノウハウだから、ケースバイケースでアドバイスが変わるよ。

168:nobodyさん
08/04/16 14:51:35
配列の最後の値をとりたいのですがそんな関数ありますでしょうか?
配列にいくつ値があるかはそのつど変わります。

以下のようにはできるのですが、もっと簡単な方法がありましたらよろしくお願いいたします。
$data = array('hoge','foo','fuga'...'bumobumo');
$str = $data[count($data)-1];

169:nobodyさん
08/04/16 15:02:38
>>168
ぱっと思い出せないけど、あるよ。

170:nobodyさん
08/04/16 15:06:13
>>168
$data[-1] を思い出してしまったたけど、end() があるよ。

171:nobodyさん
08/04/16 17:08:09
どなたかコレの使い方を教えていただけませんか?

AutoIndex PHP Script
URLリンク(www.moongift.jp)

どこで聞けばよいのか迷ったのですが、phpですのでこちらに書き込ませていただきました。
疑問点はこれを使う場合のディリクトリ構成です。
(AutoIndexフォルダ内に一覧表示したいものを入れるのか、その逆か)
また、必要があれば設定ファイルの変更箇所や、パーミッションの設定、アクセス制限の方法等も教えてください。

宜しくお願いします。

172:171
08/04/16 17:24:04
自己解決しました

173:nobodyさん
08/04/16 17:30:39
XML関係の関数について詳しく書かれた本/サイトを教えてください。

174:nobodyさん
08/04/16 17:36:18
>>171
ここで訊けばよいです。
URLリンク(autoindex.sourceforge.net)

175:nobodyさん
08/04/16 17:45:21
>>173
URLリンク(www.php.net)

176:nobodyさん
08/04/16 19:01:43
>>173
URLリンク(www.amazon.co.jp)とかいいんじゃないの?

177:173
08/04/16 19:16:54
>>175
マニュアル見ても訳が分からない・・・

178:nobodyさん
08/04/16 19:30:51
>>177
関数についてそこ以上に詳しく書かれたサイトは無いぞ.
メニューを上げれば他の関連モジュールもあるが。
URLリンク(jp.php.net)


179:nobodyさん
08/04/16 19:35:05
>>172で171を名乗っているのは別人です。
なので、完全には自己解決していませんが、>>174さんに教えていただいたフォーラムなどを参考に
ある程度進むことが出来ました。
一覧表示したいものがあるフォルダに、AutoIndexの内容物(index.phpなど)を入れたところ一覧表示されたのですが、
ユーザー名とパスワードによるアクセス規制がいまいちよく分りません。

初回動作で表示される設定画面で、「use_login_system」を「TRUE」にしたところまでは良いのですが、
どうやらそれに関係なく、誰でもファイルにアクセス出来る状態になってしまいます。
ユーザー名とパスワードを設定する.htpasswd.autoindexへの記述も、デフォルトで暗号化されているため
どうやってIDとパスを生成するのかもわかりません。
どなたかご教授願います。

180:154です。
08/04/16 19:35:21 DHAOt7zZ
だれか154の質問に答えてください。
よろしくお願いします


181:171
08/04/16 19:51:41
>>179
なんで私を名乗るんですか?
自己解決済みです。お騒がせしました。

182:nobodyさん
08/04/16 20:04:44
>>154
本当にDynamicに(実行時に)エクステンションをロードする必要があれば(って言うかその必要がある場面がわからんぞ)
dl関数使ってロードできる(けど使ったことない)。
実行時にロードする必要が無ければ
使いたいエクステンションを所定のフォルダに置いて
php.iniをいぢればOK(これは普通のやり方)

183:nobodyさん
08/04/16 21:09:13
>>147
substrを駆使すれば可能です

184:nobodyさん
08/04/16 22:33:34
>>168
array_pop

>>154
dllの事だろ
extension=php_pgsql.dll
こんな感じでiniに追記
詳しい事は環境がわからないと何とも言えない

185:nobodyさん
08/04/16 22:38:20 JLMZOI/r
PHPがオブジェクト指向になってから全然わかんないです。

関数メインで作っていたのを、今後の為に抽象化レイヤーに
書き換えようと思ってググリました。

$pdo = new PDO('hoge','huga','honya');な場合において
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$pdo->setAttribute(ATTR_ERRMODE,ERRMODE_EXCEPTION);
という表記を見たのですが、これは同じと考えて良いんでしょうか。

::hogeは静的メソッドなので、PDOのオブジェクトのインスタンスである$pdoの中では
多分PDO::を省いても良いって事なんだろうなぁと思うんですが
書き方の習慣として、どちらの書き方が推奨されますでしょうか。

186:nobodyさん
08/04/16 22:46:10
>>185
違う
PDO::ATTR_ERRMODE
これはクラス定数
ATTR_ERRMODE
これだと定数を参照する事になる


187:nobodyさん
08/04/16 22:48:55
>>185
あ、因みにクラスメソッド内での参照の仕方は
self::ATTR_ERRMODE
って感じになる
詳しくはここらあたりかな・・・
URLリンク(jp.php.net)

188:nobodyさん
08/04/16 23:05:09
>>185
おいおいおい・・・なぜ憶測でコードを書こうとする。他言語でOOPの経験があるわけでもないようだし。
ちゃんとマニュアルに書いてあることだから言語仕様で疑問に思うことがあったらこんなとこで聞く前に即参照しなされ。

189:nobodyさん
08/04/16 23:19:55
>>186-187
理解できました。
ありがとうございます。

グローバル定数のPDO_ATTR_ERRMODEが5.1まで使用されていたけれど
今後はどんどんPHPを拡張していくから、グローバル定数増やすの嫌だから
PDO::ATTR_ERRMODEの様にクラスで定義されてる定数で呼び出してくれって事ですね。

190:nobodyさん
08/04/16 23:25:36
>>188
php.netのクラスの部分は読んだんですけど
他言語でOOPの経験っていうか、特にJAVAの経験がないから
クラスの部分の説明が全然わかんないんですよ。
聞いても良いじゃないですか。

勉強してるだけで別に壊れて危険な物は作ったり公開してる訳じゃないんで
かっかしないでくださいよ。

191:nobodyさん
08/04/17 00:26:56
かっかじゃないよ。呆れてるんだよ。

192:nobodyさん
08/04/17 01:00:13
>>190
だったらJavaやってこいよ
PHPがOOPに対応してるのはJavaからの移行者のため
PHPしかやらないような人間が無理してOOPする必要はない
PDOは確かに便利だが使い方わからないならネイティブ関数使うとか他に方法はある
そんなにクラスを理解したいなら先にJavaのサイトまわってこいよ
OOPのプログラム手法でわからないとこの質問ならまだしも
OOP教えてくれっていうのはお門違いだろ
手取り足取り教えてやる義理はない

193:nobodyさん
08/04/17 02:10:19
       .ni 7       .M
     l^l | | l ,/)     | i|                 _/\/\/\/\/\/\_
     ', U ! レ' /   / ̄ ̄ ヽ,              \                 /
     /    〈   /        ',        .n      < こっこしないでくださいよ >
          ヽっ{゚}  /¨`ヽ {゚},       l^l.| | /)   /                 \
       /´ ̄ ̄ .l   ヽ._.イl  ',      | U レ'//)  ̄|/\/\/\/\/\/\/\/ ̄
     /  ィ-r--ノ   ヘ_/ノ   ',    ノ    /
        ,/        |! |    ヽ rニ     |
       丿'        W     ヽ、  `ヽ   l
     . !/                  ヽ、 |   |

194:nobodyさん
08/04/17 02:12:07
おまえはOOP言いたいだけちゃうんかと

195:nobodyさん
08/04/17 02:57:25
>>194
スレリンク(php板)
ほれこっち池

196:nobodyさん
08/04/17 08:49:20 YHuC7Xot
質問なんですが
例えばショップサイトで商品のデータをDBに入れます

それを呼び出すときは **.php?category=01&data=0000
とかで呼び出すわけですよね

それでこの商品の数が膨大になったりアクセスが増えると負荷がかかると思うのですが
どのような対処方があるのでしょうか?

鯖の性能を上げるといっても何がどうなってるのか概念みたいなものがわかりません
おおまかでいいのでご教授ください

197:nobodyさん
08/04/17 09:57:43
加齢に擦るー

198:nobodyさん
08/04/17 11:00:28 M2mwea+h
PHPで書いたWebページからサーバー上のプロセスを起動したいが、
終了するのを待ちたくない場合はどうすりゃいい?

一応execでC++で書いたプログラム(仮にaiueoという名前にする)を起動し、
aiueoの中でfork(), exec()してみた.親プロセス(aiueo)のほうはwaitを
しないで終了すればokかなと思ったら、aiueoがゾンビになって
結局起動した子プロセスが終了しないとwebページを操作できない・・

こーいう場合どうしたらええのん?

199:nobodyさん
08/04/17 11:11:15
>>196
俺の経験則。反論もあるだろうし、信じなくて良い。

まずJOINを一つも無くす。その状態で並び替え条件にインデックスを張る。
そして一つのテーブルをシーケンシャルに検索する。

これはパフォーマンスをあげるための方法、
普通の設計ではJOINを無くすなんてことはしない。
むしろ逆。正規化をする。

検索条件にインデックスをはっても良い。
検索条件にインデックスをはることで遅くなることもある。注意。
like検索する所ははっても無意味。

10万件ぐらいならば、それが一番速い。

200:nobodyさん
08/04/17 11:53:39
場合によって「あえて正規化しない」ってのはアリだと思うけど
ドラゴンボール板向けのネタだよなとも思う。

201:nobodyさん
08/04/17 13:43:22 M2mwea+h
>>198
解決.親プロセスと子プロセスの両方で、fclose(stdout)が必要だった.

おさわがせしました

202:nobodyさん
08/04/17 15:08:09 yQIY/Upa
もし、そういった設計をされてる方がいらっしゃいましたら聞きたいのですが、
DBにバイナリ(画像等)を登録するメリットを教えてください。

203:nobodyさん
08/04/17 15:29:12 K4JzsNpf
フレームワークで入門用のものでおすすめありませんか?
シンプルなものからはじめてコード読んで勉強したいと思ってます

204:nobodyさん
08/04/17 15:34:59
すいません。くだらない質問ですが教えて下さい。

いま、無料の掲示板(PHP)を使おうと思っているのですが
googleを入れたく思っています。

表示エリアには
// 表示
echo " <tr><th colspan=¥"2¥" $_class><p class=¥"header_menu¥">$res$edit$del</p>$title</th></tr>¥n";
echo " <tr>¥n";
echo " <td class=¥"t_row1¥">$name<br /><br />$id</td>¥n";

とあり、$IDの後に入れたいと思っています。

入れるgoogleは

<script type="text/javascript"><!--google_ad_client = "pub-11111111111";/* 125x125, 作成済み 08/04/16 */google_ad_slot = "11111111111";google_ad_width = 125;google_ad_height = 125;//-->
</script><script type="text/javascript"src="URLリンク(pagead2.googlesyndication.com)">
</script>

となっております。

その場合どのよう入れれば表示しますでしょうか?
上の行で$で指定する文章を入れるのが良いのでしょうか?

恐れ入りますが、ご教授下さい。

205:nobodyさん
08/04/17 16:00:22
>>204
//表示 の直後に下記の5行
$google = <<<OMAEHAKUDARAN
<script type="text/javascript"><!--google_ad_client = "pub-11111111111";/* 125x125, 作成済み 08/04/16 */google_ad_slot = "11111111111";google_ad_width = 125;google_ad_height = 125;//-->
</script><script type="text/javascript"src="(p)URLリンク(pagead2.googlesyndication.com)">
</script>
OMAEHAKUDARAN;

であとはecho文の入れたいところに$googleを入れる。たとえば
echo " <td class=¥"t_row1¥">$name<br /><br />$id $google</td>¥n";


206:nobodyさん
08/04/17 16:01:34
あ、わりぃ。 rep2でリンクに付く(p)までコピーしてもた。
そこは無視でよろ。

207:nobodyさん
08/04/17 16:09:21
ちょっと酷いよ。
<<<OMAEHAKUDARAN

208:204
08/04/17 16:12:04
やっぱりうそですよね・・・。T_T

209:nobodyさん
08/04/17 16:14:58
いや、あってることはあってるよw

ヒアドキュメントをより先にまず "は\でエスケープすること学ぼう

210:204
08/04/17 16:35:24
やっぱり出来ない。現状

$google = <<<GOOGLE
<script type=¥"text/javascript¥"><!--google_ad_client =¥"pub-1111111111¥";/* 125x125, 作成済み 08/04/16 */google_ad_slot =¥"pub-1111111111¥";google_ad_width = 125;google_ad_height = 125;//-->
</script><script type=¥"text/javascript¥"src=¥"URLリンク(pagead2.googlesyndication.com)">
</script>
GOOGLE;


として入れてるんですが、HTMLはき出した後ソースを見ると円マークが残ったままになっています。本来HTMLにはき出した後のソースは消えていますよね・・・。

やはり初心者にはむりですかね・・・・。

211:nobodyさん
08/04/17 16:44:41
>>210
>205で言われた通りにやろうよ。
ヒアドキュメントに¥でエスケープは要らない

212:204
08/04/17 16:51:44
すいません。
ありがとうございます。
ヒアドキュメントという言葉を知らず、見落としました。

現状何となくエリアが出たのですが、表示はしていませんが
何となく出そうな感じまで行きました。


ちょっこり、色々いじってみます。ありがとうございました。

213:nobodyさん
08/04/17 17:03:04
ひゃあドキュメントってなんかエッチな感じがするな。なぜだろう?ひゃあ!

214:nobodyさん
08/04/17 17:50:59
またオマエか

215:nobodyさん
08/04/17 18:01:14
春は新しい出会いにときめく学生さんがここに遊びに来てるんだからオマエとかいわず温かい目でみてやれよ

216:nobodyさん
08/04/17 19:02:05
>>212
初心者か否かは関係ない。
真剣やる気があるかどうか、人の話を聞けるかどうかが問題。

217:nobodyさん
08/04/17 19:12:00
>>216
そんなくだらんレスするくらいなら、>>202>>203にでもレスしろよ。

218:nobodyさん
08/04/17 19:14:45
>>217
そんなくだらんレスするくらいなら、>>202>>203にでもレスしろよ。

219:217
08/04/17 19:23:39 yQIY/Upa
>>202
やったこと無い。
>>203
ちいたんじゃダメか?w

220:nobodyさん
08/04/17 19:45:53
すいません、教えてください。
Apache2.63にPHP5.25をインストールしました。
PHPファイルをモジュールで動かしてたのですが、勉強のため一部のファイルのみCGIとして動かしたいんです。

動かしたいファイルのソースはこれです。これを実行させるとechoで出力はできるのですが、#!C:/php5/php-cgi -qが文字列として表示されてしまいます
ということはCGIとして動いてないからなんでしょうか・・・?
#!C:/php5/php-cgi -q
<?php
echo 1111111;
?>

221:nobodyさん
08/04/17 20:19:24
CGIとして動かすためにしたことは?

222:nobodyさん
08/04/17 20:30:25
>>221さんありがとうございます
一行目に#!〜おまじないをいれてみましたができません

httpd.confにcgiとして設定しないとできないのでしょうか?

223:nobodyさん
08/04/17 20:46:52
httpd.confをCGIが動くように設定したのか?してなかったら恥

224:nobodyさん
08/04/17 21:23:22
てかid出せボケ

225:nobodyさん
08/04/17 21:31:27
>>224
氏ね答えられない低脳

226:nobodyさん
08/04/17 21:34:40
このスレはこの程度か!
どうもありがとうございました

227:nobodyさん
08/04/17 21:35:07
いえいえおよび出ないですよ

228:nobodyさん
08/04/17 21:39:06
>>225-227
無職乙

229:nobodyさん
08/04/17 21:40:04
>>228
ニート乙

230:nobodyさん
08/04/17 21:40:35
マジきめええwwww
答えられないならでてこなくていいからw

231:nobodyさん
08/04/17 22:08:12
つうかもういい加減id出してない質問にレスするのやめようぜ

232:nobodyさん
08/04/17 22:12:02
仕切り厨でましたね

233:nobodyさん
08/04/17 22:46:48
仕切り厨でもなんでもいいがルールぐらい守れミジンコ共が

234:nobodyさん
08/04/17 22:47:05
粘着妖精さんもスルー

235:nobodyさん
08/04/17 22:56:16
>>220=225=226=230=232=234
スレリンク(php板)
ほれこっち池

236:nobodyさん
08/04/17 22:57:36
phpで、携帯のサイトを作っているのですが、
セッション管理が必要なサイトで、
セッションIDの情報をURLに埋め込んでいます。

ただ、ユーザーの中にセッションIDが入ったURLをブックマークとして
公開する人がいて、セッションハイジャックが毎日行われています。

これって、仕様として客に説明しているのですが、
客が納得してくれず、携帯であるが故に技術的に不可能なことを説明しているのですが堂々巡りです。

こういう場合、どのような資料を提示して納得してもらえるのでしょうか?
宜しくお願いします。

237:236
08/04/17 22:58:55 8cCEOmJ0
すみません、下げていました。

238:nobodyさん
08/04/17 23:00:47
有効期間つければ?

239:nobodyさん
08/04/17 23:02:20
>>236
仕様って!!www
そんなサイトでセッションIDを生で埋め込むなよ

240:236
08/04/17 23:08:32 8cCEOmJ0
>>238
アドバイスありがとうございます。
有効期間はつけているのですが、
短いと、すぐにセッションが切れると苦情が来るし、
長いと、2chやブログでURLが貼られた場合に、セッションハイジャックが多発してしまします。
結局、有効期間ですと根本的には解決されないのではというのが結論です。

>>239
いや、携帯のサイトですから・・・

241:nobodyさん
08/04/17 23:13:21
>>240
IPの範囲みたりとかしたら?
あとauはクッキー使えるし

242:nobodyさん
08/04/18 00:07:02
IPアドレスや個体識別番号を持たせておけばいいだけじゃないの?

243:nobodyさん
08/04/18 00:09:22
URL埋め込みのSIDだけで何とかしようと思うほうがどうかしてる

244:nobodyさん
08/04/18 00:30:00
んむ クッキーがどうとか全く関係ないな
セッションハイジャックの対策をしていない事が問題なだけ

245:nobodyさん
08/04/18 00:33:53
「セッションハイジャックが毎日行われています。」

「fscanfがおかしいです。」も好きだけど、これも気に入った。

246:nobodyさん
08/04/18 00:40:53
無知なクライアントでよかったねぇ
うちの下請けが「これが仕様です」なんて言ってきたら二度と仕事回さないぞ

247:nobodyさん
08/04/18 00:52:58
>>240
> いや、携帯のサイトですから・・・
携帯サイトやからセッションIDを生で埋め込まへんねんて

248:nobodyさん
08/04/18 01:40:20
mixiとか大手はどうしてんだろ?

249:nobodyさん
08/04/18 01:46:33
uidじゃね?

250:nobodyさん
08/04/18 06:04:41
if (!isset($a))
$a = "hoge";

isset($a) ? $a : "hoge"
をもっと簡潔に(短く)書く方法はありますか?

251:nobodyさん
08/04/18 06:40:54
あるけどそんな微々たるところの効率なんか工夫しようとすんな

252:nobodyさん
08/04/18 13:48:09 VW/Du+vX
掲示板つくってます。
【日付,名前,本文,削除pass,IP】とデータをログファイルに残してます。
出力はこのログを頭から順にだしてます。

ここから返信機能つき掲示板に組み替えたいのですが、
ログファイルにどのようにデータを残し、
どのように出力するように動作させたらよろしいのでしょうか?
流れだけでもどうかご教授お願いいたします。



253:nobodyさん
08/04/18 14:03:31
>>252
とりあえず全てのスレッドにユニークなIDをつける。

新しいテーブル(データベースの場合)、またはファイルを作成。

【ユニークID,本文】でデータを取る。

ユニークIDが新テーブルと一緒の物だけを表示。

(例) データベース使ってる場合のsql
>>252の作ってるテーブルのユニークID(55)を一覧する場合
select * from new_table where ユニークID = 55

こんな感じでいいのかな?

254:nobodyさん
08/04/18 14:04:08
まずデータにIDが必要

255:nobodyさん
08/04/18 14:14:18 VW/Du+vX
ありがとうございます、勉強になりました。
さっそく取り掛かります。
ありがとうございました。


256:nobodyさん
08/04/18 14:48:16
正規表現にマッチした数を返してほしいのですがそんな関数はあるでしょうか?
以下だったら3を返してほしいです。
$preg = "12HOGE.;asd123HOGE.;52HOGE";
/(\d+)HOGE/

257:nobodyさん
08/04/18 14:52:05
>>256
そのものずばりではないが
preg_match_all

258:nobodyさん
08/04/18 14:54:12
返して欲しいんだからズバリなんじゃないの

259:nobodyさん
08/04/18 16:06:53
>>257
なんでも正規表現で答えれば間違いないと思っている馬鹿って何なの?
それしか解決方法を知らないの?

260:nobodyさん
08/04/18 16:07:57
正規表現嫌なら煽ってないでお前が答えてやれよ

261:nobodyさん
08/04/18 16:21:37
ずばりそのものだろ?

262:256
08/04/18 16:36:42
自己解決しますた
ほんと使えねえカスばっかだな

263:nobodyさん
08/04/18 16:53:22
fscanfがおかしいです

264:nobodyさん
08/04/18 16:54:10
>>256

preg_match_all
返り値
パターンがマッチした総数を返します(ゼロとなる可能性もあります)。 または、エラーが発生した場合に FALSE を返します。

これより楽な方法はないよね

265:nobodyさん
08/04/18 16:57:20
>>262
またオマエか

266:nobodyさん
08/04/18 17:07:53
ID出さないやつにご丁寧に答えて議論してやってるお前らが微笑ましい

267:nobodyさん
08/04/18 17:48:00
ID出す出さないに関係なく自分の糧になるのなら質問も回答もするのが俺様のセオリー

268:nobodyさん
08/04/18 18:10:03
右乳首が痛いのですがどうすれば治りますか?
バージョンアップするしかないのでしょうか?

269:nobodyさん
08/04/18 18:10:22
preg_match_allの第三引数で
変数にマッチした値を格納できますが、
$matched[0]にあたる値はいらないので変数に格納しないでほしいのです。

$matched[1]とかは(?:)でできるのは知っています。
$matched[0]はどのようにすればいいのでしょうか?


$str = "1234abs=2;1234abs=7;432abt=3;";
preg_match_all("/[\d]+abs/",$str,$matched);

270:nobodyさん
08/04/18 18:10:35
正規表現がダメな理由は、その処理速度の遅さ。
forループ文の中に、正規表現で処理するロジックが入っていたら、それこそ最悪。
また、正規表現の処理のために仮想メモリーを浪費するため、異常なメモリーの食い方をする。

現実的に出来るかどうかを検証せずに、出来る出来ると主張しているところが青臭さを感じるといっただけ。

271:nobodyさん
08/04/18 18:20:24
正規表現は神

272:nobodyさん
08/04/18 19:09:30
否定するのは誰でもできます
解決方法をかけない奴はいくら言ってもダメ

273:nobodyさん
08/04/18 19:32:15
特にお前とかな

274:nobodyさん
08/04/18 19:40:42
>>270
現実的に出来るかどうかを検証してから、

ダメと主張してくださいねw


275:nobodyさん
08/04/18 19:44:40
方法を提供もしないでこれはダメあれはダメなんて幼稚すぎる

276:nobodyさん
08/04/18 20:22:29
>>270
そりゃ組み方が下手なだけだろ

277:nobodyさん
08/04/18 20:27:33
その遅い正規表現は何秒かかるの?
それが問題になる処理じゃなければ使ってもいいだろ。
遅いってんならPHP使わないでCで組めや

278:nobodyさん
08/04/18 20:38:41
>>270さん正規表現に変わる手法を教えてください

279:nobodyさん
08/04/18 20:54:41
代案も出さずに批判するとは民主党もびっくりだわw

280:nobodyさん
08/04/18 21:33:57
ここまで技術的な考察まで書いてやっているのに、
人に代替案まで求めるって、どこまでスィーツ脳なんだ?

技術者としての素質もなければプライドもないのかね?

281:nobodyさん
08/04/18 21:34:58
スイーツ脳なんて特徴的な言葉使うのお前だけ
よく常駐して煽ってるいつもの馬鹿か

282:nobodyさん
08/04/18 21:36:11
>>281
おまえもな

283:nobodyさん
08/04/18 21:36:48
>ここまで技術的な考察まで書いてやっているのに

ぷっ



284:nobodyさん
08/04/18 21:38:57
技術的(笑)
考察(笑)

285:nobodyさん
08/04/18 21:47:56
(笑) (笑)

286:nobodyさん
08/04/18 21:57:15
()笑

287:nobodyさん
08/04/18 21:58:07
代替案が欲しいわけじゃないんだわ

お前さんが本当に代替案を考えられる技術があるのか
その方法が標準の正規表現関数と比べてどの程度早くなるのか
それが知りたいだけ

288:nobodyさん
08/04/18 22:03:28
真性キティにマジレスカコワルイ

289:nobodyさん
08/04/18 22:32:13
口だけだったみたいだからあんまりいじめないであげよ

290:nobodyさん
08/04/18 23:54:36
>>289
他人のふりせずに素直にやめてくださいって言えよw

291:nobodyさん
08/04/19 00:43:26
実力がある人って批判だけするとこみたことないねえ
かならず何らかの提案をもってきてくれる

292:nobodyさん
08/04/19 01:14:59
批判だけする人って
勘違い君が多い

293:269
08/04/19 01:26:36
お願いします

294:nobodyさん
08/04/19 01:36:11
だから、必死になって代替案出せって何よ?
本当は知りたいくせに、煽っているってるって、
好きなくせに女の髪の毛引っ張って気を引こうとしている中年男と一緒だろw

295:nobodyさん
08/04/19 02:01:36
池沼うざい

296:nobodyさん
08/04/19 02:08:33
本当に知りたいと思ってる人はいないよ。
PCREのパターン展開エンジンを*PHPで*自前実装したい人だけが
高度な技術的考察をしとけばいい。

/^\d+$/ → ctype_digit()
/^Mozilla/ → strpos(), strstr()
>>256のお題がこんな話に見える素質がなくてよかった。

297:nobodyさん
08/04/19 02:27:54
>>293
>>11をちゃんと読んでから出直してこい


298:nobodyさん
08/04/19 02:50:25
>>294
いや、批判するなら最初からレスしなくていいと思ってる

299:nobodyさん
08/04/19 06:08:17
>いや、批判するなら最初からレスしなくていいと思ってる

馴れ合いキモ

300:nobodyさん
08/04/19 06:14:31
>>293
第4にPREG_OFFSET_CAPTURE入れて
0をunsetしれ

301:nobodyさん
08/04/19 10:19:29
>>296
CTYPEはそれとイコールじゃないよ。
俺も昔つっかかった

302:nobodyさん
08/04/19 12:03:10

【迷言ランキング】
 1 : fscanfがおかしいです
 2 : ここまで技術的な考察まで書いてやっているのに

トップ揺るがず。




303:nobodyさん
08/04/19 12:44:33
質問です。
<?php
$word = $_POST['text'];
$pointer=fopen("./log.dat", "a");
flock($pointer, LOCK_EX);
fputs($pointer, $word);
flock($pointer, LOCK_UN);
fclose($pointer);
?>
<form action="パス" method="post">
<input type="text name="text" size="30">
<input type="submit" value="送信">
</form>

こんな感じのを応用して簡単な掲示板を作ろうと思うのですが、
更新すると何個も同じものを送信してしまいます。
どうすればよろしいのでしょうか?

304:nobodyさん
08/04/19 13:05:00
>>303
同じものであるか判定する処理

真だったら拒否,偽だったら書き込み

305:nobodyさん
08/04/19 13:10:36
>>303-304
>>1


306:nobodyさん
08/04/19 13:41:34
PDO+SQLite使えば楽なの何故いまだファイル使うかなぁ

307:303
08/04/19 14:27:57 EugqgBl5
>>304 その処理が分からないです…
>>306 サーバーがSQLite対応してないです

308:nobodyさん
08/04/19 14:56:51
>>303
更新すると同じものを送信するのはブラウザ側の問題なので、サーバで二重投稿かデータチェックする。

ケース1)
ログファイルの最後に書き込まれたデータと比較して、同じならアウトにする。

ケース2)
フォームにセッションを使ってユニークIDをhiddenに埋め込む。
サーバにhiddenで送られてきたユニークIDを見て、セッションと同じ値でなければアウトにする。

309:nobodyさん
08/04/19 15:46:00 nFas9Qcl
?

てst

310:nobodyさん
08/04/19 15:49:34 nFas9Qcl
マックからフォームで〜を入力すると?(←2chではwinだとハテナに見えるかもしれません)となってしまいます。
これをログに記録すると、文字化けしてしまいます。

マックからの「〜」を文字化けしないでログに書き込むにはどのような方法がありますでしょうか?




次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5376日前に更新/238 KB
担当:undef