トップページ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
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を超えています。これ以上書き込みはできません。