【PHP】質問スレッドpart22【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/09/16 18:17:37ID:/HV017tY・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレ等>>2-4
0134104
04/09/18 15:42:00ID:89F8m67/header関数は要求して来た側に任意のヘッダを返すんですよね
あるページに任意のヘッダを送るには?
0135104
04/09/18 15:42:25ID:89F8m67/0137nobodyさん
04/09/18 15:54:14ID:???0138nobodyさん
04/09/18 15:56:42ID:???header()は リクエストヘッダを送るためのものじゃない。
鯖から(他の鯖へ)リクエストをする場合は、
fopen wrappers + file や fsockopenを使う。
>>112のRFC 2616を知った今では、当然自力で全部書けるね。
0139nobodyさん
04/09/18 16:17:33ID:4X50yJu5どうすればいいのでしょうか?
------------------------------------------
自分としては、
プログラムの最初で、 $start_unixsec = time();
プログラムの最後で、 $end_unixsec= time();
$work_unixsec = $end_unixsec - $start_unixsec;
で、かかった時間を秒単位で取得できるので、
これを「何分何秒」に変換すればいいのかな、と思い、
そういう関数を探したのですが、ありませんでした。
------------------------------------------
どなたかおわかりのかた、教えていただければと思います。
0140nobodyさん
04/09/18 16:20:27ID:???マニュアルに出てるが・・
http://jp.php.net/microtime
0141nobodyさん
04/09/18 16:22:44ID:???部分〃で計測してボトルネックを探るのが一般的だ。
そしてそのためには、秒単位じゃ大きすぎて役に立たないだろ。
何を考えとるのかいまいち理解できん。
0142nobodyさん
04/09/18 16:36:53ID:???>これを「何分何秒」に変換すればいいのかな、と思い、
>そういう関数を探したのですが、ありませんでした。
そういう関数が用意してあると考えるのが良くわからん
自分でどのような処理が必要か考えることが出来るならば、
そんな関数を一々用意していたら埒があかない位
容易に想像できそうなもんだけど
0143139
04/09/18 16:40:30ID:???すいません、そのページを、下の掲示板も含めて、みたものの、
「●秒かかった」というように返してるものしか見あたらないように思えるのですが、
読み間違いでしょうか・・・
「●分●秒かかった」というようにはできないでしょうか?
・・・ってよく考えたら、計算でできますね・・・。
でも、PHPのことだから、そういう関数があればと思いまして、
ご存じでしたら教えてください。
>>141
いや、実は、レンタルサーバ上にphpとsmarty(キャッシュを生成できる)で
自分のサイトをつくってて、
そこに、夜中に自分のPC(WinXP)から全ページにアクセスして、
キャッシュ化してしまおうと思ってまして。
//ちなみにVPS(仮想的な専用サーバ)を使ってるので、
//同じマシンのユーザに迷惑をかけることはないです。
で、その処理に数分かかります。
なので、ログとして動作時間をかいておこうかと思いまして。
0145139
04/09/18 16:44:11ID:???$work_sec = $work_unixsec % 60;
$work_min = $work_unixsec / 60;
だけじゃないですか・・・小学校行ってきますorz
0146139
04/09/18 16:47:07ID:???$work_sec = $work_unixsec % 60;
$work_min = ($work_unixsec - $work_sec )/ 60;
でした、すみません。
0147134
04/09/18 16:49:12ID:???http://www.studyinghttp.net/を熟読して勉強します
ありがとうございました
0148nobodyさん
04/09/18 16:54:59ID:???お前の脳内でどうなってるかしらんが、それは結果値だろ。
整数じゃ荒すぎ。もしそんなコードならそれは見栄えのためだけで、
実用的な意味はないだろ。
> PC(WinXP)から全ページにアクセスして、キャッシュ化
救いがたい・・・。もうどうとでもしろよ。
>>142
このスレの質問者にはそういう思考パターンの池沼はザラ。
日付関数を流用して、date('i:s', $t); と書けてしまうしな。
しかしこの処理は激しく無駄。
0149nobodyさん
04/09/18 16:58:45ID:???たしかにこんなスースコード出てきたら笑うしかないなw
>>146
phpは型を自動的に変換する言語ですから。
0150nobodyさん
04/09/18 17:03:45ID:Ea5drynFdata.txt
value1<>0
value2<>0
をこんな感じにつくり、
$original_data = fopen("/data.txt","r");
while(!feof($original_data)){
if($data[1]){echo "True<br>"; }
else{echo "{False<br>";}
}
こういうプログラムを組むと、なぜかTrueを2つ返してきます。
"0"はFalseになるとPHPの説明書には乗ってるのですが、
どうしてこうなるのか誰かわかりますか?
よろしくお願いします。
0151150
04/09/18 17:08:00ID:???$data = fgets($original_data);
$data = preg_split('/<>/',$data,-1,PREG_SPLIT_NO_EMPTY);
を、while(〜){ と、
if(〜){〜} の間に入れるのを忘れてました。
0152nobodyさん
04/09/18 17:10:29ID:???lニ`ー- ..__ _,ィェェュ_、`ヽヽ〃--、rタヘ ,ィ
ヽ三三三_二ニ==‐- .._`ヾュ_ `` ̄、_r' 冫、 ノ l
ヽ. -‐'´ r¬へ‐-_、 ` 丶 、ー==-‐'' ヽ.ィ´ .,' すいませんちょっと通りますよ・・・
'´ ー''´ ̄ __,,. -――ヽ'⌒ヽ__ /r'⌒ヽ/
ー‐---- ..____,. -‐'' ´. --――‐l′l'´ f'⌒',`丶 r.,ヘ、
三三三三三ニ>''´_,,. -― '' ´ ̄ ! l、 ゝ,rく.ヽ、 \ヽ.j.ヽ
三三三三,.ィ´-‐'' ´ l,t___ノj ヽ\. ヽ、´_ヽ
三三ニ>''´ ,.ィ´三ヽ , 、 \三三フ
三 / ,.イ.三三三 l ./三.ヽ ヽ‐''′
三f /. ヘ三三三 ! /三三 ヘ }
` ヽ /-- 、 j三三ニ/ /ヘ三三7 /
ヽ. _,.イf´ ヘ三三ン′ ./ ノ三ニ/ /
 ̄`ヾ、`ーt . -‐‐ヘ_/‐-、 /_/ニ> '´
`ー-ハ´ . ´ ̄.ヘ,ィ、三ヘ _/‐''´
/三v / .l.ヽ¬jノ
`ー‐ヘ. / |. l´/
,.-ヽ、 | |'j
f.⌒j. ト、 |,lく
/ヽ.ィ_ノ ヾミハ'
{ { ヽ l. l
j/.t ヘ. |. l
_/、 {.ヘ ハ | !
,ヘヽ._`Y 丶/ \.lハ
_∧ >‐´ 7 ヽ l. l
___ _jヽ ヽ`ーイ、.-、_ ! _, -'´l.ヽ
,.-‐´コ ]}}})} j 冫rnl`T‐f´ l !
´ ̄ ̄ ´ `¨´ `ー^`'┴ヘ._-‐===,〉
_/ ヘ
くフヽ´ ヘ r' ̄/ ̄ヽヲ!_
0153nobodyさん
04/09/18 17:12:03ID:???そのサンプル行が抜けてんな
まあやりたい事はわかるからいいけど
正解は「$data[1]に改行が含まれているから」
$data[1]=rtrim($data[1]);
でもifの直前に入れとけ
0154nobodyさん
04/09/18 17:21:21ID:???そんなときは、本当に $data[1] が 0 かどうか確認してみるといい。
var_dump($data[1]); とやると、153 の言う改行が混入してるのがわかる。
0155150
04/09/18 17:22:58ID:???$data[1]=chop($data[1]);
これは試してみたんですが、
rtrimって言う関数は知りませんでした・・・
ありがとうございました。
0156150
04/09/18 17:27:51ID:???確かに、string(3)になってました。
0158nobodyさん
04/09/18 18:28:52ID:c25lbTAfPerlやRubyも候補として検討する中で質問があります。
コマンドライン(CLI)でのプログラムでPerlやRubyはガンガン
使われている感じですが、PHPは今一見えてきません。
コマンドラインでのPHPの利用はどうでしょうか。
ご意見を聞かせて頂けるとありがたいです。
また、コマンドラインでの利用において参考となるサイトが
ありましたら紹介頂ければありがたいです。
(調べたのですが、設定ぐらいしか掲載しているサイトは
見つけられませんでした。システム管理とかやっているような
もしくはスクリプトサイト等があれば良いのですが。)
よろしくお願いします。
0159nobodyさん
04/09/18 20:03:51ID:???「OSの」システム管理(とくにWin32)なんかは、phpでは困難。
標準で組み込まれている機能は、ストリームのように気合の入ってきた部分もあれば、
エクスペリメンタルでほっとかれているものもある。
c/c++で何でも書けるなら特に障害はないが。
参考になるサイトが少ないのはあえてphpでやろうとする人が少ないからじゃない?
俺も差分バックアップ・ログ管理とかリンク切れ検査に使ってるくらいだなあ。
まあどれくらいの労力でどんなことしたいのかによるよ。
ほかにも言語はあるけど
早く基本部分を抑えたい、コーディングに労力をかけたくない -> php
趣味でちまちまやれればOK -> ruby
それ以外の全てをお引き受け -> perl
0160nobodyさん
04/09/18 20:11:49ID:???winだと、、、なんだろう、DB管理のフロントエンドとか?あまり見ないな
C++みたいなイメージを持っててその手のことがやりたいならRubyかPythonでいいかなと思う
0161nobodyさん
04/09/18 20:22:16ID:???0162nobodyさん
04/09/18 20:40:30ID:???0163nobodyさん
04/09/18 22:03:05ID:???phpのデバッグツールは何を使っておりますか?
先日TruStudioを入れましたが、ステップ実行ができるものの
すぐに固まってしまったり、その他機能が乏しく検討しております。
何かお勧めのものがあったら教えてください。
0164nobodyさん
04/09/18 22:33:42ID:???0167nobodyさん
04/09/19 00:09:59ID:s+sofMwN使いやすい。
0168nobodyさん
04/09/19 00:11:38ID:???0169nobodyさん
04/09/19 09:55:58ID:???php4でもOOPできるよって言われてはじめた者ですが
OOPってめちゃ面白いですね。
自分的に単なる作業に堕していたプログラミングが
物作りの輝きを取り戻した感じです。
0170nobodyさん
04/09/19 11:42:01ID:???0171nobodyさん
04/09/19 13:00:10ID:???0172158
04/09/19 13:12:11ID:iDnOmOi6アドバイスありがとうございます。
非常に参考になりました。
ライブラリの充実度等でPerlに一日の長があるみたいですね。
アドバイス頂いたことを参考に検討してみます。
0173nobodyさん
04/09/19 14:02:36ID:PuBS3YUf検索文字列が文字化けして困ってます。
プログラミングの知識は少ししかないのですが、
どのように修正すれば問題は解決するでしょうか?
0174nobodyさん
04/09/19 14:04:49ID:???文字コードが問題ではないのでしょうか。
0175nobodyさん
04/09/19 14:05:17ID:???まず文字化けの原因を探るべきでしょう。
それが終わってから、原因に応じた対処法を考え実装します。
使ってる人が多いものなら先人が修正してくれてる場合もあるけどね。
0176nobodyさん
04/09/19 15:34:18ID:tUr3B337function hoge(){
$a = func_get_arg(0);
$a++;
}
$a = 0;
hoge(&$a);
echo $a;
で結果は0でした。
またfunc_get_argの前に&を置いてみたりしたのですが
やはり変わらず…。
ということは可変長数の引数は参照渡しできないということでしょうか?
もし解決方法があれば教えてください。
0177nobodyさん
04/09/19 17:28:35ID:???FORMで送られたデータって他人が見えたりするんですか?
0178nobodyさん
04/09/19 17:36:30ID:???PC -> LAN -> ルータ -> ISP -> IX -> 鯖 etc.
どっかにスニファを仕込めば簡単に見えるね。
他にもプロキシとかあればそこでも仕込めるし。
曖昧な質問には曖昧な答えしか出てこないよ。
PHP言語に関係ないし。
0184nobodyさん
04/09/19 19:47:37ID:???自分で探せばすぐ見つかるのに、エサもらえるまで口開けてまってるのか。
http://www.zend.org/store/
Zend Studio : free evaluationてのがあるじゃん
0185104
04/09/19 20:21:10ID:???$fp = fsockopen ($host, $port) でソケット接続をオープン
それはストリームでファイルポインタを返す
あとは fputs($fp, $request) でリクエストを送る
POSTの場合は
POST /test.php HTTP/1.0
Content-Length: 渡したい文字列の長さ
(空行)
hoge=fuga&hoge2=fuga2&....
な感じですね。改行は\r\n
レスポンスはfgets($fp)で拾えばよろし
いやぁ、勉強になりました。学校の実験でサーバクライアントは作ったんですけどすっかり忘れてました
レスしてくださった皆さんありがとうございました
0186nobodyさん
04/09/19 21:08:13ID:???.NET Framework な PHP はありませんか?
0187176
04/09/19 22:11:00ID:tUr3B337ここを見ると、引数を充分な数増やすことで逃げられるようですが、
可変長参照渡しはやはり出来ないということでしょうか。
0190nobodyさん
04/09/19 23:43:36ID:???何故ドメイン名と言語名が同列で比較できるのか不明なのだが、比較観点はなに?
0191カポコン
04/09/20 01:01:19ID:???0192176
04/09/20 04:25:11ID:???配列を引数にすることで解決しました。
0193nobodyさん
04/09/20 07:49:43ID:ljpqr4Swwhile ( !feof($pp) ) {
echo fgets($pp) . "<br>";
echo $pp . "<br>";
}
pclose($pp);
↑をaaacafeで実行した結果が「<br>Resource id #3<br>」なのね
なんでファイル名が取れておらんのやろか
0194nobodyさん
04/09/20 08:26:15ID:???0195nobodyさん
04/09/20 08:29:59ID:???そんな心配をする必要なない。
0196nobodyさん
04/09/20 08:33:36ID:???0199nobodyさん
04/09/20 09:08:59ID:???IDとパスワードが一致すると入室させるのですが
管理ページも数ページに分かれていて
ページ移動するたびにIDとパスワードを入力させるのは面倒なのでどうしたらいいのでしょうか?
パスワードが一致するとAのページを表示させ
そこからBのページを表示させたい場合です。
0201nobodyさん
04/09/20 09:20:49ID:???0202nobodyさん
04/09/20 09:21:28ID:???そこまで考えてるなら、ちょい気張ればブリッと思いつくはずだ。
まあしかしこの際思いつかなくてもApacheのBasic認証使ってしまえばいいが。
0203199
04/09/20 09:26:31ID:???使わないでやれないでしょうか?
0204nobodyさん
04/09/20 09:29:48ID:???ここは丸投げスレでも199サポートセンターでもありませんよ
0205199
04/09/20 09:42:09ID:???ありがとうございました
0206nobodyさん
04/09/20 09:54:26ID:fqefKnLK自分なりに調べてみたんですがさっぱり解らなくて、それで、考え付いたのがセッションでして。。
ヒントだけでも頂けないでしょうか。。
0207nobodyさん
04/09/20 10:06:49ID:???始めの画面でIDとパスワード使ってログインしたら、
セッションに認証用のキーワードを指定してみるといい。
セッションにそのキーワードが無い場合は、「ログインしてください」みたいな
メッセージを出して中身を表示しないようにする。
キーワードは短い言葉だと危険なので、最低でも400文字以上がいいと思う。
俺は好きな曲の歌詞とかをキーワードにしてるよ。
0208nobodyさん
04/09/20 10:09:18ID:???http://pc5.2ch.net/test/read.cgi/php/1064399467/l50
0209nobodyさん
04/09/20 10:20:40ID:???なるほど!
そういう考え方があったんですね。
俺が煽られたわけじゃないけども、199と気持ちは同調してると思ってるんで、いろいろ言われて当然だと思いましたorz
>>208
一通り見ていたつもりなんですが、うまく脳みそに入ってなかったみたいです。
出なおしてきますorz
0211nobodyさん
04/09/20 10:51:28ID:???演歌がセキュアな気がする。
0212193
04/09/20 10:55:12ID:ljpqr4Swaaacafeはセ-フモ-ドではないみたいやけど
newdirしてもパ-ミッションが限定されておったりするから
なんやろ仕掛けられておるやもしらんよ
とりあえずpopenではエラ-もワ-ニングも出らんでよ
まぁのんびり調べてみるやぁねアリガトウやね
0213nobodyさん
04/09/20 10:56:07ID:???セキュリティを重視するなら512文字以内にした方がいい。
400文字というのはちょうど良いんじゃないかな。
0214nobodyさん
04/09/20 12:12:34ID:???too muchなんだよ。
以前、512文字設定で突破されたことがある。
メジャーな曲だったので反省している。
256文字程度でマイナーな曲に限る。
0215199
04/09/20 12:57:42ID:???0216nobodyさん
04/09/20 13:07:24ID:???認証される文字列が256辺りになると、
トラッキング側でノイズ起因のエラーが起こる為に
セキュアであると言えると思う。
0217nobodyさん
04/09/20 13:43:29ID:???そういえば、セッションIDって32文字だよね。
32文字だといつハイジャックされるか不安です。
セッションIDをせめて256文字にすることはできるんでしょうか。
0218199
04/09/20 13:55:50ID:???0219nobodyさん
04/09/20 14:04:49ID:???0220nobodyさん
04/09/20 14:21:00ID:???0221nobodyさん
04/09/20 14:36:32ID:???0222nobodyさん
04/09/20 15:45:39ID:???0223nobodyさん
04/09/20 15:51:58ID:???そこでSSLですよ。
もしくは、セッション開始時にランダムな256文字の文字列生成して、
クッキーとセッション変数両方に保存して、次回のアクセスでこの二つを比べる。
あと、リモートホストをセッション変数に入れとくとか。
0226nobodyさん
04/09/20 16:41:25ID:???キーワード400文字ってのはマジなのでしょうか?
初心者対象スレなんでネタならネタとわかるような書き方にして欲しい。。。
0228nobodyさん
04/09/20 16:46:43ID:???お前基準かよ
0229nobodyさん
04/09/20 16:55:07ID:???400文字は多すぎ。256文字以内。これ。
んで、認証時にはセッションから取り出した数式を
受け取り側であらかじめ持っていた数式と結合し、計算する。
ex. $_SESSION[key] = '256×12÷5×7000÷…(以下長いので割愛。256文字以内になるようにする事!)';
答えをあらかじめ設定しておき、
$int_a = 6548;
セッションの数式と受け取り側の数式を結合して計算した答えが$int_aになるようにしておく。
もちろんセッションの値はそのままではstrにすぎないので、×や÷で分割して数値をintに変換し、計算すること。
0230nobodyさん
04/09/20 16:55:58ID:???0231nobodyさん
04/09/20 16:57:38ID:???仮託するなよ乞食のくせに。
0233nobodyさん
04/09/20 17:03:19ID:???みんなセキュリティーに対して関心が高いんだね。
■ このスレッドは過去ログ倉庫に格納されています