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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/12/18(土) 20:07:33ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 101
http://hibari.2ch.net/test/read.cgi/php/1289793607/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0153nobodyさん2010/12/28(火) 20:09:46ID:FjOaIYGE
5MBのCSV(レコード30000件)の取込バッチを作っています。

バッチはクアッドコアのサーバで動いています。
バッチはそのうちの1つのコアを使用しているようで、
使用率が90%を越えている状態です。

このバッチを高速化するとなったら、
バッチを別プロセスで起動するくらいしか
方法はないでしょうか。
コアが4つあるから、バッチを4つ並列で起動させると
早くなるんだろうなとは思ってるんですが、
バッチを分割する手間がかかるので、
分割の手間をかけずにパフォーマンスの向上を期待できる
方法があれば教えて頂けないでしょうか。


よろしくお願い致します。
0154nobodyさん2010/12/28(火) 20:15:43ID:???
>>153
PHPをやめる
01551532010/12/28(火) 20:25:31ID:???
>>154
やめない方向でいきたいです。。。
よろしくお願いします。
0156nobodyさん2010/12/28(火) 20:31:16ID:???
>>153
SQLに放り込んでから処理する
0157nobodyさん2010/12/28(火) 20:47:03ID:???
>>153

使用率が90%なのと高速化は別の視点で語りましょう。

高速化する必要性があるかないか?
なぜ高速化が必要なのか?

そうした背景を質問の文章からは読み取れませんでした。


またコアCPUの使用率90%が問題になる理由も読み取れませんでした。


いずれにせよPHPに限った話では無いような気がしています。
0158nobodyさん2010/12/28(火) 20:50:52ID:???
ファイルでもやろうと思えばポインタから並列処理はできる
ただポインタなりデータの共有が面倒だからSQLに放り込んだほうが手っ取り早い
0159nobodyさん2010/12/28(火) 21:10:54ID:???
SQLって問い合わせ言語のことだよ?
0160nobodyさん2010/12/28(火) 21:49:50ID:???
問い合わせ言語ってAjaxのことだよ?
0161nobodyさん2010/12/28(火) 22:09:43ID:N9PRkBCE
common.php等の形にして自作関数を纏めたファイルを呼び出す場合
sample()のように書いてメソッドを呼び出すまではその関数は実行されないのでしょうか?

つまり、APIにリクエストする自作関数があったとして、common.phpを呼び出した時点でリクエストは行われてしまうんでしょうか?
それとも呼び出すページ内にapirequest()とメソッドを記述するまではリクエストは行われないのでしょうか?
0162nobodyさん2010/12/28(火) 22:23:41ID:???
common1.php
<?php
function sample1() {}
?>
common2.php
<?php
function sample2() {}
sample2();
?>

hoge.php
<?php
include_once("common1.php"); //読み込んでも実行されない
sample1(); //ここではじめてsample1が実行される

include_once("common2.php"); //当然の事ながら読み込んだだけで実行される
01631512010/12/29(水) 01:31:53ID:4k+FzqXt
>>152
うん、一応試したんだけど見つけられなかったから質問させてもらった
もしかしたら特殊な方法で出来たりするのなら教えてほしいっす

でも、PHPのばあい結構べた書きするから、そういうのこそ単体テストが必要な気がするなあ
01641612010/12/29(水) 01:58:55ID:???
成程。
ありがとうございました。
0165nobodyさん2010/12/29(水) 03:12:11ID:???
>>163
しないわ
01661512010/12/29(水) 08:39:19ID:???
>>165
そお?元々オブジェクト指向でもないただのテンプレート言語だから、そっちのが需要あると思んだけど・・
0167nobodyさん2010/12/29(水) 08:56:03ID:???
お前がどう思おうが世間の需要に関係ない
01681512010/12/29(水) 09:14:21ID:4k+FzqXt
了解
0169nobodyさん2010/12/29(水) 10:10:08ID:???
世間がどう思おうが俺の需要に関係ない
0170nobodyさん2010/12/29(水) 11:41:13ID:Snlld2P9
set_error_handlerって一度セットすると解除はできないんでしょうか?
01711532010/12/29(水) 12:02:28ID:???
あ、すみません。伝え漏れがありました。
取り込むCSVは複数個あります。
それぞれが5MBほどあります。

>>156
ありがとうございます。
なるほどです。
DBに放り込む前に桁数とか値の検証とか行っているのですが、
そのあたりもSQLでやっちゃう感じなんですかね。

>>157
ありがとうございます。
CSVで取込んだデータを帳票で出力していきます。
帳票も出力する頻度が多いので、
できるだけCSVの取込からすぐに帳票に出力したいと考えています。

コアの使用率が90%になることは特に問題視はしていなくて
4つのうち1つのコアの使用率が90を超えてるときに
他のコアはほとんど何もしていないので
PHPの機能やら、プログラムの組み方で、なんとか他のコアにも処理を振り分けられたらなと
思った次第です。
PHPに割り当てられるメモリの設定とか見直せればなとか
考えていたので、PHPのスレに投稿させていただきました。

>>158
ありがとうございます。
ですよねぇ。
ファイルのポインタとかを使うとめんどくさい事になりそうですよね。
0172nobodyさん2010/12/29(水) 12:10:21ID:???
いくらマルチコア積んでたって
自分がマルチプロセスでプログラム書かないと効果ないっしょ。
分割して記述はしたくないんでしょ?
だったら普通に書いたプログラムを勝手に言語やエンジンが複数コア使って処理なんてしてくれるわけない。
0173nobodyさん2010/12/29(水) 12:15:51ID:???
>>171
CSVをDBで処理するなんてありえない。Ajaxを使うのが世界的な潮流。
01741532010/12/29(水) 13:18:35ID:???
>>172
ありがとうございます。
仰る通りだと思います。
そういう認識ではいたんですが、もしかしたら
自分の知らないテクニックがあるかもしれないと思ってたんですが、
楽しようとせずに地道にやっていこうと思います。

>>173
Ajaxですか・・・。
どこか参考になるサイトがあれば教えて頂けますか?
0175nobodyさん2010/12/29(水) 13:37:11ID:???
バイナリに変換しておいて読み込む
0176nobodyさん2010/12/29(水) 13:39:09ID:???
時間さえかければ済む、頻繁に読み込む必要はない(一度だけの処理)なら
もっともコーディングが少ないやり方でいいよ。
0177nobodyさん2010/12/29(水) 13:47:40ID:???
>>174
AjaxはNGに入れといていい
ていうかいい加減にしろよ
嘘教えるようなら本当に荒らしで通報するぞ
0178nobodyさん2010/12/29(水) 13:52:54ID:???
ループ中にusleepで10ms取るだけでだいぶCPU使用率減ると思うがな
0179nobodyさん2010/12/29(水) 15:10:31ID:???
スマン

Ajax厨が出てきてから、解決していない質問がどれかがわからなくなってきた。

また、質問した方が解決したか否かを書かないために、未だに質問を継続しているかがわからない。

申し訳ないが、今生きている質問(継続中)を教えて欲しい。

それとAjax厨は、こうした迷惑が発生していることも含めてレスを考え直して欲しい。

0180nobodyさん2010/12/29(水) 15:34:54ID:???
>>151>>163
何を試してどう出来ないと言うの?
普通にその関数を持ったファイル(functions.phpみたいな)を読み込んで
$this->assertEquals(5, MyAdd(2, 3))するだけでしょ。
もし関数定義外の部分に実行文が入ってるなら諦める。

>>153>>171
PHPはスレッドが使えないから並列化はマルチプロセスにするしかない。

(DBじゃなくて)PHPがネックになってることが確認できてるなら
複数個あるCSVに対してそれぞれPHPを起動するのが楽じゃないかな。

普通はDBへの転送に一番時間かかるんだけどね。
0181nobodyさん2010/12/29(水) 15:35:55ID:???
>>179
なにしきってんの?おまえがうざいわ
0182nobodyさん2010/12/29(水) 15:49:42ID:???
>>179
お前が元祖Ajax厨だろ
口調が同じだからまるわかりだっちゅうの
しれーっとでてきてんじゃねえよ
0183nobodyさん2010/12/29(水) 18:09:25ID:???
何か荒れてるけど、この前はクリスマスなのに全くの初心者の基本中の基本の質問に答えてくださってありがとうございます
ネットの良心と可能性というのを初めて見た気がします
独学で学んでるのでここでしか聞けないのですが、本当にありがとうございます。
言葉じゃ言い表せないぐらいの感謝の気持ちでいっぱいです
0184nobodyさん2010/12/29(水) 18:13:37ID:???
寝てる間にやっとけば済むなら、プログラム手間かけるより安全な方法で放置すればいい。
0185nobodyさん2010/12/29(水) 18:14:26ID:???
>>183
なんでここでしか聞けないんだよ
0186nobodyさん2010/12/29(水) 18:24:30ID:???
>>179
確かにAjax厨が出てきてから変な流れになりましたね。
別スレ(隔離スレ)も作りましたが、ネット弁慶+かまってチャンはやっぱり最強ですね。


>>181 名前: nobodyさん [sage] 投稿日: 2010/12/29(水) 15:35:55 ID:???
>>182 名前: nobodyさん [sage] 投稿日: 2010/12/29(水) 15:49:42 ID:???
常日頃から他人を批判する姿勢を続けているから家族からも見限られるんだよ。
今年も他人の呪って批判だけし続けて新年を迎えてください。

おっと、批評批判は隔離スレでお願いします。

【PHP】下らねぇ質問はID出さずに書き込みやがれ 1
http://hibari.2ch.net/test/read.cgi/php/1289117484/l50

0187nobodyさん2010/12/29(水) 19:52:57ID:???
きめえ
0188nobodyさん2010/12/29(水) 20:52:05ID:???
>今年も他人の呪って
日本語がおかしくて笑えましたw
0189nobodyさん2010/12/29(水) 23:42:19ID:???
他人の[レスを]を省略してるとすれば一概に間違ってはいないけど
とはいえレス自体がおかしいけど
0190nobodyさん2010/12/30(木) 01:46:05ID:???
Ajax厨というのがどのレスのことを指しているのかわかりませんが、
AjaxでできることはAjaxでするべきだと言っているのです。
必ずしも全てをPHPで行う必要はありません。
0191nobodyさん2010/12/30(木) 17:22:33ID:???
どうせ「アジャックス」って読んでるだろw
0192nobodyさん2010/12/30(木) 17:33:23ID:???
AjaxとPHPは比較できるものでない。
PHPはローカルで動くプログラム言語。C++の簡易型みたいなもの。
Ajaxはブラウザとサーバーのリアルタイム通信する技術でしょ。
0193nobodyさん2010/12/30(木) 17:35:21ID:???
だからなんで手元(サーバ、ローカル)にあるファイルを読み込むのにAjaxなんだよ。
0194nobodyさん2010/12/30(木) 17:42:51ID:???
サーバにあるファイルを読み込まないでどこにあるファイルを読み込むんだ?
0195nobodyさん2010/12/30(木) 17:52:29ID:???
>>153はサーバーにあるファイルをサーバーで処理するって話じゃないの?
ローカルのみでの作業。
0196nobodyさん2010/12/30(木) 18:01:10ID:???
>>193 Ajax知らないだろキミ
0197nobodyさん2010/12/30(木) 18:04:47ID:???
>>193
もう少しAjaxを勉強したほうがいいと思います。
0198nobodyさん2010/12/30(木) 18:18:32ID:???
にちゃんで荒らしに勤しむ年の瀬。
そんな悲惨な人生もあるのです。
0199nobodyさん2010/12/30(木) 18:40:40ID:???
まだこのネタひっぱってたのか
低レベルなAjax厨はおとなしくゴメンなさいして
JavaScriptスレいって教えてもらえ
ここは完全にスレ違い
0200nobodyさん2010/12/30(木) 19:17:08ID:???
このグダグダさは、AjaxつうよりAjapaやん。
0201nobodyさん2010/12/30(木) 19:57:24ID:???

Ajaxについて語りたいなら隔離スレでお願いします。

質問者と回答者が迷惑かつ不愉快な思いをしています。

 人様に迷惑だけはかけるな

両親から習ったでしょ?
0202nobodyさん2010/12/30(木) 20:23:35ID:???
>>201
Ajaxから習いました
0203nobodyさん2010/12/30(木) 20:37:33ID:???
>>201
Ajaxをろくに知りもしないでスレ違いとか
PHPを擁護するような発言は容認できません。
0204nobodyさん2010/12/30(木) 20:48:17ID:???
おまえらよくこんな低レベルな話で盛り上がれるな
0205nobodyさん2010/12/30(木) 22:54:02ID:???
自演だろ絶対これ
0206nobodyさん2010/12/31(金) 00:04:43ID:???
>>202-205

構ってちやん

相手してやるから隔離スレにおいで
0207nobodyさん2010/12/31(金) 00:20:55ID:???
1行開けて書くいつものやつはこっちこなくていから
隔離でずっとAjaxやっててね
0208nobodyさん2010/12/31(金) 02:05:04ID:???
selectタグを生成する方法について質問です。
表示する中身はxmlに書いてて、
ページを表示する際に読み込んで生成してたのですが、
毎回読み込まずに、例えばメモリにxmlの中身を保持してるのを取ってくるとかは
できますか?共有メモリ?
アパッチ起動時に一回だけメモリに保持できるといいのですが、、

◯◯区分とか小さなマスタ情報は、
どう扱うのが良いのでしょうか><
0209nobodyさん2010/12/31(金) 02:11:46ID:???
>>208
>>1
0210nobodyさん2010/12/31(金) 02:19:49ID:Oz9h13cu
>209
あっ、これは失礼しました。

【OS名】WindowsXP / Apatch
【PHPのバージョン】5.3だったか、、
会社に行かないと分かりません。
最新のxampp使用しました。
【連携ソフトウェア】MySQL
【質問内容】
208になります。
0211nobodyさん2010/12/31(金) 02:22:18ID:???
mysqlのストレージをかえればメモリ内で展開される
0212nobodyさん2010/12/31(金) 02:25:00ID:???
>>208
中級の下くらいの俺の知る範囲では出来ないかと。
セキュリティ的にOKならセッションorクッキーで保持するとか。
でも自サーバー上でだけの話ならxml毎回読み込みで問題ない気が。
別サーバーから取得してるなら初回だけ読んで、自サーバーにファイルorDB保存するとか。
0213nobodyさん2010/12/31(金) 02:25:16ID:???
>211
早速ありがとう。
なるほど、そんな事ができるんですね。
ちと調べてみます。
0214nobodyさん2010/12/31(金) 02:27:19ID:???
メモリに保存とか無理っしょ
ファイルの読み込みで何か問題あるの?
0215nobodyさん2010/12/31(金) 02:33:42ID:???
共有メモリとかがある事にはあるが
0216nobodyさん2010/12/31(金) 02:35:16ID:Oz9h13cu
>212
ありがとう。
DB兼Webサーバな環境です。
同時接続は多くて20台位なのですが、
可能な限りI/Oを減らしたかったのです。

メモリに入ってれば、区分名等を使う場合にも使えていいかな、と思った次第です。

明日本屋に行ってみます!
0217nobodyさん2010/12/31(金) 02:35:44ID:???
あぁごめんWindowsか無理だなw
0218nobodyさん2010/12/31(金) 02:36:39ID:???
と思ったらWindowsXPなら平気みたいだから共有メモリじゃだめなのかな?
使った事ないから知らんけど
0219nobodyさん2010/12/31(金) 02:42:23ID:???
なんかメモリ使う話があったようななかったような・・・
0220nobodyさん2010/12/31(金) 02:57:39ID:???
>>212は中の下というより下の中だな・・・
0221nobodyさん2010/12/31(金) 03:04:50ID:???
>>210 重箱の隅だけど Apache ね
0222nobodyさん2010/12/31(金) 06:16:39ID:???
初心者に毛が生えたレベルの素人です。

Wordpressのソースコードを読んでみたんですが、
どうしてクラスや関数を作らずに、たくさんのファイルに処理が小分けされているんですか?
なかにはPHPとHTMLが混ざっているところもあって、処理の流れが分かりにくいと思いました。
CakePHPのようにMVCで整理した方がいいんじゃないんですか?

何らかの合理的な理由があってそういう書き方がされているのだと思いますが、よくわかりません。
プログラマの方々がどんなふうに認識しているのか知りたいです。ご意見ください。
0223nobodyさん2010/12/31(金) 06:19:18ID:???
>>222
>>1
0224nobodyさん2010/12/31(金) 11:36:29ID:???
http://journal.mycom.co.jp/articles/2010/12/29/jaxai/

Ajaxも仕分け対象で、残念だったね・・・
0225nobodyさん2010/12/31(金) 11:39:04ID:???
面白いと思ったの?ねえバカなの?
0226nobodyさん2010/12/31(金) 11:39:55ID:???
寒すぎワロタ
0227nobodyさん2010/12/31(金) 12:40:12ID:???
【PHP】下らねぇ質問はID出さずに [ Ajax ] で書き込みやがれ 1
http://hibari.2ch.net/test/read.cgi/php/1289117484/l50
0228nobodyさん2010/12/31(金) 13:38:49ID:8g3NYefk
register_shutdown_functionで登録した関数がよばれた後なのに
その後また同じPHPファイルにアクセスが来るんですが、これって何が原因ですか?
xdebug入れてるとこうなるんですかね?
0229nobodyさん2010/12/31(金) 13:47:33ID:???
xdebug切れない環境?
0230nobodyさん2010/12/31(金) 14:25:08ID:8g3NYefk
いえ、Vmwareなので大丈夫なんですが、なんでこうなってるのかわからなくて
0231nobodyさん2010/12/31(金) 14:59:28ID:XYm/hF3e
PHPなのかわからないですが
ホームページでの文字表示縦書きにしたいのですが
どうすればいいでしょうか
0232nobodyさん2010/12/31(金) 14:59:50ID:8g3NYefk
すいません。PHP関係ありませんでした。
原因はMod_reqriteで、リンクが通ってないリクエストがIndex.phpにきてた事が判明しました。
お騒がせしました。
0233nobodyさん2010/12/31(金) 15:20:47ID:???
>>231
Webサイト制作初心者用質問スレ part222
http://hibari.2ch.net/test/read.cgi/hp/1291304974/

こちらへどうぞ
0234nobodyさん2010/12/31(金) 15:24:44ID:XYm/hF3e
>>233
ありがとうございました
そちらで聞いてみます
0235nobodyさん2010/12/31(金) 16:56:48ID:jORx8XGQ
php5.3です
MySQLから取り出してきた、
$shin[date] (ex.2010-12-31、date型)
に、
$kankaku[interval_t@] (@は1~20、中身はint型)
の数字の分だけ、●ヶ月先の計算をしたいです
こんな風に書いてるのですが文法エラーとなります、どう書けば良いかご教示ください。
($kankaku[interval_t@]を普通の数字に置き換えるとokなのですか)

for($loop=1;$loop<=20;$loop++){
$nextdate0 = date("Y-m-d", strtotime("$shin[date] + $kankaku['interval_t'.$loop] month"));
print "$nextdate0";
}
0236nobodyさん2010/12/31(金) 17:07:11ID:???
ダブルクオートの中で文字列連結しようとしたりすんな
0237nobodyさん2010/12/31(金) 17:14:08ID:???
>>235
他に原因があるかもしれないが、とりあえず
$nextdate0 = date("Y-m-d", strtotime("{$shin['date']} + {$kankaku['interval_t'.$loop]} month"));

0238nobodyさん2010/12/31(金) 17:15:45ID:???
>>237
一応、検証に使ったソース
<?php
$shin['date'] = '2010-12-31';
$kankaku['interval_t1'] = 1;
$loop = 1;
$nextdate0 = date("Y-m-d", strtotime("{$shin['date']} + {$kankaku['interval_t'.$loop]} month"));
print $nextdate0;
?>
0239nobodyさん2010/12/31(金) 17:17:09ID:???
なんでそうするんだよw
$nextdate0 = date("Y-m-d",strtotime($shin['date'].' + '.$kankaku['interval_t'.$loop].' month'));
まだこうしろよ・・・
0240nobodyさん2010/12/31(金) 17:38:59ID:???
>>236
言われてみればその通りですね;;
>>237-239
それぞれに分解して書けば良かったのですね。ありがとうございます!
0241nobodyさん2011/01/01(土) 00:13:17ID:???
そんなのAjax使えば一発なのに・・・
0242nobodyさん2011/01/01(土) 00:42:44ID:???
【PHP】下らねぇ質問はID出さずに [ Ajax ] で書き込みやがれ 1
http://hibari.2ch.net/test/read.cgi/php/1289117484/l50
0243 【大吉】 【308円】 2011/01/01(土) 00:45:20ID:???
!omikuji!dama
0244nobodyさん2011/01/01(土) 00:46:40ID:kBOtcIS2
お願いします。

あるサイトで得られるHTMLにて、「href="〜"」の"〜"部分を抽出したいです。
いろいろと試してみましたが、サイトにあわせたコーディングが求めらてしまいました。
自分の拙さ(つたなさ)が理由で、サイトにあわせたコーディングをしていると思います。
お勧めのサンプルや、お勧めの関数などがあれば、教えてもらえれば嬉しいです。
0245nobodyさん2011/01/01(土) 00:47:30ID:kBOtcIS2
!omikuji!dama
0246nobodyさん2011/01/01(土) 00:52:42ID:???
>>244
http://hibari.2ch.net/test/read.cgi/tech/1268979408/
0247nobodyさん2011/01/01(土) 00:55:45ID:???
>>246 サンプルや関数を欲してるのに正規表現スレを書き込むのは宣伝ですか?
0248nobodyさん2011/01/01(土) 00:59:37ID:???
>>244
http://jp.php.net/manual/ja/domdocument.loadhtmlfile.php
0249nobodyさん2011/01/01(土) 01:31:33ID:???
>>244

// 読み込むファイル
$filename = "test.html";

$doc = new DOMDocument();
$doc->loadHTMLFile($filename);

$a = $doc->getElementsByTagName("a");

for($i = 0; $i < $a->length; $i++) {
  var_dump($a->item($i)->getAttribute("href"));
}
0250nobodyさん2011/01/01(土) 02:25:55ID:???
>>249
"test.heml" -> 'test.html'
for -> foreach
0251nobodyさん2011/01/01(土) 04:59:05ID:???
>>244
Ajaxつかっとけ
0252nobodyさん2011/01/01(土) 08:09:39ID:???
>>246-250

ありがとうございます。参考になりました。
■ このスレッドは過去ログ倉庫に格納されています