【PHP】下らねぇ質問はここに書き込みやがれpart17
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2006/02/24(金) 22:05:48ID:YHkZgU8bここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
まず読め【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
0878nobodyさん
2006/03/14(火) 14:15:15ID:???return (isset ($$gname[$name]))?($$gname[$name]):(NULL);
}
$_COOKIE['example'] = getSGlobal ('_COOKIE', 'example');
という方法もある。
俺も凄い気になったんだよな、もう少し楽にスーパーグローバル取得できないか。
そんで前スレかどっかで、Cのマクロ関数みたいな事ってできませんか?みたいな事聞いたら、
関数でやれって返ってきた。
0880nobodyさん
2006/03/14(火) 14:30:02ID:???ttp://php.s3.to/man/language.variables.variable.html
0881nobodyさん
2006/03/14(火) 14:31:41ID:???こんな感じになった。
<?php
// デバッグ用
// エラーは全て表示する
error_reporting(E_ALL);
function getSGlobal (&$gname, $name) {
return (isset ($gname[$name]))?($gname[$name]):(NULL);
}
$hogehoge = getSGlobal($_GET, "hogehoge");
echo $hogehoge;
?>
0882nobodyさん
2006/03/14(火) 14:45:52ID:???ほんと便利だよね。
0883nobodyさん
2006/03/14(火) 15:06:54ID:???ログイン後しばらく放置しておいてからアクセス(更新など)すると、ログアウトされてしまいます。
これは放置時間が一定以上続いた場合にセッション情報が破棄されているのだろうと思いますが、
このセッション破棄までの時間は、php.iniのどこをいじればいいのでしょうか?
「session.cache_expire」が関係あるのかとも思いましたが、デフォルトの「180」のままなのに、
180分も経たないうちに(具体的には10分くらいで)ログアウトになってしまいます。
0886nobodyさん
2006/03/14(火) 15:14:58ID:???http://php.s3.to/man/ref.session.html
session.gc_maxlifetime integer
0887nobodyさん
2006/03/14(火) 15:17:49ID:???ってか三項演算子って言葉って知ってて当然なんかな?
(〜?〜:〜);と全部記号だから検索でヒットさせられるのが無くて困る。
Cだと#defineと併用して使うからマクロ関数とかばっかり出てくるし。
0888nobodyさん
2006/03/14(火) 15:24:55ID:???三点演算子だと思い込んでいて検索でかからなくて困ってたことが・・・。
http://www.sra.co.jp/people/t-ishii/php_new/php4_new.html
第一部 PHPをはじめよう(3360KB)
だけでもいいから読んどいた方がいいよ。
0890888
2006/03/14(火) 15:26:55ID:???ざっとでいいから、眺めれば「三項演算子」という言葉ぐらいは分かるって意味ね。
0892nobodyさん
2006/03/14(火) 15:48:49ID:???セッション値を参考にしてダウンロード場所を選択して
ファイルをダウンロードする仕組みを作ってるんですが、
どうもセッション用プログラムをrequireすると
上手くダウンロードログが表示されません。
セッション用プログラムをコメントアウトすると機能するので、
おそらくヘッダー関係あたりの問題かなと思うのですが、
何か良い解決方法は無いでしょうか。
0893nobodyさん
2006/03/14(火) 16:36:12ID:???0894877
2006/03/14(火) 17:02:51ID:???>>881
更なるアイディアありがとうございます。
教えていただいた方法を試してみた結果、881に紹介していただいた
方法を自分好みにして、以下のようなコードで記述することにしま
した。
function getSGlobal (&$gname, $name) {
$gname[$name] = isset($gname[$name]) ? $gname[$name] : NULL;
}
getSGlobal($_GET, "hogehoge");
echo $_GET["hogehoge"];
これなら、入力が楽です。本当にありがとうございました。
0895nobodyさん
2006/03/14(火) 17:06:30ID:???0897nobodyさん
2006/03/14(火) 18:49:44ID:???順番って設定した順番になりますが
これは保証されてるのでしょうか?
0901nobodyさん
2006/03/14(火) 19:57:29ID:???不安になってきた
0903nobodyさん
2006/03/14(火) 20:50:40ID:???foreachで取り出される順番はリンクリストに従ってるので
「設定した順番」つうのが通常のpushしていくやりかたなら
保証されてると考えていい。明確に保証するとは書いてなかったと思うけど。
0904nobodyさん
2006/03/14(火) 21:33:46ID:???PHPでの連想配列は格納順番を内部に保持していてその通りに取り出せる。
0907nobodyさん
2006/03/15(水) 00:27:49ID:???っていうかこんなとこで聞いてるヒマがあったら、
自分で実験して確かめてみりゃあいいのに。。。
ループでecho使えば分かる話だろ。
0909nobodyさん
2006/03/15(水) 02:02:25ID:???>907じゃないが、俺なら数十回は試すな。
知的探究心ってのは止められないね。
その中で出てきた結果から憶測を何度も繰り返す。
再度何度も試し憶測どおりだったら頭の中に入れとく。
ところでPHPで、OSが違うと処理が変わる事ってあるん?
機会に便乗して質問してみる。
0911nobodyさん
2006/03/15(水) 02:27:00ID:???正しいって言ってるか?好奇心の話だろ?
>>909
そんな話は聞いたこと無いな。インストールはまったく違うけど
0912nobodyさん
2006/03/15(水) 02:33:21ID:???なんか話がずれてる人同士が言い合ってて不毛そうなのでやめたら?
0916nobodyさん
2006/03/15(水) 04:34:09ID:A2wD7hwKprint関数の出力先を変える関数、方法をおしえてください。
0921nobodyさん
2006/03/15(水) 05:16:13ID:???はい、次の質問どうぞ。
0922nobodyさん
2006/03/15(水) 05:20:12ID:???0923nobodyさん
2006/03/15(水) 05:35:22ID:???まずジュノン近くの湖へ行きましょう。
ボスが居ます。
戦闘終了後(まだ倒してない)ぶアルテマウェポンがどっか飛んでくのでぶつかって何度も倒しましょう。
今度は直線に飛び始めるので、止まったら再度戦闘を仕掛けて倒しましょう。
アルテマウェポンがコスモキャニオンか古の森で止まったら最後です。
おめでとうございます、アルテマウェポンをゲットします。
0924nobodyさん
2006/03/15(水) 05:36:19ID:???0925nobodyさん
2006/03/15(水) 07:18:48ID:???まずおもちゃの銃を手に入れろ
少年が倉庫へ行くためのカードキーの場所まで連れて行ってくれるところでカードキーを落とす敵の奥で手に入る
8章以降でおもちゃの銃をアルテマウェポンにチューンできる。20万ギルほど必要
0926nobodyさん
2006/03/15(水) 08:44:03ID:???0930nobodyさん
2006/03/15(水) 10:14:44ID:???配列みたいな基本部分では多分変わんないと思うけど、
システムコールを呼んでる部分では微妙に違うとこあるね。
そういう中身を想像できる人ならあまり気にならないんじゃない?
0932質問
2006/03/15(水) 10:38:37ID:48VnBYob"/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);
fwrite($ToFile,$body);
2回書けばいいだけでは。
0934932
2006/03/15(水) 11:11:38ID:F5a3ZDp1> fwrite($ToFile,$head.$body);
> では。
そうでした。携帯からだったので書き写し間違えてました。PCのほうは正しく書いてます。
2回書けばいいんですか。帰ったら試してみます。
0935nobodyさん
2006/03/15(水) 11:29:41ID:???その差を求めてベンチ取ってるんですが、
なぜかときどき結果がマイナスになってしまうことがあります。
なぜなんでしょう??? ありえないですよね・・・
0937nobodyさん
2006/03/15(水) 11:48:18ID:???0939nobodyさん
2006/03/15(水) 11:54:21ID:???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:???>>941
$start_time = microtime(); //スクリプトの先頭に置く
$end_time = microtime(); //ここから下はスクリプトの末尾に置く
$exe_time = $end_time - $start_time;
echo $exe_time;
0945nobodyさん
2006/03/15(水) 13:46:48ID:???0947nobodyさん
2006/03/15(水) 13:54:06ID:???10回や20回数値を取った程度じゃ、偏りのある結果を得られないかもしれない。
ましてや共有鯖みたいな環境だったら、他に影響される部分が多すぎて、
自分のスクリプトの真のベンチが取れないね。
はて、どうしたもんやら。
ローカルでベンチ・スクリプト以外は極力動かさないようにしてやるしかないか??
0948nobodyさん
2006/03/15(水) 13:55:06ID:???0952nobodyさん
2006/03/15(水) 14:07:56ID:???ベンチって言っても、いわゆる何万回も意味のないループを
繰り返したりするような類のベンチじゃないっつーの。
キモヲタと一緒にするなっての。
ふだん運用してる自作のスクリプトの実行時間を知りたいだけ。
0957nobodyさん
2006/03/15(水) 14:19:20ID:???ハァ?? 何が小出しなんだ??? バカかお前?
これ以上何を知りたいってんだ?
>>956
キモいよお前wwwwwwwwwwwwwwwwwwwwwwwwwww
0959nobodyさん
2006/03/15(水) 14:23:58ID:???>ましてや共有鯖みたいな環境だったら、他に影響される部分が多すぎて、
>自分のスクリプトの真のベンチが取れないね。
>はて、どうしたもんやら。
100万回とって平均値とれや
>ベンチって言っても、いわゆる何万回も意味のないループを
>繰り返したりするような類のベンチじゃないっつーの。
そんなの後出しされても知るか。
0961nobodyさん
2006/03/15(水) 14:37:04ID:???これがキモヲタらしくてよい。
0963nobodyさん
2006/03/15(水) 14:45:13ID:???それは小数点以下の部分だけで差分を出してる。
当然、タイミングによってはマイナスになるし、1秒以上の実行時間は算出できない。
0965nobodyさん
2006/03/15(水) 15:15:36ID:???うるさい御老人の事は気にせずなんでもどうぞ^^
0966nobodyさん
2006/03/15(水) 15:17:55ID:???そこがphpの怖いところなんだな
文字列を算術演算で使うと数値として評価できる部分までがその数値になる
この場合は' 'より前の部分だけ
>>965
カエレ
0967nobodyさん
2006/03/15(水) 15:21:11ID:???microtimeは
"小数部"スペース"整数部"
の文字列
そのまま引き算するとスペース以降の部分は無視され小数部のみの引き算になる
0968964
2006/03/15(水) 15:26:35ID:???なるほど。
試しに、print microtime(); をやってみたら、
「0.90277600 1142403902」みたいになってた。
phpの演算って面白いね。
普通の言語だと余計なものが入っている状態で減算したら
エラーになる気がする・・・。
0969967
2006/03/15(水) 15:27:05ID:???microtime(true); //floatを返します。
が使えるんだ
0971nobodyさん
2006/03/15(水) 15:30:10ID:???function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return $usec + $sec;
}
これで同じ結果になると思うけど。
0972971
2006/03/15(水) 15:34:21ID:???失礼しました。
http://jp.php.net/manual/ja/language.types.float.php
0973971
2006/03/15(水) 15:38:02ID:???宣言しない場合は、float型として加算されるのかな。
0976nobodyさん
2006/03/15(水) 16:02:04ID:???$secがかなりでかい数字なので、それに$usecを足した時点でかなりの精度が失われてる。
それはfloatだろうとdoubleだろうと避けられないかと。
先に$sec同士、$usec同士で減算を済ませてから最後に足せばかなり精度を維持できると思う。
レス数が950を超えています。1000を超えると書き込みができなくなります。