トップページphp
1001コメント305KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2006/02/24(金) 22:05:48ID:YHkZgU8b
PHPに関するくだらねぇ質問用スレです。 
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。 

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

本スレ【PHP】質問スレッドpart33【php】
http://pc8.2ch.net/test/read.cgi/php/1140027592/l50

前スレ【PHP】下らねぇ質問はここに書き込みやがれpart16
http://pc8.2ch.net/test/read.cgi/php/1139146534/l50

過去スレは>>2
0908nobodyさん2006/03/15(水) 00:34:04ID:???
>>907
それ、偶然動いてるのか環境依存なのか言語仕様なのか、動きを見ただけでお前は分かるのか?
0909nobodyさん2006/03/15(水) 02:02:25ID:???
>>908
>907じゃないが、俺なら数十回は試すな。
知的探究心ってのは止められないね。
その中で出てきた結果から憶測を何度も繰り返す。
再度何度も試し憶測どおりだったら頭の中に入れとく。

ところでPHPで、OSが違うと処理が変わる事ってあるん?
機会に便乗して質問してみる。
0910nobodyさん2006/03/15(水) 02:19:33ID:???
>>909
数十回試して同じ結果ならそれが正しいと?
0911nobodyさん2006/03/15(水) 02:27:00ID:???
>>910
正しいって言ってるか?好奇心の話だろ?

>>909
そんな話は聞いたこと無いな。インストールはまったく違うけど
0912nobodyさん2006/03/15(水) 02:33:21ID:???
マルチバイト関数はwinでのバグなのか挙動が違うって話はあったような・・

なんか話がずれてる人同士が言い合ってて不毛そうなのでやめたら?
0913nobodyさん2006/03/15(水) 02:36:17ID:???
>>907
むしろお前が暇人
0914nobodyさん2006/03/15(水) 03:14:22ID:???
>>913
このスレでそれは禁句(爆)
0915nobodyさん2006/03/15(水) 04:09:05ID:???
>>908
2〜3回試せば十分。ヲタは何事も粘着質でキモイな。

>>913
なんで? 5分もあれば出来ることだろ。
0916nobodyさん2006/03/15(水) 04:34:09ID:A2wD7hwK
質問です。
print関数の出力先を変える関数、方法をおしえてください。
0917nobodyさん2006/03/15(水) 05:10:12ID:???
>>915
危険なプログラマハケーン
そんなハンパな知識でWebアプリ組むなよ
0918nobodyさん2006/03/15(水) 05:11:37ID:???
>>916
ob_start()、ob_get_contents()
0919nobodyさん2006/03/15(水) 05:11:44ID:???
>>916
どこに変えたいの?
0920nobodyさん2006/03/15(水) 05:13:11ID:???
>>917
お前みたいなヤツは長生きしそうだな。
0921nobodyさん2006/03/15(水) 05:16:13ID:???
ヲタ同士喧嘩してないで、一緒に秋葉原でピザでも食ってろデブ。

はい、次の質問どうぞ。
0922nobodyさん2006/03/15(水) 05:20:12ID:???
アルテマウエポンはどこで手に入りますか
0923nobodyさん2006/03/15(水) 05:35:22ID:???
>>922
まずジュノン近くの湖へ行きましょう。
ボスが居ます。
戦闘終了後(まだ倒してない)ぶアルテマウェポンがどっか飛んでくのでぶつかって何度も倒しましょう。
今度は直線に飛び始めるので、止まったら再度戦闘を仕掛けて倒しましょう。
アルテマウェポンがコスモキャニオンか古の森で止まったら最後です。
おめでとうございます、アルテマウェポンをゲットします。
0924nobodyさん2006/03/15(水) 05:36:19ID:???
ありがとうございます。これで悔いはありません。
0925nobodyさん2006/03/15(水) 07:18:48ID:???
>>922
まずおもちゃの銃を手に入れろ
少年が倉庫へ行くためのカードキーの場所まで連れて行ってくれるところでカードキーを落とす敵の奥で手に入る
8章以降でおもちゃの銃をアルテマウェポンにチューンできる。20万ギルほど必要
0926nobodyさん2006/03/15(水) 08:44:03ID:???
今からここはFF専用下らねぇ質問スレになります
0927nobodyさん2006/03/15(水) 09:12:36ID:???
>>922
まず、となり
0928nobodyさん2006/03/15(水) 09:17:17ID:???
>>907
ソース見た方がはやい
0929nobodyさん2006/03/15(水) 09:58:51ID:???
>>915
2〜3回くらいならPerlの連想配列ですら格納順でループしちゃう可能性があるけどなw
0930nobodyさん2006/03/15(水) 10:14:44ID:???
>>909
配列みたいな基本部分では多分変わんないと思うけど、
システムコールを呼んでる部分では微妙に違うとこあるね。
そういう中身を想像できる人ならあまり気にならないんじゃない?
0931nobodyさん2006/03/15(水) 10:18:36ID:???
>>912
そういや、4.4.1でallow_url_fopenがバグったのはWin版だけだったね。
0932質問2006/03/15(水) 10:38:37ID:48VnBYob
"/head.bin"と、"/data/body.bin"というファイルを、
"/data/hoge.bin"として結合する方法を教えてください。
それぞれのファイル内容をfread()で$headと$bodyに読み込んで、

$ToFile = fopen("/data/hoge.bin","wb");
fwrite($head.$body,$ToFile);
のようにしてみたのですが、
エラーが出て、"/data/hoge.bin"のファイルが、サイズが0の状態で出力されます。
この方法は正しくないのでしょうか?
御教示お願い致します。
エラーメッセージの内容は、今家にいないので、帰ってきてから書きます。
0933nobodyさん2006/03/15(水) 10:50:35ID:???
fwrite($ToFile,$head.$body);
では。

そもそも連結しなくたって、
fwrite($ToFile,$head);
fwrite($ToFile,$body);
2回書けばいいだけでは。
09349322006/03/15(水) 11:11:38ID:F5a3ZDp1
>>933
> fwrite($ToFile,$head.$body);
> では。
そうでした。携帯からだったので書き写し間違えてました。PCのほうは正しく書いてます。

2回書けばいいんですか。帰ったら試してみます。
0935nobodyさん2006/03/15(水) 11:29:41ID:???
すいません。スクリプトの最初と最後でmicrotimeでスタンプ取得して、
その差を求めてベンチ取ってるんですが、
なぜかときどき結果がマイナスになってしまうことがあります。
なぜなんでしょう??? ありえないですよね・・・
0936nobodyさん2006/03/15(水) 11:45:42ID:???
>>935
すごい速いとか
0937nobodyさん2006/03/15(水) 11:48:18ID:???
光の速度を超えちゃったんだね
0938nobodyさん2006/03/15(水) 11:53:25ID:???
>>935
時刻あわせかな?
0939nobodyさん2006/03/15(水) 11:54:21ID:???
プログラムミスだと思うよ。
0940nobodyさん2006/03/15(水) 12:06:52ID:???
>>935
ちゃんとスペースで分割してる?
0941nobodyさん2006/03/15(水) 12:14:33ID:???
>>935
ソース出せ
0942nobodyさん2006/03/15(水) 13:06:22ID:???
つーかマニュアルにあるな。
function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
0943nobodyさん2006/03/15(水) 13:16:44ID:???
>>940 スペースで分割・・・???

>>941
$start_time = microtime(); //スクリプトの先頭に置く
$end_time = microtime(); //ここから下はスクリプトの末尾に置く
$exe_time = $end_time - $start_time;
echo $exe_time;
0944nobodyさん2006/03/15(水) 13:29:54ID:???
>>943
まづ下の結果をよく見て来い。話はそれからだ。
echo microtime();
0945nobodyさん2006/03/15(水) 13:46:48ID:???
phpのfloatって倍精度保証?
0946nobodyさん2006/03/15(水) 13:52:38ID:???
>>945
標準はdouble精度

てか、また保証話かよ
0947nobodyさん2006/03/15(水) 13:54:06ID:???
実際にmicrotimeでベンチ取っても、結果にはかなりのバラつきあるよね。
10回や20回数値を取った程度じゃ、偏りのある結果を得られないかもしれない。
ましてや共有鯖みたいな環境だったら、他に影響される部分が多すぎて、
自分のスクリプトの真のベンチが取れないね。
はて、どうしたもんやら。
ローカルでベンチ・スクリプト以外は極力動かさないようにしてやるしかないか??
0948nobodyさん2006/03/15(水) 13:55:06ID:???
そこでPEARですよ。
0949nobodyさん2006/03/15(水) 13:57:47ID:???
>>947
共有鯖でベンチとろうってお前の姿勢が気に食わない
0950nobodyさん2006/03/15(水) 14:00:10ID:???
>>947
共有鯖でベンチテストなんてやらないでね
0951nobodyさん2006/03/15(水) 14:04:40ID:???
>>947
100万回ループさせて割り算しろよ。
0952nobodyさん2006/03/15(水) 14:07:56ID:???
>>949>>950>>951
ベンチって言っても、いわゆる何万回も意味のないループを
繰り返したりするような類のベンチじゃないっつーの。
キモヲタと一緒にするなっての。

ふだん運用してる自作のスクリプトの実行時間を知りたいだけ。
0953nobodyさん2006/03/15(水) 14:08:45ID:???
>>947
頼むから俺様がピーコちゃんを飼ってるサバの住人じゃありませんように
0954nobodyさん2006/03/15(水) 14:10:37ID:???
>>953
カエレ
0955nobodyさん2006/03/15(水) 14:14:57ID:???
>>952
情報小出しにしてなに優越感に浸ってるんだ?
0956nobodyさん2006/03/15(水) 14:16:22ID:???
>>952
きんもーっ☆
0957nobodyさん2006/03/15(水) 14:19:20ID:???
>>955
ハァ?? 何が小出しなんだ??? バカかお前?
これ以上何を知りたいってんだ?

>>956
キモいよお前wwwwwwwwwwwwwwwwwwwwwwwwwww
0958nobodyさん2006/03/15(水) 14:23:45ID:???
>>957
お前の全てを知りたい。
まずその穴をこっちに向けてくれ…。
0959nobodyさん2006/03/15(水) 14:23:58ID:???
>10回や20回数値を取った程度じゃ、偏りのある結果を得られないかもしれない。
>ましてや共有鯖みたいな環境だったら、他に影響される部分が多すぎて、
>自分のスクリプトの真のベンチが取れないね。
>はて、どうしたもんやら。

100万回とって平均値とれや

>ベンチって言っても、いわゆる何万回も意味のないループを
>繰り返したりするような類のベンチじゃないっつーの。

そんなの後出しされても知るか。
0960nobodyさん2006/03/15(水) 14:25:01ID:???
>>959
小出しも後出しも駄目だ。外へ出してくれ。
0961nobodyさん2006/03/15(水) 14:37:04ID:???
>ふだん運用してる自作のスクリプトの実行時間を知りたいだけ。

これがキモヲタらしくてよい。
0962nobodyさん2006/03/15(水) 14:43:22ID:???
>>952
それをベンチと呼ぶ君の無知っぷりがかわいい
0963nobodyさん2006/03/15(水) 14:45:13ID:???
>>943
それは小数点以下の部分だけで差分を出してる。
当然、タイミングによってはマイナスになるし、1秒以上の実行時間は算出できない。
0964nobodyさん2006/03/15(水) 15:12:10ID:???
>>963
え、単純に引き算しているだけで、小数点以下の部分の差分になるの?
0965nobodyさん2006/03/15(水) 15:15:36ID:???
はい、共用鯖での実験ももちろんokですよ
うるさい御老人の事は気にせずなんでもどうぞ^^
0966nobodyさん2006/03/15(水) 15:17:55ID:???
>>964
そこがphpの怖いところなんだな
文字列を算術演算で使うと数値として評価できる部分までがその数値になる
この場合は' 'より前の部分だけ

>>965
カエレ
0967nobodyさん2006/03/15(水) 15:21:11ID:???
>>964
microtimeは
"小数部"スペース"整数部"
の文字列
そのまま引き算するとスペース以降の部分は無視され小数部のみの引き算になる
09689642006/03/15(水) 15:26:35ID:???
>>966-967
なるほど。
試しに、print microtime(); をやってみたら、
「0.90277600 1142403902」みたいになってた。

phpの演算って面白いね。
普通の言語だと余計なものが入っている状態で減算したら
エラーになる気がする・・・。
09699672006/03/15(水) 15:27:05ID:???
マニュアル見直したらPHP5から
microtime(true); //floatを返します。
が使えるんだ
0970nobodyさん2006/03/15(水) 15:27:30ID:???
的確なアドバイスの>>942>>944は無視して話が進んでいるな
0971nobodyさん2006/03/15(水) 15:30:10ID:???
>>942 のコードの、型宣言floatは必要なの?

function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return $usec + $sec;
}

これで同じ結果になると思うけど。
09729712006/03/15(水) 15:34:21ID:???
あ、精度を落としているんだね。
失礼しました。
http://jp.php.net/manual/ja/language.types.float.php
09739712006/03/15(水) 15:38:02ID:???
あ、でも実験したら同じ結果になった。
宣言しない場合は、float型として加算されるのかな。

0974nobodyさん2006/03/15(水) 15:39:06ID:???
>>971
宣言は不要
何を勘違いしてるか知らんがどっちも同じだけ精度は失われてる
0975nobodyさん2006/03/15(水) 15:40:56ID:???
>>944が可愛そうだ。
むしろ可愛い
0976nobodyさん2006/03/15(水) 16:02:04ID:???
精度を気にするなら$secと$usecは足してしまう前に減算した方がいいんじゃないのか?
$secがかなりでかい数字なので、それに$usecを足した時点でかなりの精度が失われてる。
それはfloatだろうとdoubleだろうと避けられないかと。
先に$sec同士、$usec同士で減算を済ませてから最後に足せばかなり精度を維持できると思う。
0977nobodyさん2006/03/15(水) 16:03:53ID:???
>>976
君は正しい
0978nobodyさん2006/03/15(水) 16:09:07ID:???
>>976
> 精度を気にするなら$secと$usecは足してしまう前に減算した方がいいんじゃないのか?
> $secがかなりでかい数字なので、それに$usecを足した時点でかなりの精度が失われてる。
正しい。
君は賢いね。

> それはfloatだろうとdoubleだろうと避けられないかと。
phpにおいては、float と double は全く同じものじゃないだろうか。
http://jp.php.net/manual/ja/language.types.float.php

> 先に$sec同士、$usec同士で減算を済ませてから最後に足せばかなり精度を維持できると思う。
だね。
普通はそれで十分。

まぁ、更に精度を気にするなら、GMP関数を使うべきだと思う。
ただ、モジュールだからレンタル鯖な人は使えねーかもな。
http://jp.php.net/manual/ja/ref.gmp.php
0979nobodyさん2006/03/15(水) 16:16:40ID:???
>>978
>まぁ、更に精度を気にするなら、GMP関数を使うべきだと思う。

お前はわかってない
0980nobodyさん2006/03/15(水) 16:18:09ID:???
奴がミリ秒以下の精度を気にしなければいけないようなシステムを作っているとも思えんが
0981nobodyさん2006/03/15(水) 16:21:30ID:???
>>971
丁寧にキャストしてるのはマニュアルの親切心かなと思った。
この場合は明示しなくてもfloatとして加算される。

> list($usec, $sec) = explode(" ", microtime());

ここで var_dump($usec, $sec) 取ってみたりとか
マニュアル読みながらいろいろ試したりすると、疑問が解消すると思うよ。
http://jp.php.net/manual/ja/language.types.type-juggling.php

で。

>>ALL
引っ張ってごめんなさい。
0982nobodyさん2006/03/15(水) 17:20:10ID:???
// ●実行開始時刻の取得(スクリプトの最初に書く)
$startTime = microtime();


// ●実行時間の取得(スクリプトの最後に書く)
list($startUsec, $startSec) = explode(" ", $startTime);
list($stopUsec, $stopSec) = explode(" ", microtime());
$secure_execSec = ($stopSec + $stopUsec) - ($startSec + $startUsec);

print $secure_execSec;
0983nobodyさん2006/03/15(水) 17:32:17ID:???
いや先に引くっつー話じゃなかったのか
0984nobodyさん2006/03/15(水) 17:50:46ID:???
>>982
先にSecとUsec足しちゃうと精度が著しく落ちるだろが
0985nobodyさん2006/03/15(水) 17:59:46ID:???
うにゃ

// $secure_execSec = ($stopSec + $stopUsec) - ($startSec + $startUsec);
$secure_execSec = ($stopSec - $startSec) + ($stopUsec - $startUsec);
0986nobodyさん2006/03/15(水) 18:16:24ID:???
>>983-985
$secure_execSec = ($stopSec + $stopUsec) - ($startSec + $startUsec); だと、
Load Time: 0.13795495033264 sec.

$secure_execSec = ($stopSec - $startSec) + ($stopUsec - $startUsec); だと、
Load Time: 0.137955 sec.

になった。


予想の反対の結果だね。
精度が落ちる計算(前者)の方が、表示される桁数が多くなり、
精度が前者に比べ落ちない計算(後者)の方が、表示される桁数が少なくなる。


つまり、精度の低い数字がずらずらと表示されるわけだな。(前者の計算だと)
0987nobodyさん2006/03/15(水) 18:29:38ID:???
>>986
SecとUsecを足した時点で有効桁数が変換が入るので、
その時点で10進変換では割り切れない数字になってる可能性が高い。
0988nobodyさん2006/03/15(水) 18:31:23ID:???
>>986
試しに計算前の文字列状態のmicrotime()の戻り値も表示させてみれば?
0989nobodyさん2006/03/15(水) 18:45:18ID:???
usecは有効少数以下6桁じゃないのかね
俺のサーバは8桁表示されるが、7-8はいつもゼロ
0990nobodyさん2006/03/15(水) 18:46:42ID:GW/RIGqH
質問です
変数$aに全角ひらがな、もしくは全角カタカナが含まれるか否かを判別するにはどうすれば良いのでしょうか?
0991nobodyさん2006/03/15(水) 18:48:44ID:???
↓いやらしい声
0992nobodyさん2006/03/15(水) 19:01:13ID:???
開発やアプリには直接は関係しないベンチの話になったら
急にイキイキと書き込みが激しくなった点についてwwwwwwww

やっぱヲタは分かりやすくていいなぁ。
0993nobodyさん2006/03/15(水) 19:07:05ID:???
992=986=978だな
0994nobodyさん2006/03/15(水) 19:09:43ID:???
PHPの勉強を始めようと思うのですが、
オススメの書籍はなんでしょうか?
0995nobodyさん2006/03/15(水) 19:12:50ID:???
>>993
大外れ乙wwwwwwwwwwwww

しかしあと数回の書き込みで1000ゲトなのに、
誰もそれに気づかない(?)ほど熱中してベンチの話に
なってんのが面白いww
0996nobodyさん2006/03/15(水) 19:14:41ID:WV793DnE
質問です。
現在、テキストボックスに入力されたデータを別ページで表示させるものを作っています。(簡単に言えばメンバー表のようなもの)
今はまだ書き込み処理等、ログファイルへの書き込みは行っておらず、たんに入力されたものを出力するようにしています。
表示させるところまではうまくいったのですが、現在メールの入力欄に文字が入力されていたら自動で名前にリンク、入ってなかったら名前のみ表示。
と言うようにしようと思っているのですが、思うようにうまくいきません。
<? if ("{$_POST['mail']}" !== "") {
echo "{$_POST['name']}";
} else {
echo "<A href=\"mailto:{$_POST['mail']}\">{$_POST['name']}</a>"; } ?>
というようにしてみたのですが条件の部分のせいでエラーがでてしまいます。
条件の設定法がうまくわからないのですが教えてください。
条件としては「{$_POST['mail']}に文字がはいっていなかったら」です。
0997nobodyさん2006/03/15(水) 19:19:46ID:???
誰か>>990の質問に答えてやれよ…。

↓いやらしい声
0998nobodyさん2006/03/15(水) 19:22:10ID:???
埋めるか
0999nobodyさん2006/03/15(水) 19:23:39ID:yiOrS10N
次スレ立てました。不備があったらごめん。

【PHP】下らねぇ質問はここに書き込みやがれpart18
http://pc8.2ch.net/test/read.cgi/php/1142417901/
1000nobodyさん2006/03/15(水) 19:24:58ID:???
<? if (${_POST['mail']} == "") {

1行目を上記のように直す。
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。