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

このエントリーをはてなブックマークに追加
952nobodyさん:2006/03/15(水) 14:07:56 ID:???
>>949>>950>>951
ベンチって言っても、いわゆる何万回も意味のないループを
繰り返したりするような類のベンチじゃないっつーの。
キモヲタと一緒にするなっての。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

で。

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


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

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

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

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

になった。


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


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

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

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

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

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

1行目を上記のように直す。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。