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

【PHP】下らねぇ質問はここに書き込みやがれ 70

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/06/25(水) 10:14:08ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは970が立ててください立たなかった場合は980よろ

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 69
http://pc11.2ch.net/test/read.cgi/php/1211879073/
◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。

◆質問後の注意
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくは質問時のトリップをつける事。
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0332nobodyさん2008/07/04(金) 18:42:27ID:ya62/r1Y
>>331
スレ違いというより、むしろあなたの勘違いです。
0333nobodyさん2008/07/04(金) 18:47:04ID:???
まぁまぁ、そう熱くならずに自分のおならの臭いを嗅いでエクスタシー感じようよ!
0334nobodyさん2008/07/04(金) 18:48:38ID:???
>>327
確認しましたがしっかり書けていました
ファイル名をフルパスでも試して見ましたが同じでした

うーん、formatOutputってあんま意味ないのか…
がっかり
0335nobodyさん2008/07/04(金) 18:55:24ID:???
>>330
一回のリクエストで10秒掛かるのの処理を分散した言って事?
0336nobodyさん2008/07/04(金) 18:59:20ID:???
数万行のCSVファイルを読み込み、指定した行列のものを取り出す場合では、
数万行のファイル一つを読み込み表示させる方法と
数万行のファイルを分割して、それぞれ読み込み表示させる方法では速度に違いはでてきますか?
どちらが効率よいでしょうか。
0337nobodyさん2008/07/04(金) 19:02:05ID:???
DBを使う
0338nobodyさん2008/07/04(金) 19:20:06ID:???
>>336
例えば1000行ごとにファイルを分けて1100行目なら二つ目のファイルを読み込むってことか?
こっち
0339nobodyさん2008/07/04(金) 19:20:33ID:???
>>337
でたなDB厨
0340nobodyさん2008/07/04(金) 19:29:11ID:???
任意のテキストファイルを読み込み、その内容をブラウザ上に表示
と、いうことをやりたいです。

プログラム上でテキストファイルを指定し、表示させることまでは出来ました
ですが、『任意のファイルを選択』させることが出来ません
何か良い方法や考え方は無いでしょうか?

教科書など持っていないので、オススメの本やサイトがありましたら、紹介していただけるとうれしいです
0341nobodyさん2008/07/04(金) 20:37:53ID:???
誰が選ぶんだ。俺か?断る!
0342nobodyさん2008/07/04(金) 21:17:16ID:???
>>340
ターゲットディレクトリ内に存在するファイルの個数を取得して、
その数だけの範囲を持つ整数の乱数=nを発生させて、
該当するn番目のファイルを開くようにすれば良いんじゃね?
0343nobodyさん2008/07/04(金) 21:23:09ID:???
>>330
これ、釣りじゃないの?

こんな知識、というか思考力で過負荷になるようなサイト構築できるのか?
信じられん。よほどサイトコンテンツが良いのか、サーバにMSXでも使って
いるんじゃないのか?
0344nobodyさん2008/07/04(金) 22:36:40ID:???
>>340
input type="file"
0345nobodyさん2008/07/04(金) 22:53:21ID:zZLzuSUy
いまだにXPとか使ってるヤツって何なの?一般人なの?
http://news24.2ch.net/test/read.cgi/liveplus/1215164615/
0346nobodyさん2008/07/04(金) 23:22:17ID:???
>>343
我々の想定外のリソース超消費ロジック組んでるんだとオモ
0347nobodyさん2008/07/05(土) 03:42:00ID:???
数万行のファイルならすぐに過負荷になる。PHPのようなブラウザ表示デバッグだと、その時点で気付くはず。
0348nobodyさん2008/07/05(土) 03:52:36ID:???
>>347
たかだか10MB程度のファイルで?

一行256バイト×5万 = 12,800,000 = 約12MB
0349nobodyさん2008/07/05(土) 04:08:23ID:???
凄まじい密度だな
0350nobodyさん2008/07/05(土) 04:14:55ID:???
密度? CSVファイルで?
なんのこといってんの?
0351nobodyさん2008/07/05(土) 04:17:59ID:???
お前ら早朝に喧嘩してないで、
ジョギングでも行ってこいよ。もう外は明るいぞ。
0352nobodyさん2008/07/05(土) 04:19:18ID:???
<?xml version="1.0" encoding="UTF-8"?>
<head>
<score sort_no="2">
<score sort_no="1">
<score sort_no="3">
<score sort_no="4">
</head>
こんな感じのxmlファイルをsort_noでソートして保存しようと思って、simplexmlで読み込んで
usort、uasort、uksortやったけど全部ダメだった
まぁオブジェクトだから当然と言えばそうなんだけど、オブジェクトをforeachする時に出てくる順番を変える方法教えて下さい
php5です
0353nobodyさん2008/07/05(土) 04:36:38ID:???
出来ました
foreach($dom->score as $value){
$dom2[]=$value;
}
uksort($dom2,"sort_list");
こんな感じで
リファレンスって難しいなあ
0354nobodyさん2008/07/05(土) 04:53:16ID:???
お前は何を言ってるんだ
0355nobodyさん2008/07/05(土) 04:55:12ID:FcvNsP01
出来てなかった…
0356nobodyさん2008/07/05(土) 08:16:24ID:???
>>348
とりあえず一回、「PHP 配列 メモリ」で検索してみたほうがいいんじゃない。
メモリ使用量はかっこいいぜ。
0357nobodyさん2008/07/05(土) 09:02:09ID:???

      ∩___∩
   (ヽ  | ノ      ヽ  /)
  (((i ) /  (゜)   (゜) | ( i)))   …なんちゃってねっ! チンポっ☆
 /∠彡    ( _●_)  |_ゝ \
( ___、    |∪|    ,__ )
    |      ヽノ  /´
    |        /
0358nobodyさん2008/07/05(土) 11:33:06ID:oP1dT0fT
test.php?1の場合、$no=1のようにGETリクエストの値を動的に変数に入れたいんですけど、どういった方法が存在しますか。
0359nobodyさん2008/07/05(土) 11:45:07ID:???
noなんてどこにも出てきてないのに動的にとか意味がよく分からない
0360nobodyさん2008/07/05(土) 11:46:38ID:???
>>358
$no = $_SERVER['QUERY_STRING'];
0361nobodyさん2008/07/05(土) 12:49:00ID:???
>>358
適当なフレームワークのソース呼んで、ルーティング処理パクレ

例えば、
symfonyなら /index.php/1を
/index.php/hogeModule/hogeAction/no/1みたいにしてくれるのを設定ファイルでかけるから
03623582008/07/05(土) 13:01:14ID:oP1dT0fT
>>359-361
ありがとうございます。
参考にします。
0363nobodyさん2008/07/05(土) 13:06:33ID:???
いやそれだけかよ。言葉足らずなんだからちゃんと説明しろよ。
0364nobodyさん2008/07/05(土) 16:40:16ID:7nNiVjXj
>>363
言葉が足りていても、私の時には全然回答もしてくれませんでしたが。
Apache複数起動で悩んでいる中年SEより。
0365nobodyさん2008/07/05(土) 16:50:08ID:???
。・゚・(ノД`)・゚・。
0366nobodyさん2008/07/05(土) 16:50:15ID:???
しつこいな
回答あるだろ
0367nobodyさん2008/07/05(土) 16:52:18ID:???
複数起動はかえって負荷かかる
0368nobodyさん2008/07/05(土) 16:59:30ID:???
>>364
何を根拠に言葉が足りていたとw
0369nobodyさん2008/07/05(土) 17:05:28ID:???
>>364
たとえ2つPHP実行しても速くならないよ。
玉子焼き1000個同時に焼いても1秒で焼けない。1個と同じ時間かかる。
0370nobodyさん2008/07/05(土) 17:05:53ID:???
負荷分散の対策が、どういった理屈で複数起動にたどり着いたのかが不思議。
同一サーバーでの複数起動って意味だよね?何かあるんだろうか。
それとも日本語が不自由で考えてることをちゃんと文章化できていないのか。

てか、どっちにしろPHPとはまったく関係ないからスレ違いになるのか・・・
0371nobodyさん2008/07/05(土) 17:09:04ID:???
遅い原因調べないSEはいなくなって欲しい。
0372nobodyさん2008/07/05(土) 17:13:56ID:7nNiVjXj
前にも書きましたが、スクリプトがAとそこから呼び出しているBがあります。
スクリプトAは、2000行以上ありますが、0.1秒程度で終わりますが、
スクリプトBは、400行しかないのに、10秒前後もかかります。

そのことから、スクリプトAを80番ポートで動かし、
スクリプトBを10分割して、81〜90番ポートで動かせば1秒で終了するという見積もりです。

ただ、やり方がよくわかりません。
スクリプトBが遅いのも原因不明です。
phpがインタプリタ言語だから遅いって言ってしまえばそれまでですが、
だからといって10秒は遅すぎます。

負荷分散する方法としてこれ以外に思いつきません。
0373nobodyさん2008/07/05(土) 17:16:26ID:7nNiVjXj
もう一つ付け加えると、Apacheはマルチスレッド処理といって、
平行処理ができると聞いています。phpの中だけで並行処理ができる方法があれば、それを教えて頂く方が簡単ですが。
0374nobodyさん2008/07/05(土) 17:16:51ID:???
ソースうp
0375nobodyさん2008/07/05(土) 17:19:32ID:???
その前に、その400行で何をやっているの?
ざっくり400行じゃなくて、遅い箇所があるとおもうけど。
0376nobodyさん2008/07/05(土) 17:24:01ID:7nNiVjXj
スクリプトBでは、単にデータベース(MySQL)と接続して、
データを取得して更新して、取得したデータをスクリプトBに返す処理しかやっていません。
MySQLは、処理速度が速いデーターベースと聞いておりますし、
それ以外では、文字列を編集する処理をやっていますが、それはデータベースにデータを渡す際の
エスケープ処理です。ソース全体を呼んでみましたが、特に遅いと思われる箇所もありませんでした。
0377nobodyさん2008/07/05(土) 17:28:11ID:???
じゃあDBが速くならないとPHPが速くても速くならないよ。
0378nobodyさん2008/07/05(土) 17:30:44ID:???
>>376
とりあえずさぁ、そのスクリプトに時間計測するコードを入れて、
一番遅い所を一行に絞って、そのコードをココに貼ればわかるよ。
0379nobodyさん2008/07/05(土) 17:42:07ID:???
どう考えても処理のある点がボトルネックになってるだろうに
phpはインタプリタ言語だから遅くても仕方ないと
納得する発想がPGとしてありえないってw
てか最初からずっと同じこと言われてるじゃん。少しは質問の仕方も進歩してくれ。
0380nobodyさん2008/07/05(土) 17:52:45ID:???
プログラムする人ってこんな能書きをダラダラ言う人多いね。
キモイ。
0381nobodyさん2008/07/05(土) 17:54:33ID:???
>>376
マルチスレッドが知りたいのなら、「PHP マルチスレッド」でググリなよ。
ここで説明するより分かり易いところがいくつか見つかるよ。

Apache複数起動とかポートがどうとか、
PHPとは関係ないことを言うから、スレ違い、ネタだと判断されたんだよ。
「マルチスレッドを利用する方法を知りたい」だけでいいじゃん。
0382nobodyさん2008/07/05(土) 18:04:06ID:???
マルチスレッドも関係ないだろw
0383nobodyさん2008/07/05(土) 18:05:40ID:???
正直その程度の知識で金もらって仕事してんの? と思うわけだが
できない事はできないって言うのも仕事の内ですぜ
0384nobodyさん2008/07/05(土) 18:06:06ID:???
>>376
> データを取得して更新して、取得したデータをスクリプトBに返す処理しかやっていません。

えーと、ウェブアプリに限らずほとんどの処理は

データを取得して、更新して、取得したデータを何かに渡す物ですが?

その処理の内容で遅くないと判断できるわけが無いよね?

いいか、あんたがヘボだから、あんたが作ったソフトが重いんだ。
技術不足なんだよ。あんたは。
0385nobodyさん2008/07/05(土) 18:12:56ID:???
>>376

君には難しいことを言ってもわからないと思うから
技術者じゃなくてもわかることを聞くねw

サーバー費は月いくらかかってる?
0386nobodyさん2008/07/05(土) 18:19:34ID:???
もう答えが出てるなら、まったく関係ないところをネチャネチャ叩くなよ気持ち悪い奴らだな
0387nobodyさん2008/07/05(土) 18:20:04ID:???
>>383
できないって最初から言ってるのにどんどん小難しい案件が舞い込んできます。
当然やりますが。でも出来ませんっていつも言います。
0388nobodyさん2008/07/05(土) 18:28:07ID:???
物理的に台数増やしてロードバランス、これ
でもDBサーバが先に悲鳴をあげるだろうから
レプリケーションもやっとけ
0389nobodyさん2008/07/05(土) 18:36:15ID:???
>>387
口で言うだけなら誰でも出来るんだよ。
0390nobodyさん2008/07/05(土) 18:51:52ID:???
>>382
関係なくはないだろう。早くなるとは思えんが。
0391nobodyさん2008/07/05(土) 18:55:18ID:???
ボタンを押すと飛ばすようにするにはどうすればいい?

print"で<a href=〜>〜</a>
で、リンク生成は出来るんだが、
0392nobodyさん2008/07/05(土) 18:58:30ID:???
http://www.tagindex.com/html_tag/form/input_submit.html?test=%82%A0%82%A0
ここのページの様にフォームに入力してからボタンを押すと、各検索エンジンに飛ばしたいんだけど。
0393nobodyさん2008/07/05(土) 19:00:32ID:???
ネタじゃなかったのか…。そんなに案件が降ってくるなら他の専門家に
任せて自分はちょっとピンハネの方が顧客も自分も幸せだと思うぞ。

現在の技術うんぬんよりも、解決方法にたどり着く術が間違っているから。
0394nobodyさん2008/07/05(土) 19:20:33ID:???
>>392
「検索エンジン php」
0395nobodyさん2008/07/05(土) 19:23:08ID:???
ネタか真性か判断するPHPコードを教えてくん。
0396nobodyさん2008/07/05(土) 19:33:45ID:???
>>394
d、php配布されているのじゃなく、自分で作りたいんです
0397nobodyさん2008/07/05(土) 20:57:26ID:???
その検索エンジンのサイトにやり方出てるだろ
0398nobodyさん2008/07/05(土) 21:17:40ID:???
>>387に対する>>389の返答が分かりません。教えてください。
0399nobodyさん2008/07/05(土) 21:18:45ID:???
いい加減荒らすのはやめてくれ
0400nobodyさん2008/07/05(土) 21:26:54ID:???
>>396
なんだかPHPじゃなくてHTMLのformとinputの使い方の質問ぽい気がするんだが。
まあ俺には難しくてわかんないや。

>>398
わからないがあまり教えてほしいとは思わなかった。
04013962008/07/05(土) 21:42:04ID:???
>>400
それです。
HTMLとphpの組み合わせは対象外でしょうか?
0402nobodyさん2008/07/05(土) 21:44:22ID:???
>なんだかPHPじゃなくてHTMLのformとinputの使い方の質問ぽい気がするんだが。

>それです。
>HTMLとphpの組み合わせは対象外でしょうか?

え??
ごめん、あなたの質問は難しくて俺にも理解できないや
0403nobodyさん2008/07/05(土) 21:45:19ID:???
>>401
ここをよく読んでごらん
ttp://www.google.co.jp/intl/ja/searchcode.html
0404nobodyさん2008/07/05(土) 21:45:21ID:???
検索エンジンのページに検索窓のHTMLタグがあるだろ
それコピペしてHTMLに貼っとけや
0405nobodyさん2008/07/05(土) 21:45:38ID:???
>>400
自分のサイトのフォームから外部検索エンジンで検索したいってことだから、
phpの範囲に含めても問題ないと思う。

ただ、検索サイトを見に行けばいいだけなのに
わざわざここで質問する意味もわからんが。
まぁ、>>394が答えを出してるから終了した質問だな。
0406nobodyさん2008/07/05(土) 21:52:36ID:7nNiVjXj
色々とアドバイスありがとうございます。その殆どは辛辣なものばかりでしたが。

一つ一つコードを時間計測しましたが、
時間がかかっているところは、参照用のSQLを発行してデータを戻す関数が原因だとわかりました。

$rs = mysql_query($sql, $dblink);

このmysql_queryの実行だけに10秒かかっています。
ただ、これでは並行処理ができません。
mysql_queryを速くする方法はありますか?
0407nobodyさん2008/07/05(土) 22:00:25ID:???
>>406
その質問では「あるよ」としか答えることはできない
煽り抜きの話
0408nobodyさん2008/07/05(土) 22:08:14ID:???
最初っから答えはみんなわかっている。

その$sqlの文字列の中身が悪いんだろw
0409nobodyさん2008/07/05(土) 22:09:26ID:???
SQLが悪いとしたら、完全にPHPのスレでやることじゃないなw

SQLのスレに逝ってください。ここにはもうレスしなくていいです。

誰も答えませんから。
0410nobodyさん2008/07/05(土) 22:18:23ID:???
>>406
Webシステムの経験が足りないんだから焦っても上手くいかないよ
基礎からちゃんと学んだほうがいいよ
それから質問者なんだから立場をわきまえて嫌味とか言わないようにね。社会でやってけないよ。
0411nobodyさん2008/07/05(土) 22:24:03ID:???
>>406
最初から意味無いって応え出て(馬鹿にして)たじゃん。
判りにくくて無視したのかもしれないが>>324が良回答だよ。
0412nobodyさん2008/07/05(土) 22:25:31ID:???
解決法
・mysqlデータベースのチューニング
・mysqlサーバを別のマシンに移す

解決手順
・他社に依頼
0413nobodyさん2008/07/05(土) 22:36:20ID:???
indexしてないという落ちだったら殴るぞ
0414nobodyさん2008/07/05(土) 22:46:55ID:7nNiVjXj
私は、phpについてはそこそこ経験と実績がありますが、
MYSQLは今回初めてなので、よくわかりません。

通常は、DBチームがSQL文を作成したりDAOを作成するため、関与しないのですが、
今回は予算の関係で人が足りず、一人で作りました。
とりあえず、クライアントには、導入したMySQLの性能に問題があるということで理解を得たいと思います。
選定の際に、導入コストが安いMySQLを選んだクライアント側にも責任の一端はあるわけですから。

ここのスレは役に立つ情報も有ると思いますが、
雑音が多くて、せっかくの情報が埋もれてしまうのが残念です。
何かと問題が多い2chですから、それを承知で投稿させて頂きましたが、
使い方次第ですね。

とりあえず、感謝の気持ちは表しておきます。
ありがとうございました。
0415nobodyさん2008/07/05(土) 22:48:06ID:???
>>414
違う。MySQLの問題ではなく、
遅いSQL分を書いたお前がヘタレ。
0416nobodyさん2008/07/05(土) 22:53:13ID:???
MySQLやクライアントのせいにするのムカつく
0417nobodyさん2008/07/05(土) 22:53:55ID:???
>>414
おまえなぁ。最初に自分に問題があると考えられるようにならないとだめだぞ。
0418nobodyさん2008/07/05(土) 22:55:35ID:???
感謝の気持ちがとりあえずww
同僚でこんなのいたら最悪だなwww
0419nobodyさん2008/07/05(土) 22:56:48ID:???
クライアントが(´・ω・) カワイソス
0420nobodyさん2008/07/05(土) 23:21:24ID:???
なにこのキモイ流れ
0421nobodyさん2008/07/05(土) 23:22:50ID:???
うむ、ID:7nNiVjXjは反省すべき
0422nobodyさん2008/07/05(土) 23:27:55ID:???
あと30分後に「釣れた、大漁www」という書き込みがある悪寒
0423nobodyさん2008/07/05(土) 23:28:37ID:f4JIQhYU
INSERT INTO tabele_name(カラム名,カラム名) VALUES(値,値)

上記のとき、カラム名を [`]で囲む必要はあるのでしょうか?

[`]をつけないとエラーになるときがあり、その理由がわかりません。
0424nobodyさん2008/07/05(土) 23:35:25ID:???
>>423
つ「予約語」
つ「スレ違い」
0425nobodyさん2008/07/05(土) 23:35:49ID:T4jgJP6e
フォーム処理でのファイルアップロードについて質問です。

フォームの流れを、「入力→確認→完了」としているのですが、
画像を確認する為に、一度ファイルをアップロードして
確認画面で問題なければ正規のディレクトリに移動させています。

おそらく大多数の方がこのような確認方法をとっているのかと思いますが、
一度ファイルをアップロードして、再度ファイルをアップロードし直す時、
古いファイルが残ってしまいます。

これも一定時間置きに、確認ディレクトリ内を削除すると思うのですが、
どうも非効率だと思います。

そこで質問ですが、上記の方法以外にアップロードしたい画像を
確認する方法はないでしょうか?
0426nobodyさん2008/07/05(土) 23:56:01ID:???
>>406
回答に必要な情報が足りない。

$sql
$dblink
それぞれの内容及びdbのtable構成、レコード数
それ位は最低限必要。
0427nobodyさん2008/07/05(土) 23:59:10ID:???
>>422
IDが変わる日を跨いだ瞬間偽物が釣れたとレスする悪寒も。
0428nobodyさん2008/07/06(日) 00:03:46ID:???
>>414
DB板のMySQLのスレでDB構造とどんな感じのSQL発行してるか書いてみ
あとループ内で数1000件のSQL発行してるとかは無いよね?

DBチームが居てあまりSQLに精通してないなら
悲惨なSQLやDB構造になってる可能性が高い

0429nobodyさん2008/07/06(日) 00:07:02ID:???
じゃあお言葉に甘えてつれたwwww
0430nobodyさん2008/07/06(日) 00:08:22ID:???
>>425
同一人物がアップしてできるテンポラリのファイル名を
固定しちゃえば?

まぁどっちにしろゴミファイルを削除しないとだけど
0431nobodyさん2008/07/06(日) 00:17:16ID:???
>>425
セッションと組み合わせて、セッションがGCされるタイミングで
同じくコレクションするしかないんじゃないかな。
■ このスレッドは過去ログ倉庫に格納されています