【PHP】下らねぇ質問はID出して書き込みやがれ 77
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/12/08(月) 01:27:39ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 76
http://pc11.2ch.net/test/read.cgi/php/1226517332/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0136nobodyさん
2008/12/10(水) 20:01:42ID:UV6BBIxz<?php
for ($a=0; $a<3; $a++){
print ($a."<br />");
}
?>
↑これで、1行ずつ表示したいんだが、無理?
0138nobodyさん
2008/12/10(水) 20:10:34ID:???フォルダーの圧縮やってみました?
mkdirしてそこに必要なファイルをつっこんでそのフォルダを圧縮 チーン
0139nobodyさん
2008/12/10(水) 20:11:37ID:UV6BBIxzいや、だから、何を試すんだよ?
バカなのかお前
0140nobodyさん
2008/12/10(水) 20:12:12ID:UV6BBIxz1行ずつ、って
ゆっくり表示する、って意味だよ?
0142nobodyさん
2008/12/10(水) 20:18:28ID:???ゆっくり表示するって書いてくれなきゃわからないです。ごめんなさい。
田代砲でサーバ攻撃しながら表示すればOK
0143nobodyさん
2008/12/10(水) 20:19:25ID:???flushとsleep使ったらどうかね
0144nobodyさん
2008/12/10(水) 21:11:51ID:???しっかり守ってるかセキュリティのチェックがしたいのですが
田代砲って配布サイトで拾ってきたもの使っても大丈夫ですか?
0145144
2008/12/10(水) 21:12:46ID:yyzcwK8M0146nobodyさん
2008/12/10(水) 21:24:10ID:???0147nobodyさん
2008/12/10(水) 21:31:58ID:???セキュリティのチェックとか関係ない
0148nobodyさん
2008/12/10(水) 21:42:22ID:???この問題を表示するプログラムって
ちょちょいと作れる?
0149nobodyさん
2008/12/10(水) 21:43:19ID:???0151nobodyさん
2008/12/10(水) 21:49:21ID:AE/sV1ze1)ファイルを動的につくる
2)そのファイルを含む複数のファイルをまとめて圧縮する
この2つをやる例文はないでしょうか?
素人なものですみません
0152nobodyさん
2008/12/10(水) 22:04:50ID:???とりあえず、
フォームで、「nの値を入力させる」
そんで、nが確定するから、
そのときの、出る目のパターンを、
全表示する、って、PHPでできる?
0153nobodyさん
2008/12/10(水) 22:15:04ID:???http://pear.php.net/package/Archive_Zip/
0154nobodyさん
2008/12/10(水) 22:33:18ID:???http://jp.php.net/manual/ja/function.ziparchive-open.php
0155nobodyさん
2008/12/10(水) 22:56:27ID:???このサイトわかりやすい
0156nobodyさん
2008/12/10(水) 23:00:34ID:???0157nobodyさん
2008/12/10(水) 23:02:09ID:???このページに、
「セッションというものは、クッキーを利用している」
って書いてあるけど、別にクッキーを使わない
セッションというものも、あるんですよね?
0159nobodyさん
2008/12/10(水) 23:33:40ID:???0160nobodyさん
2008/12/10(水) 23:36:40ID:AE/sV1ze素人ですみません。
zlib というので、やりたいのですが、
フォルダにするやり方がどうしてもわからないので断念
zip関数というので、できそうな気がしましたが、
サーバーを調べるとPHP4だったので、たぶん使えないだとうと断念
Pear でやれるか検討中。
という感じなんですが、できるでしょうか?
0161nobodyさん
2008/12/10(水) 23:45:17ID:???0162nobodyさん
2008/12/10(水) 23:46:50ID:???0163nobodyさん
2008/12/11(木) 00:15:49ID:2wImFGsHセッションは、
(1)セッション+クッキーで管理する
(2)セッション+URLにセッションIDを埋め込む
この2つしかやり方はない、であってる?
0164nobodyさん
2008/12/11(木) 00:25:16ID:???URL埋め込み以外にもフォームのhiddenの場合もあるし
0165nobodyさん
2008/12/11(木) 00:40:13ID:2wImFGsH(2)URL埋め込み
(3)hidden
おおまかに言って、この3種類?
0166nobodyさん
2008/12/11(木) 01:13:02ID:vCW1WzQVhttp://jp.php.net/manual/ja/zip.examples.php
ここに書いてある最初の例を、ローカルで試すと、
書き込んだファイルの拡張子の後に、
乱数(時間?)の数字がつきます。
それも、ちょっとまずく、
個別のアクセスした人に、個別のファイルをダウンロードさせたい
わけです。
数字なしにすれば、いいでしょうか。
その場合、同時アクセスのリスクはあるでしょうか?
素人ですみません
0169nobodyさん
2008/12/11(木) 02:16:43ID:vCW1WzQVtime()を外すと、大丈夫でした。
あと、アクセスした人個別にファイルをつくり、
その個別ファイルをダウンさせたいわけです。
なので、同時にアクセスされると不具合が起きるような気がして
ずっと心配しています。
そういう場合はプロの方はどうするのでしょうか?
同時に1人しかアクセスしないように制限するとか・・・
0170nobodyさん
2008/12/11(木) 02:19:15ID:???0171nobodyさん
2008/12/11(木) 02:37:05ID:???付与したいんでないか?
0172nobodyさん
2008/12/11(木) 04:15:55ID:2wImFGsH本や解説サイトによって、
関数の引数の
値渡しと、参照渡しで、
どっちが多く使われるか、
意見が分かれているのだが、
どっちがポピュラーなのか?
0173nobodyさん
2008/12/11(木) 04:21:57ID:???理論的なことばっか質問するな
答えがほしいなら学校へ行け
技術的に詰まったら質問に来い
0174nobodyさん
2008/12/11(木) 04:23:18ID:???,r´⌒ヽ,⌒ヽ,ヽ
(⌒)、 .人 λ\、 ._____
\. \ 、 ヽ./ ー ー\
|\ \ ヽ./ ( ●) ( ●)
| \ \ / (__人__) \ はいはい、どーもすみませんでした
|. \ | ` ⌒´ |
. |. |.\_ノ\ /
. |. | | \______/
. | ) .| . . ̄ ̄
. | | .|
| |.| .|
. | | .| .|
/ / / ヽ,
(__ノ ヽ、__つ
0175nobodyさん
2008/12/11(木) 08:01:27ID:???0176nobodyさん
2008/12/11(木) 08:09:54ID:???0178nobodyさん
2008/12/11(木) 21:02:23ID:yxR9XmFMデータの構造は、このようになっていますが、
どのようなデータ処理が一番適切でしょうか?
adfadfasdfasf1 384 Thu Dec 11 10:41 data1
(himitu1)
subdata1
adfadfasdfasf2 356 Thu Dec 11 05:20 data2
(himitu2)
subdata2
adfadfasdfasf3 361 Wed Dec 10 20:32 data3
(himitu3)
subdata3
・
・
・
このような構造のデータが可変で続きます。
上記の例でいえば、data1、subdata1、data2、subdata2、・・・の順で取得してDBに突っ込みたいと思っております。
一つのデータが一行で収まっていれば、explodeと簡単なのですが、
一つのデータが複数行になってしまっているので、処理が複雑になってしまいます。
何かよい知恵をお貸し下さい。お願いします。
0179nobodyさん
2008/12/11(木) 21:05:45ID:???0180nobodyさん
2008/12/11(木) 21:43:42ID:???悩むとするならこの行だろうけど、
項目が減ったり増えたりする訳じゃないのだから
頑張って正規表現だな。
まず、日付を先に取り出すのを考えて、日付取り出しちゃえば
後はすげー楽だと思う。
7種類の曜日のどれか、スペース、12種類の月のどれか、スペース
数字2桁、スペース…
正規表現に当てはめるのは簡単だけど、書くのは凄いめんどくさそうだね。
0181nobodyさん
2008/12/11(木) 22:37:36ID:yxR9XmFMアドバイスありがとうございました。
行での正規表現でのアドバイス参考になりました。
ただ、3行ずつ分けるって、結構大変そうですね。
やはりフラグを多用し、プログラムがぐちゃぐちゃになりそうなので、
そこはちょっと困ったところです。もう少し考えてみます。
どうもありがとうござました。
0182nobodyさん
2008/12/12(金) 01:34:45ID:???$i = 0;
$j = 0;
foreach ($text as $line) {
$block[$i][$j] = $line;
$j++;
if ($j == 2) {
$j = 0;
$i++;
}
}
的なことすればいいんでないの?
0183nobodyさん
2008/12/12(金) 02:00:06ID:8m0qh2cG一時間当たりのどれくらい処理できるかを考えるとき、
3600÷0.07=51,429PV処理できると考えて、ほぼ間違いないでしょうか?
どれだけの処理能力があるかが分かると、どれくらいの負荷の時に、
サーバーを増やす必要があるかどうか分かるので、参考になります。
アドバイス下さい。
0184nobodyさん
2008/12/12(金) 02:03:32ID:???0186nobodyさん
2008/12/12(金) 02:11:48ID:8m0qh2cG色々情報を書きすぎてすみません。
知りたいことは、一時間あたり「待ち時間なく」どれくらい処理できるか、ということでした。
そう考えたときに、51,429PVまでなら、待ち時間なく0.07秒で処理できるという認識で正しかったでしょうか?
0187nobodyさん
2008/12/12(金) 02:27:34ID:???0188nobodyさん
2008/12/12(金) 02:29:55ID:???PVとかあんまり参考にするものじゃない
0189nobodyさん
2008/12/12(金) 02:31:04ID:8m0qh2cGはい。0.07秒は、リクエストを最初に受け取った直後から、
リクエストを返却してスクリプトを終了する直前までの時間です。
5万回リクエストテストをして得た数値です。
DB処理も絡むシステムなので、待ち時間が発生すると、DBのデータ不整合が発生する場合があるので、
できる限り待ち時間を発生させないのが課題です。
0190nobodyさん
2008/12/12(金) 02:34:19ID:???0191nobodyさん
2008/12/12(金) 02:34:21ID:???いやいやいや・・・
トランザクション処理も知らないのか?
0192nobodyさん
2008/12/12(金) 02:41:15ID:???データーの不整合が発生しないように
組むのが普通だよね?
0193nobodyさん
2008/12/12(金) 02:45:54ID:8m0qh2cGトランザクションは、結構多いです。ですから、それで困っています。
そうなると、たまたま同じデータに更新処理しようとしたときに、微妙なタイミングでデータが破損することが分かっています。
これが原因だということを突き止めるのに結構時間も掛かりました。
以上の経緯から、システムを安全に運用するために、待ち時間を発生させる前にサーバー増設のタイミングを計ろうと考えているところです。
そのためのデータとして、一時間当たりの処理能力を測ることはできないでしょうか?
0194nobodyさん
2008/12/12(金) 02:47:29ID:???0195nobodyさん
2008/12/12(金) 03:00:16ID:???0197nobodyさん
2008/12/12(金) 03:12:52ID:???排他処理をすればいいでしょ。
処理能力を上げて待ち時間を無くして、DBを守るなんて無理。
昔、いい加減なCGIで作られた、超過疎のBBSでもログを飛ば
すことがしょっちゅうあった。
っていうか、何釣り?
0198nobodyさん
2008/12/12(金) 03:19:22ID:???努力する方向を間違ってる人っているよな。
0199nobodyさん
2008/12/12(金) 03:28:03ID:???0200nobodyさん
2008/12/12(金) 03:31:05ID:???0201nobodyさん
2008/12/12(金) 03:42:21ID:8m0qh2cG確かに、>>200さんが仰られているとおり完全に同時にアクセスされたら終わりです。
ただ、それは仕様として諦めるとしても、できるだけそのような状況を回避することはできないでしょうか?
たとえば、現実の話に喩えますと、店のレジが一個しかなくてレジ係の人が1時間で100人しか人をさばけないとします。
その時、一時間平均100人を超える人が並ぶことが予め想定されるならば、レジを増やすなりの必要があるのではと考えています。
単純に、一時間200人の客がくれば、一時間で100人の待ちが発生し、10時間後には1000人の待ちが発生します。
もし、この店が24時間営業ならば、この待ちは永遠に解消されません。
サーバーの話に戻しますと、永遠に解消されない待ちは、いずれシステムダウンに繋がるのではと思っています。
どのような動作になるのかは、知識不足で分かりませんが、そのような状況を回避するために一時間当たりの処理能力を測る手立てというものはありませんでしょうか?
長文ですみません。
0202nobodyさん
2008/12/12(金) 03:45:58ID:???ファイルロックとかしてないの?
0204nobodyさん
2008/12/12(金) 03:49:15ID:???有料にすればいいのに。
0205nobodyさん
2008/12/12(金) 03:57:29ID:8m0qh2cGphpの話というよりweb全体の話ということで、スレ違いなのでしょうか?
ちなみに、話題にあがっているロックや客の数を減らすというのは、
根本的な解決には全然ならないと思うのですが。
上のたとえで言えば、レジが処理できないので、客を外で待たせる、客を追い出すって話ですよね。
それはちょっと方法論として違うかと思います。
0206nobodyさん
2008/12/12(金) 04:21:32ID:???0207nobodyさん
2008/12/12(金) 05:49:01ID:???話がかみ合わないんじゃなくて、わかった上でおかしいんじゃない?
ってみんな言ってるんだと思うけど・・・
さてと、その変なところをおいといたとして。
>>189
> はい。0.07秒は、リクエストを最初に受け取った直後から、
> リクエストを返却してスクリプトを終了する直前までの時間です。
> 5万回リクエストテストをして得た数値です。
その5万回を入れた単位時間は?
1リクエストで付随的に発生する関連リクエストはないの?
で、同時アクセスの偏りはどの程度と見積もってるの?
で、業務のクリティカル度は?
とまぁ、いろいろ考えてからベンチを取らんとねぇ。
低負荷状態の処理時間なんて飾りです。
同時アクセスが継続した場合にどうなるかをチェック汁。
というわけで、
>>183
> 3600÷0.07=51,429PV処理できると考えて、ほぼ間違いないでしょうか?
ほぼ、間違いです。
リクエストが均一に来るわけないし、
ちょっと重くなるとF5アタック来るし、
0208nobodyさん
2008/12/12(金) 06:13:41ID:???掲示板で解決しようってのがそもそもの間違い
0209nobodyさん
2008/12/12(金) 07:41:10ID:???裏でDBを動かして、PHPでアンケート画面を作るとします。
アンケートの項目が多くて1つの画面で収まらない場合があるけど、
一覧性というか視認性を下げたくないからスクロールは使わないと
します。
当然アンケートが複数のページにまたがる形になりますが、こういう
場合はcookieで、前のページの情報を持つのが普通なのでしょうか?
あまり調べては居ませんが、PHPでテンポラリファイルを作成、或いは
cookieでアンケートのデータを保持するなどして、アンケートのいずれ
かのページにある登録ボタンが押されたらDBにデータを書き込む、
別のページに移動しようとしたら、キャンセルするかどうかの確認
ページを出す、ようにすることが可能でしょうか?
参考になるサンプルページがあるとよいのですが。
javaでクライアント側を作り込んだほうがよいのかもしれません。
0211209
2008/12/12(金) 08:09:31ID:???せいぜい数クライアントしか繋がないので、応答速度重視ではありません。
開発速度は必要です。
テキストを結構含むことになるので、クッキーだけでは追いつかない
かもしれず、PHPでテンポラリファイルを使うことになるのかなー、と
思ったのです。
0212nobodyさん
2008/12/12(金) 09:25:43ID:???テンポラリファイルでもできるんじゃね?
つうか、スレチかもよ。
つ ttp://pc11.2ch.net/test/read.cgi/php/1227303362/l50
0213nobodyさん
2008/12/12(金) 14:32:13ID:3H8K5DfDfopenでファイルを開いてwhileで回しながら
fgetsで1行ずつ取得できます。
それで質問ですが、指定行を読み込む事って出来ないのでしょうか?
全ファイルを出力するとファイルサイズによっては処理が遅くなるので
特定の文字列が一致する行だけ取得できればと思っています。
0216nobodyさん
2008/12/12(金) 20:33:31ID:???PHP一番給料安いwww
0218nobodyさん
2008/12/12(金) 21:09:44ID:N5GIYx97教科書を読んでたら、
「ファイルを読み込む処理をするときには、
is-readable関数を使って、
そのファイルが本当に存在するかどうか、
あらかじめ確かめないといけません。
この処理を忘れたときには、noticeが出ます」
って書いてあるんだけど、自分で書いたプログラムで、
テキストファイルをf_openで読み込む部分があるんだけど、
そこで別に、is_readableとかで、ファイルの存在とか、確かめなかったんだけど、
それで別にNoticeとか出なかったんだけど、これでいいのかな?
それとも、通常実行時には何もエラーが出なくて、
ファイルが存在しなかったときにだけ、エラーが出るって意味なの?
0220nobodyさん
2008/12/12(金) 21:24:04ID:N5GIYx97requireとかincludeとかの関連の質問です。
読み込むファイルの拡張子を.phpにしていると、
そのファイル単体を実行されてしまうかもしれないので、
拡張子を.incとかにしておくように、と
教科書に書いてあるのですが、そうなのですか?
0222nobodyさん
2008/12/12(金) 22:14:09ID:cYuXCaJp$this-> abc =
このときの -> はどういう意味でしょうか?
連想配列ではないと思うのですが
0223nobodyさん
2008/12/12(金) 22:15:41ID:cYuXCaJpコードを見ていると、
$this-> abc は $abc と同じではないかと考えているのですが
まちがいでしょうか。
0224nobodyさん
2008/12/12(金) 22:16:10ID:???http://jp2.php.net/manual/ja/language.oop5.basic.php
0225nobodyさん
2008/12/12(金) 22:43:09ID:N5GIYx97htmlentities と htmlspecialchars の違いだけど、
htmlentitiesはバグがあって、シフトJISの半角かなを入れると、
本来変換すべきでない文字なのに変換してしまって
プログラムが破壊される、という。
よってhtmlspecialcharsを使うべきである、
この理解であってる?
0226nobodyさん
2008/12/12(金) 22:56:48ID:cYuXCaJpむずかしくてわかりません。
もっとわかりやすいのはないでしょうか。
0227nobodyさん
2008/12/12(金) 23:00:38ID:N5GIYx97「PHP 5以降、デフォルトで値はリファレンス渡しとなります。」
と書いてあるのだが、自分で実際に実験してみたら、
値渡しになっているのだが、これってどっちが正しいの?
0228nobodyさん
2008/12/12(金) 23:02:18ID:N5GIYx97デリヘル「おまんこクラブ」って店があったとして、
そこに登録している女の子が「みよちゃん」「あすかちゃん」「かなえちゃん」
だったとして、
「みよちゃん」を指名するのが、
$おまんこクラブ-> みよちゃん
0229nobodyさん
2008/12/12(金) 23:04:54ID:N5GIYx97ごめん、意味がわかった。
本来書くべき引数を、省略した場合に
どちらが使われるか、という意味なのね。
0230nobodyさん
2008/12/12(金) 23:14:45ID:???べつにis_readableしなくてもfopenにエラー制御付けてdieすればいいじゃない
.incにするというより外部からアクセスできなくする方がいい。
読み込みさせたくないファイルをexample.inc.phpとかにして.htaccessとかで
<FilesMatch "\.inc\.php$">
Order allow,deny
Deny from all
</FilesMatch>
って書いてあげればおk
つーか教科書ってなによ
0231nobodyさん
2008/12/12(金) 23:17:42ID:N5GIYx97「incフォルダ」というのを作って、
そこにincを全部押し込めて、そんで
そのフォルダのパーミッションごと、
ユーザーからは000にすればいいかな。
そんで、オーナーからのみ利用可能と。
0232nobodyさん
2008/12/12(金) 23:30:45ID:???0233nobodyさん
2008/12/13(土) 01:00:18ID:6CbaLDLd「メタタグで、ページのコードを指定しないと
セキュリティ的に危険」
という記述を見つけたんだけど、そうなの?
0234nobodyさん
2008/12/13(土) 01:04:08ID:6CbaLDLdhtmlspecialchars で、
第三引数に、
mb_internal_encodingを指定するやり方と、
utf-8 を指定するやり方と、
2種類あるようなんだが、
これの違いはなに?
0235nobodyさん
2008/12/13(土) 01:08:01ID:6CbaLDLdユーザーが何か文字を入力するような
フォームは一切置いてなくて、ただボタンを押す
だけのプログラムなんだが、この場合でも
htmlspecialchars等でサニタイズはしたほうがいいの?
「変数を画面に出力する場合には、
すべてサニタイズしたほうがよい」
って解説サイトに書いてあったので。
あと
「POSTでも攻撃はできる」
との記述もありました。
0236nobodyさん
2008/12/13(土) 02:21:17ID:RdWJvdiT「POSTでも攻撃はできる」は確かにできるけど、
それはあくまで変数を取得したときだから
■ このスレッドは過去ログ倉庫に格納されています