トップページ⇒php
1001コメント322KB

【PHP】下らねぇ質問はID出して書き込みやがれ 77

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/12/08(月) 01:27:39ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、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等)・フレームワークは各該当スレへ
0102nobodyさん2008/12/09(火) 17:37:28ID:???
なんか変なのが沸いてるな
0103nobodyさん2008/12/09(火) 17:43:01ID:???
>>82
PDOをやめる。という解決は?!
0104nobodyさん2008/12/09(火) 18:46:37ID:O9eg0LyY
【OS名】CentOS release 5.2
【PHPのバージョン】PHP5.1.6

pecl installでAPC導入したのですがphpinfo()に反映されませんでした。
apache再起動時のエラーログを確認した所
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/apc.so' - /usr/local/lib/php/extensions/apc.so: undefined symbol: zend_compile_file in Unknown on line 0
と出ています。
導入したAPCのバージョンは3.0.19です。
解決策ありましたらご教授よろしくお願いします。
0105nobodyさん2008/12/09(火) 19:21:43ID:AVrbWSbl
少数は内部的に違う数値になっているから
少数の比較をしてはならない、
って、解説サイトに書いてあったんだが、そうなの?
0106nobodyさん2008/12/09(火) 19:22:15ID:???
少数X
小数○
0107nobodyさん2008/12/09(火) 19:30:42ID:???
質問者としての態度をわきまえろ!
0108nobodyさん2008/12/09(火) 19:36:14ID:???
                   ∧∧ ∩
                  ( ゚ω゚ ) /
             ハ_ハ   ⊂   ノ    ハ_ハ
           ('(゚ω゚`∩   (つ ノ   ∩´゚ω゚)')
       ハ_ハ   ヽ  〈    (ノ    〉  /     ハ_ハ
     ('(゚ω゚`∩  ヽヽ_)        (_ノ ノ    ∩´゚ω゚)')
     O,_  〈                      〉  ,_O
       `ヽ_)                     (_/ ´
   ハ_ハ          お 断 り し ま す         ハ_ハ
⊂(゚ω゚⊂⌒`⊃                       ⊂´⌒⊃゚ω゚)⊃
0109nobodyさん2008/12/09(火) 23:37:38ID:???
質問ないのか?まったく日々精進する気のねえ三流プログラマどもだな
0110nobodyさん2008/12/10(水) 12:01:59ID:6u+ZdXWj
こんにちは。PHPでMySQLのデータをエクセル出力したいです
MySQLのデータを、PHPを用いて表示は出来ましたが、エクセルへ出力となると何から手をつけていいのやら…

オススメの参考資料などありませんか?
ググってもCVS出力というものばかりヒットします
0111nobodyさん2008/12/10(水) 12:12:05ID:???
公式マニュアルに書いてありますね
0112nobodyさん2008/12/10(水) 12:49:12ID:???
だったらそのマニュアルのリンクを張れ!!!
0113nobodyさん2008/12/10(水) 12:52:42ID:???
ぐぐれよ
0114nobodyさん2008/12/10(水) 12:54:11ID:???
webサイトの開発のテスト目的で
強制的にセッションを切断したいんだけど
なんか良い方法ある?
0115nobodyさん2008/12/10(水) 12:55:48ID:???
ブラウザを閉じる
0116nobodyさん2008/12/10(水) 13:14:41ID:???
閉じても切れないんだよなこれが
0117nobodyさん2008/12/10(水) 13:17:26ID:???
>>114
サーバのセッションファイルを手作業で削除
0118nobodyさん2008/12/10(水) 15:02:36ID:???
>>116
ブラウザのクッキーをクリアしたらいいじゃないか?
0119nobodyさん2008/12/10(水) 16:36:22ID:AE/sV1ze
フォルダを圧縮して、ダウンロードさせにはどうしたらいいでしょう。
フォルダのなかに、ファイル(データ書込み)をつくり、
そのフォルダを圧縮します。

また、複数人がアクセスすることを考えると、
ファイルには乱数で名前をつける必要があるのでしょうか?

素人ですみませんが
0120nobodyさん2008/12/10(水) 16:40:54ID:???
圧縮してからうpればいいじゃん
0121nobodyさん2008/12/10(水) 17:13:46ID:AE/sV1ze
すみません。

WEB上から申し込んだ人に対して、
個別にファイルをTENPでつくり、
それを入れたフォルダを圧縮したいです。
0122nobodyさん2008/12/10(水) 17:23:26ID:???
>>121
つ ttp://jp.php.net/manual/ja/ref.zlib.php
0123nobodyさん2008/12/10(水) 17:23:45ID:???
圧縮関数なかったっけ?
0124nobodyさん2008/12/10(水) 17:48:30ID:IV3o+bU1
$part1から$part78まで、$_POST['part1']から$_POST['part79']までをそれぞれの変数に下記のようにセットしたいのですが、いちいち一列づつ書いていく意外に方法ありますか?

$partO=$_POST['partO'];
0125nobodyさん2008/12/10(水) 17:49:16ID:IV3o+bU1
間違えました↑

$_POST['part78']までです
0126nobodyさん2008/12/10(水) 18:05:15ID:???
>>124
extractかregister_globalsか$_POSTのまま使う
0127nobodyさん2008/12/10(水) 18:08:59ID:???
>>124
配列にセットしたら?

$part = array();
for ($i = 1; $i <= 79; $i++) {
if (isset($_POST["part{$i}"])) {
$part[$i] = $_POST["part{$i}"];
}
}
01281272008/12/10(水) 18:12:06ID:???
あ、78までか
$i <= 78か$i < 79ね
0129nobodyさん2008/12/10(水) 18:14:47ID:IV3o+bU1
>>126

ありがとうございます。
$_POST[]の部分に変数が入れられないと思ってましたが、ググってみたら"{}"で入れられるんですね。
0130nobodyさん2008/12/10(水) 18:15:56ID:IV3o+bU1
間違えた↑

>>126>>127>>128
0131nobodyさん2008/12/10(水) 18:16:45ID:???
>>129
入れられるわ
$_POST[$key]
0132nobodyさん2008/12/10(水) 18:19:47ID:IV3o+bU1
>>131

orz

自分 '' をつけてました。
0133nobodyさん2008/12/10(水) 18:20:44ID:???
別にシングルクオートでも
$_POST['part' . $i]とかでもいいよ
柔軟に書けます
0134nobodyさん2008/12/10(水) 19:22:10ID:AE/sV1ze
>>つ ttp://jp.php.net/manual/ja/ref.zlib.php

素人なものですみません。

ファイルの圧縮は、例文どおりに書いたらできましたが、
フォルダの圧縮がまったくわかりません。
どの関数を使うのでしょうか?

また、複数人が同時アクセスすると、
フォルダの中には複数のtempファイルが入ってしまうのでしょうか?
個別にしたいわけですが。
0135nobodyさん2008/12/10(水) 19:31:33ID:???
アーカイブ+圧縮すればできそうだが
0136nobodyさん2008/12/10(水) 20:01:42ID:UV6BBIxz
質問

<?php
for ($a=0; $a<3; $a++){
print ($a."<br />");
}
?>


↑これで、1行ずつ表示したいんだが、無理?
0137nobodyさん2008/12/10(水) 20:07:08ID:???
>>136
何故試さないのですか?
0138nobodyさん2008/12/10(水) 20:10:34ID:???
>>134
フォルダーの圧縮やってみました?
mkdirしてそこに必要なファイルをつっこんでそのフォルダを圧縮 チーン
0139nobodyさん2008/12/10(水) 20:11:37ID:UV6BBIxz
>>137
いや、だから、何を試すんだよ?
バカなのかお前
0140nobodyさん2008/12/10(水) 20:12:12ID:UV6BBIxz
>>137
1行ずつ、って
ゆっくり表示する、って意味だよ?
0141nobodyさん2008/12/10(水) 20:14:21ID:???
>>140
>>1を満たしていないので却下
0142nobodyさん2008/12/10(水) 20:18:28ID:???
>>140
ゆっくり表示するって書いてくれなきゃわからないです。ごめんなさい。
田代砲でサーバ攻撃しながら表示すればOK
0143nobodyさん2008/12/10(水) 20:19:25ID:???
って、あぁぁ、送信つもりないのにエンター押しちゃったよorz..
flushとsleep使ったらどうかね
0144nobodyさん2008/12/10(水) 21:11:51ID:???
ローカルサーバにローカルから田代砲を試し打ちして
しっかり守ってるかセキュリティのチェックがしたいのですが
田代砲って配布サイトで拾ってきたもの使っても大丈夫ですか?
01451442008/12/10(水) 21:12:46ID:yyzcwK8M
すいません144です
0146nobodyさん2008/12/10(水) 21:24:10ID:???
んなスクリプト3行ぐらいで出来るだろ・・・
0147nobodyさん2008/12/10(水) 21:31:58ID:???
田代砲ってDoS攻撃だろ・・・
セキュリティのチェックとか関係ない
0148nobodyさん2008/12/10(水) 21:42:22ID:???
http://science6.2ch.net/test/read.cgi/math/1228746786/291

この問題を表示するプログラムって
ちょちょいと作れる?
0149nobodyさん2008/12/10(水) 21:43:19ID:???
作れるっていったら作るなら作れるって言ってあげるよ
0150nobodyさん2008/12/10(水) 21:48:36ID:???
>>148
京大過去問乙
0151nobodyさん2008/12/10(水) 21:49:21ID:AE/sV1ze
圧縮の件ですが、
1)ファイルを動的につくる
2)そのファイルを含む複数のファイルをまとめて圧縮する

この2つをやる例文はないでしょうか?

素人なものですみません
0152nobodyさん2008/12/10(水) 22:04:50ID:???
>>149-150

とりあえず、
フォームで、「nの値を入力させる」

そんで、nが確定するから、
そのときの、出る目のパターンを、
全表示する、って、PHPでできる?
0153nobodyさん2008/12/10(水) 22:15:04ID:???
>>151
http://pear.php.net/package/Archive_Zip/
0154nobodyさん2008/12/10(水) 22:33:18ID:???
Pear使わなくても標準クラスで良くね?
http://jp.php.net/manual/ja/function.ziparchive-open.php
0155nobodyさん2008/12/10(水) 22:56:27ID:???
http://c-brains.jp/blog/wsg/08/04/07-144033.php

このサイトわかりやすい
0156nobodyさん2008/12/10(水) 23:00:34ID:???
作者の宣伝乙
0157nobodyさん2008/12/10(水) 23:02:09ID:???
http://c-brains.jp/blog/wsg/08/05/22-193020.php

このページに、

「セッションというものは、クッキーを利用している」

って書いてあるけど、別にクッキーを使わない
セッションというものも、あるんですよね?
0158nobodyさん2008/12/10(水) 23:09:40ID:???
>>157
ある。
お勧めはしない
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
(1)クッキー
(2)URL埋め込み
(3)hidden

おおまかに言って、この3種類?
0166nobodyさん2008/12/11(木) 01:13:02ID:vCW1WzQV
たびたびすみません

http://jp.php.net/manual/ja/zip.examples.php

ここに書いてある最初の例を、ローカルで試すと、
書き込んだファイルの拡張子の後に、
乱数(時間?)の数字がつきます。
それも、ちょっとまずく、
個別のアクセスした人に、個別のファイルをダウンロードさせたい
わけです。
数字なしにすれば、いいでしょうか。
その場合、同時アクセスのリスクはあるでしょうか?

素人ですみません

0167nobodyさん2008/12/11(木) 01:42:27ID:???
>>166
これはおもしろいサンプルだ。
実行したら、パソコンの中にZIPファイルができた。
0168nobodyさん2008/12/11(木) 02:07:33ID:???
>>166
>乱数(時間?)の数字がつきます。
time()を外しゃいいのでは?
0169nobodyさん2008/12/11(木) 02:16:43ID:vCW1WzQV
レスありがとうございます。
time()を外すと、大丈夫でした。

あと、アクセスした人個別にファイルをつくり、
その個別ファイルをダウンさせたいわけです。

なので、同時にアクセスされると不具合が起きるような気がして
ずっと心配しています。

そういう場合はプロの方はどうするのでしょうか?

同時に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:???
まさに、タイトル通り、くだらねぇ
0177nobodyさん2008/12/11(木) 12:52:42ID:???
>>172
ポピュラーなんてない
考えるならどちらが最善なのかを状況に応じて考えろ
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:???
3行ごとに分けてexplodeなりsubstrなり正規表現なりで好きなように切り取ればいいじゃない
0180nobodyさん2008/12/11(木) 21:43:42ID:???
>adfadfasdfasf2 356 Thu Dec 11 05:20 data2
悩むとするならこの行だろうけど、
項目が減ったり増えたりする訳じゃないのだから
頑張って正規表現だな。

まず、日付を先に取り出すのを考えて、日付取り出しちゃえば
後はすげー楽だと思う。

7種類の曜日のどれか、スペース、12種類の月のどれか、スペース
数字2桁、スペース…
正規表現に当てはめるのは簡単だけど、書くのは凄いめんどくさそうだね。
0181nobodyさん2008/12/11(木) 22:37:36ID:yxR9XmFM
>>179 >>180
アドバイスありがとうございました。
行での正規表現でのアドバイス参考になりました。

ただ、3行ずつ分けるって、結構大変そうですね。
やはりフラグを多用し、プログラムがぐちゃぐちゃになりそうなので、
そこはちょっと困ったところです。もう少し考えてみます。
どうもありがとうござました。
0182nobodyさん2008/12/12(金) 01:34:45ID:???
implode("\n", $text)やって
$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
phpでベンチマークで一回のPVで平均0.07秒掛かります。

一時間当たりのどれくらい処理できるかを考えるとき、
3600÷0.07=51,429PV処理できると考えて、ほぼ間違いないでしょうか?

どれだけの処理能力があるかが分かると、どれくらいの負荷の時に、
サーバーを増やす必要があるかどうか分かるので、参考になります。
アドバイス下さい。
0184nobodyさん2008/12/12(金) 02:03:32ID:???
お前は何を言ってるんだ
0185nobodyさん2008/12/12(金) 02:08:35ID:???
>>183
ちゃんとした負荷テストをやって下さい
0186nobodyさん2008/12/12(金) 02:11:48ID:8m0qh2cG
>>184>>185
色々情報を書きすぎてすみません。
知りたいことは、一時間あたり「待ち時間なく」どれくらい処理できるか、ということでした。
そう考えたときに、51,429PVまでなら、待ち時間なく0.07秒で処理できるという認識で正しかったでしょうか?
0187nobodyさん2008/12/12(金) 02:27:34ID:???
ベンチマークの0.07秒とはユーザ秒?システム秒?
0188nobodyさん2008/12/12(金) 02:29:55ID:???
処理時間や負荷なんて同時アクセス数で増減する増えるわけで
PVとかあんまり参考にするものじゃない
0189nobodyさん2008/12/12(金) 02:31:04ID:8m0qh2cG
>>187
はい。0.07秒は、リクエストを最初に受け取った直後から、
リクエストを返却してスクリプトを終了する直前までの時間です。
5万回リクエストテストをして得た数値です。

DB処理も絡むシステムなので、待ち時間が発生すると、DBのデータ不整合が発生する場合があるので、
できる限り待ち時間を発生させないのが課題です。
0190nobodyさん2008/12/12(金) 02:34:19ID:???
トランザクション使えよ
0191nobodyさん2008/12/12(金) 02:34:21ID:???
>DBのデータ不整合が発生する場合があるので、
いやいやいや・・・
トランザクション処理も知らないのか?
0192nobodyさん2008/12/12(金) 02:41:15ID:???
待ち時間が発生しようとも、
データーの不整合が発生しないように
組むのが普通だよね?
0193nobodyさん2008/12/12(金) 02:45:54ID:8m0qh2cG
>>190 >>191
トランザクションは、結構多いです。ですから、それで困っています。
そうなると、たまたま同じデータに更新処理しようとしたときに、微妙なタイミングでデータが破損することが分かっています。
これが原因だということを突き止めるのに結構時間も掛かりました。
以上の経緯から、システムを安全に運用するために、待ち時間を発生させる前にサーバー増設のタイミングを計ろうと考えているところです。
そのためのデータとして、一時間当たりの処理能力を測ることはできないでしょうか?
0194nobodyさん2008/12/12(金) 02:47:29ID:???
お前は何を言ってるんだ
0195nobodyさん2008/12/12(金) 03:00:16ID:???
ロックをかけたりするんじゃないの?
0196nobodyさん2008/12/12(金) 03:06:02ID:???
>>193
銀行が世の中からなくなるわ
0197nobodyさん2008/12/12(金) 03:12:52ID:???
>>193
排他処理をすればいいでしょ。
処理能力を上げて待ち時間を無くして、DBを守るなんて無理。
昔、いい加減なCGIで作られた、超過疎のBBSでもログを飛ば
すことがしょっちゅうあった。

っていうか、何釣り?
0198nobodyさん2008/12/12(金) 03:19:22ID:???
頭がいいんだか、悪いんだか、、、
努力する方向を間違ってる人っているよな。
0199nobodyさん2008/12/12(金) 03:28:03ID:???
1時間あたり何PV処理できれば不整合が発生しないと考えてるのか気になる
0200nobodyさん2008/12/12(金) 03:31:05ID:???
そんなもん、同時にアクセスされたら終わるにきまっとる
0201nobodyさん2008/12/12(金) 03:42:21ID:8m0qh2cG
私の知識不足と説明不足で、色々考えさせてしまってすみません。
確かに、>>200さんが仰られているとおり完全に同時にアクセスされたら終わりです。
ただ、それは仕様として諦めるとしても、できるだけそのような状況を回避することはできないでしょうか?

たとえば、現実の話に喩えますと、店のレジが一個しかなくてレジ係の人が1時間で100人しか人をさばけないとします。
その時、一時間平均100人を超える人が並ぶことが予め想定されるならば、レジを増やすなりの必要があるのではと考えています。
単純に、一時間200人の客がくれば、一時間で100人の待ちが発生し、10時間後には1000人の待ちが発生します。
もし、この店が24時間営業ならば、この待ちは永遠に解消されません。

サーバーの話に戻しますと、永遠に解消されない待ちは、いずれシステムダウンに繋がるのではと思っています。
どのような動作になるのかは、知識不足で分かりませんが、そのような状況を回避するために一時間当たりの処理能力を測る手立てというものはありませんでしょうか?

長文ですみません。
■ このスレッドは過去ログ倉庫に格納されています