12/01/11 15:00:30.88
foreach ( $list ... ) {
if ( ($pid = pcntl_fork()) === 0 ) {
子でやりたいこと
exit(0);//終わる
} else if ($pid == -1) die("x");
}
//親での処理(終わるの待つとか)
631:nobodyさん
12/01/11 15:07:26.35
>>627
並列処理したい処理をもうちっと具体的にくれ
632:nobodyさん
12/01/11 15:25:25.54 VbJoExbW
皆さん、返答ありがとうございます
自分のやりたい事とは少し違いますが、説明が簡単な例としては、Googleのクローラなんかがあると思います
データをどういう手法か分かりませんが、初期のものでも1サーバに300ものクローラを使っていたとの事です
クローラは動き回っているので考え方が違うかもしれませんが、例えば自社や関連会社のデータなど固定されたターゲットの場合はcronなどで定期的に訪問出来るでしょうが、
それらの設定値をいちいちファイルに記述するのも大変なので、それぞれの場所にてデータを取得するためのxPathなど設定値リストを読み込んで、
スクリプトにて一気に並行処理にて自動的に行う、という事をやりたいと考えております
ただ、アクセスし続けるのも相手側に付加がかかるので、各スクリプトの訪問間隔を大きい相手は5分、小さい相手は1時間などにしたいと考えております
また、それらのデータを正常に取得したら、その瞬間に今度はそのデータを解析・整形するようなスクリプトを起動させたいと考えております
以上の点にて宜しくお願いいたします
633:nobodyさん
12/01/11 16:03:46.74
いまいち何をやりたいかわからんが
取得先が大量にあって直列処理だと時間がかかりすぎるしそれぞれ取得設定を書くのもめんどいから
並列にしたいってことでおk?
ならcURLのマルチ使って、設定値をdbなどから引っ張ってきてから
回しながらcallbackなんかをうまく設定して一気にゴー、で行けるんじゃないか。
やりたいことと違っていたならすまん。
参照:URLリンク(techblog.ecstudio.jp)
634:nobodyさん
12/01/11 16:19:22.57
>>632
Webのクローラーはデータ取得に暇がかかるのが明白だから並列処理するのが当たり前のアプローチ
635:nobodyさん
12/01/11 16:46:00.24
あえてクローラーをPHPで作ることもないだろ。
PHPは標準で並列処理できない仕様だ。
並列処理できる言語、並列処理できるソフトを使って保存してから
PHPでそこにアクセスしたら良い。
636:nobodyさん
12/01/11 16:58:01.39
しかしcurlだけは標準でダウンロードが完了してなくても処理が帰ってくるから擬似的には並列処理できるな。
通信だけは並列にできるいうことだが。クローラーはパフォーマンスを落とさずに、並列処理可能な言語・ツールに並べる可能性はある。
637:nobodyさん
12/01/11 17:09:13.29
ここで適切なアドバイスしても、馬鹿には無理だろ。
638:nobodyさん
12/01/11 17:40:57.15
返事なくなっちゃったね。
639:nobodyさん
12/01/11 17:43:06.65
スレリンク(linux板:427番)
のコンパイルは結局うまくいったのか?
640:nobodyさん
12/01/11 18:11:13.28
>>630 じゃだめなん?
641:nobodyさん
12/01/11 18:17:50.79
よくわからないから無視したんだろw
642:nobodyさん
12/01/11 19:03:57.60
質問してしっぱなしかよ・・・
643:nobodyさん
12/01/11 19:05:55.41
いつも質問答えてる側の奴らから難易度高めの問題がほしい
644:超難問!
12/01/11 19:10:37.65
>>643が彼女をつくるにはどうしたらいいでしょうか?
645:nobodyさん
12/01/11 19:31:49.93
彼女(笑)
646:nobodyさん
12/01/11 20:04:08.13
$list = array("清美", "里子", "友恵", "友里", "とめ", "愛子", "雅子", ...... );
for ($i = 0; >>643の心が折れるまで; $i++) {
$result[] = kokuhaku($list[$i]);
}
if ($result == NULL){
die("まだ2次元がある");
}
647:nobodyさん
12/01/11 20:48:30.27 tHZDD+V0
質問です
hoge.txtというテキストファイルがありまして
100バイトの文字列\n
100バイトの文字列\n
100バイトの文字列\n
:
:
:
と500行ある500KBののテキストファイルがあるとします
このファイルから
「499行目と500行目」
か
「1行目と2行目」
だけを取り出すとき、サーバーの負荷は
両方1~500行の文字を取り出すときとほぼ同じ負荷でしょうか?
648:nobodyさん
12/01/11 20:50:49.28
>>643
501 :nobodyさん:2012/01/08(日) 19:46:27.97 ID:???
>>489
abstractとinterfaceの具体的な使い分けはどうしてますか?
実装が書きたかったらabstractっていうのはあまりにもアレなので
哲学とまでは言いませんが、確固たる理由をつけて使い分けたいんです
649:nobodyさん
12/01/11 20:52:56.46
読み方に依るだろ。
読み込む位置が確定していたら、シークするだけの違いしかなく負荷に大差ないが。
改行位置の判定からやっていたら後ろの方が手間掛かる。
650:nobodyさん
12/01/11 21:08:42.58
一般的には常識とされている、
真実は一つだけ
怒りは自然な感情
戦争・テロは無くならない
死刑には殺人の抑止力がある
虐められる側にも虐めの原因がある
自己チューな人間ほど自己愛が強い
などの間違いを解説中
感情自己責任論
651:nobodyさん
12/01/11 21:13:42.02 tHZDD+V0
>>649
という事はどんなやり方でも最低でも500KBかかってしまうという事でしょうか?
200バイト(2行分)程度だけで住む方法ないかなーと思ってたのですが
652:nobodyさん
12/01/11 21:34:41.86
固定長なら200バイトだけで済むだろ。
653:nobodyさん
12/01/11 22:26:31.01
>>649はちょっと読み間違いをしているね。
> 「499行目と500行目」
> 「1行目と2行目」
この二つの負荷には大差がないといっているんだろう。
本来の質問であるところの、
> 1~500行の文字を取り出すとき
との負荷には大きな差があるよ。
固定長じゃない場合は、最後の2行を得るのが少し面倒だけど。
654:nobodyさん
12/01/11 22:33:40.13
500行のロードと、2行のみロードでは負荷に違いがある。
655:nobodyさん
12/01/11 22:33:46.01
実験してみればいいじゃん
656:nobodyさん
12/01/11 22:45:01.77
500Kくらいたいした事で無い。
fileで全行読み込んでも良いよ。
そこがボトルネックになってから改良したら良い。
657:nobodyさん
12/01/11 22:47:30.54
全ての箇所で低リソースを目指していたら手間が掛かって進まない。
一応動くやつを作ってから速度測定して、
全体の中で時間掛かっているところに手を加えれば良い。
658:nobodyさん
12/01/11 23:02:44.07 tHZDD+V0
ごめんなさい、1~500行の文字を取り出すと比べて
「499行目と500行目」「1行目と2行目」この二つは差があるのでしょうか?という質問でした
説明不十分で申し訳ないです
やっぱりテキストファイルを固定長形式にするしか無いですかね?
この場合
100バイトの文字列
2Kバイトの文字列
4バイトの文字列
:
となった場合、全部2KBになって500行あったら1Mになってしまうので避けてたのですが
659:nobodyさん
12/01/11 23:06:53.90
理解不可能ですが。
全て(1~500行)のロードと2行のみでは負荷は違う。
可変長だったらindexをファイルの後方か先頭に配置して必要なところを読めば速いです。
660:nobodyさん
12/01/11 23:16:37.71
ファイルサイズがでかくて全読込をさけたいなら、データベースにいれとけよ。
そしたらメモリ管理など気にしなくて済むしキャッシュなども自動で使ってくれる
661:nobodyさん
12/01/11 23:39:54.74 GX2tXR1t
PHPとAsp.netってどう違うんですか?
662:nobodyさん
12/01/11 23:50:01.97 VbJoExbW
>>633-642
すみません、今まで色々試しにやってて返事が遅くなりました
URLリンク(ja.wikipedia.org)を参照に
#!/usr/local/bin/php -q
<?php
$pid = pcntl_fork();
if ($pid == 0) {
$j;
for ($j=0; $j < 10; $j++) {
printf("child: %d\n", $j);
sleep(1);
}
} else if($pid > 0) {
$i;
for ($i=0; $i < 10; $i++) {
printf("parent: %d\n", $i);
sleep(1);
}
print "wait begin.\n";
pcntl_wait($status);
print "wait end.\n";
} else {
die('fork できません');
}としました
663:nobodyさん
12/01/11 23:50:43.62 VbJoExbW
ただ、結果が
child: 0
child: 1
child: 2
child: 3
child: 4
child: 5
child: 6
child: 7
child: 8
child: 9
parent: 0
parent: 1
parent: 2
parent: 3
parent: 4
parent: 5
parent: 6
parent: 7
parent: 8
parent: 9
wait begin.
wait end.
のようになってparentがwikipediaのようにchildの間に入っておりません
"出力の順序はカーネルが決定する"とは書かれていますが、PHPではこのようなものなのでしょうか?
学習不足で申し訳ないです
664:nobodyさん
12/01/12 01:50:16.25
>>662
なぜPHPを使っているのですか?
665:nobodyさん
12/01/12 02:58:10.26 KRgm5yh1
やっぱりphpでは並列無理ぽ。
666:nobodyさん
12/01/12 03:08:54.02
ニートおっさんには無理
667:nobodyさん
12/01/12 03:25:30.76
>>662
そのコードでできたよ。
child: 0
parent: 0
child: 1
parent: 1
child: 2
parent: 2
(略)
child: 8
parent: 8
child: 9
parent: 9
wait begin.
wait end.
668:nobodyさん
12/01/12 03:39:54.92
>>667
できてない。
669:nobodyさん
12/01/12 03:43:15.46
並列と分散はPHPの泣きどころ。
670:nobodyさん
12/01/12 03:52:56.74
かろうじて並列できても実用性は全くないことに気づけよ
671:nobodyさん
12/01/12 04:51:39.62
同じやつが同じ話題を繰り返してるんだな
672:nobodyさん
12/01/12 05:35:36.73
>>668
どういうこと?
673:nobodyさん
12/01/12 10:36:29.57
>>663
これって実行には何秒かかったんだろ。
674:nobodyさん
12/01/12 12:24:55.33
>>664 >>665 >>668 >>669 >>670 は並列処理を理解できてない馬鹿。
675:nobodyさん
12/01/12 12:27:31.97
>>667
>>663
実行環境(カーネル)の違いでプロセスの優先度が変わるのかな?
676:nobodyさん
12/01/12 13:02:25.38
PHPにはpcntl_forkというプロセスをフォーク(複製)することが
できる関数がありますが、これはPHPをCGIモードで
動かしている場合にのみ有効です。
通常はPHPをApacheモジュールとして動作させていることが
多いので、これが使えないケースが多々あります。
URLリンク(techblog.ecstudio.jp)
677:nobodyさん
12/01/12 13:15:01.92
っていうか、何でPHPで作ることにこだわってんだ?
Perlで良いじゃん。
678:nobodyさん
12/01/12 13:19:01.14
>>676
pcntl_fork関数は存在するし、forkも成功したように見えるけど、並列処理されないなんて結果になるということですか
679:nobodyさん
12/01/12 14:01:06.08
ちなみに俺も>>662やってみた
俺は並列処理の事なんか分かっていないので、このやり方で合っているか分からないけれど
<?phpの後に、$time = time();
最終行に、echo 'time:' . (time() - $time) . 'sec' . PHP_EOL;を付けてみた
2chの改行規制で出力形式変えるけど結果は
child: 0 child: 1 child: 2
child: 3 child: 4 child: 5
child: 6 child: 7 child: 8
child: 9
time:10sec
parent: 0 parent: 1 parent: 2
parent: 3 parent: 4 parent: 5
parent: 6 parent: 7 parent: 8
parent: 9
wait begin.
wait end.
time:10sec
となった
>>676
URLリンク(www.php.net)
にはCLI版も可能って書いてるんじゃないの?
>>675
ちなみに自分はcentOSです
680:nobodyさん
12/01/12 14:01:29.80 QAUYYhrI
phpとmysqlでカウンターが作りたいのですが
書き込むときの排他制御はどのようにやるのでしょうか?
681:nobodyさん
12/01/12 14:01:52.50
>>676
CLIでも使えるよね?
682:nobodyさん
12/01/12 14:02:25.17
もういい加減ニートのおっさんは飽きた
683:679
12/01/12 14:02:52.80
書き忘れたけど、この出力結果みると並列処理ってされてない・・・んだよね?
684:nobodyさん
12/01/12 14:10:41.80
基本的にはマルチスレッドはサポートされてないだろ。
レンタルサーバーとかでは。
自宅で一人で使う目的だったらマルチスレッドをONにしてコンパイルすればいい。
しかしソースコードに汎用性が無くなる。
Curlをつかっとけ。5.3か5.2から標準で並列に使える。
685:nobodyさん
12/01/12 14:15:13.44
forkだからマルチスレッドの話ではないでしょ。
686:nobodyさん
12/01/12 14:16:07.48
PHPがサポートするプロセス制御機能は、デフォルトでは有効となってい ません。
プロセス制御機能を有効にするには、 configure のオプションに --enable-pcntl を付け、
CGI 版あるいは CLI 版の PHP をコンパイルする必要があります。
注意: 現在、このモジュールは非 Unix 環境(Windows)では動作しません。
URLリンク(www.php.net)
687:nobodyさん
12/01/12 14:18:28.39
>>686
何が言いたいの。
688:679
12/01/12 14:27:53.78
>>682には悪いけど、俺にはせっかくの機会だから色々試してみた
>>662を
if ($pid == 0) {
system('php forkc1.php');
system('php forkc2.php');
}
に変えて、それぞれに
<?php
$time = time();
$i;
for ($i=0; $i < 10; $i++) {
printf("child1: %d\n", $i);
sleep(1);
}
echo 'c1-time:' . (time() - $time) . 'sec' . PHP_EOL;
のように書いた
689:nobodyさん
12/01/12 14:28:15.56
実行結果は
c1: 0 c1: 1 c1: 2 c1: 3 c1: 4 c1: 5 c1: 6 c1: 7 c1: 8 c1: 9
c1-time:10sec
c2: 0 c2: 1 c2: 2 c2: 3 c2: 4 c2: 5 c2: 6 c2: 7 c2: 8 c2: 9
c2-time:10sec
p-time:20sec
parent: 0 parent: 1 parent: 2 parent: 3 parent: 4 parent: 5 parent: 6 parent: 7 parent: 8 parent: 9
wait begin. wait end.
p-time:20sec
となった
で、実際の時計を見ていたら、20秒後に表示された
system('php forkc3.php');
も加えたら実際の時計では30秒後に表示された
これってどういうこと?
並列処理されていないってことだよね?
690:nobodyさん
12/01/12 14:30:51.41
なんでそんなトンチンカンなことが平気で言えるのか
system('php forkc1.php');
system('php forkc2.php');
この時点で気付けよ
691:nobodyさん
12/01/12 14:36:08.80
ん?
30秒かかるのは当たり前か・・・笑
>>679は10秒で済んでるから親プロセスと子プロセスはちゃんと並列処理されてるってことだね
自分の>>688の書き方が悪いだけか
この流れの話は、親プロセスから子プロセスを複数作成し、それを同時に実行
つまり3つの子プロセスがあれば4つとも10秒後に終わらせるということだよね?
となると実装法が思いつかないけど、pcntl_fork()っていうのを3回呼び出せばいいってことじゃないかな?
分からん
692:nobodyさん
12/01/12 14:37:16.69
>>690
ごめん、投稿した後すぐに気がついた(苦笑
693:nobodyさん
12/01/12 14:54:03.86
>>686
>>678
694:nobodyさん
12/01/12 14:56:29.29
>>691
system('php forkc1.php &');
と、バックグラウンドプロセスにすればよろしい。
プロセスの終了待ち処理を入れる必要があるけど。
695:nobodyさん
12/01/12 15:05:23.27
>>694
なるほど
実はまだ挑戦してて(笑
一度やり始めたら意地でもとなってしまってw
$pid[$i] = pcntl_fork();等と複数回呼び出して、
その後system()を呼び出すとかやってみたのですが30秒かかったりで
バックグラウンドプロセスという発想はなかったです
今から外に出ないといけないんですが、最後にちょっと試してみます
696:nobodyさん
12/01/12 15:10:13.69
>>694
アハハ、今>>688のコードにて
if ($pid == 0) {
system('php forkc1.php &');
system('php forkc2.php &');
system('php forkc3.php &');
}
としましたが
今度は31秒かかってしまいましたw
どこがおかしいのか分かりませんが、また帰ってからやってみます
697:nobodyさん
12/01/12 15:17:35.81
時間のムダ。
698:nobodyさん
12/01/12 15:23:17.54
pcntl_fork()の話してんのになんでsystem()になってんの。
699:nobodyさん
12/01/12 15:29:16.52
アホですから
700:nobodyさん
12/01/12 15:30:19.76
>>696
アハハ、なんで標準出力捨てないの
701:nobodyさん
12/01/12 15:31:28.10
>>698
たぶん>>686のWindowsでは動かないというのをみたからじゃないのかな。
ほんとに動かないか知らないけど
702:nobodyさん
12/01/12 15:50:09.93 at33kcZ9
ちょっとしたポータルサイトや、管理機能付きサイトを作るとき、
CMSを使うか、フレームワーク使うかどっちがよろしいですかね・・・。
703:nobodyさん
12/01/12 16:55:38.26
>>702
その文章だけを読んで「ちょっとしたポータルサイト」がどれほどの規模のものを指しているのか
わかる人は少ないだろう
704:nobodyさん
12/01/12 17:15:27.45
ヤフーくらい
705:nobodyさん
12/01/12 17:19:26.21
>>702
自分がやりやすい方でいいんじゃないすか。
706:nobodyさん
12/01/12 17:30:43.50
どっちも使えるようになるまで時間かかる
どっちも詳しくない私は
使わない方がやりやすい。
707:nobodyさん
12/01/12 17:42:30.00
PHPが出来るならWPはすぐに使えると思うが
708:nobodyさん
12/01/12 20:44:35.20
そもそもなんでこのスレで質問するのか
709:nobodyさん
12/01/12 20:59:53.31
確かに、なんでここで聞いたの?
710:nobodyさん
12/01/12 21:35:47.31
質問するスレだろ何が駄目なんだ
711:nobodyさん
12/01/12 21:41:21.83
>>710
>>1
712:nobodyさん
12/01/12 21:42:14.04
CMSを使うかフレームワークを使うかっていう質問はここじゃねぇと思うが
713:nobodyさん
12/01/12 21:43:04.05
質問するスレすらわからん馬鹿はポータルサイトなんか作れんよ
714:nobodyさん
12/01/12 22:20:03.29
PHPのフレームワークスレって確かあったよな
715:679
12/01/12 22:21:38.91
ギブ・・・
俺には自力では無理でした
>>699の言うようにアホですな
プログラム板にでも行ってきます
716:nobodyさん
12/01/12 22:29:06.06
>>697
なんで人の質問を俺がやってるのか分からんが、それが出来たら楽に処理できるような事も
出てくるかなと思ってやってみたんだけど
>>698
いや、だって引数とって一気に別ファイルのスクリプト実行するんでしょ?
system()じゃないの?
>>700
ごめんどういうこと?
$php fork-test.php > /dev/null
とかってこと?
同時に実行されていくということは
c1:0
c2:0
c1:1
c2:1
のように出てくるのかなとか思ってたんだけど違うん?
717:nobodyさん
12/01/12 22:31:19.98
>>716
バックグラウンドプロセスの標準出力を捨てろってこと。
718:nobodyさん
12/01/12 22:36:09.30
>>716
一気に別ファイルのスクリプトを実行するのにforkではダメだと思った理由を書いてみ
719:nobodyさん
12/01/12 22:48:45.79
>>718
ごめん、分かりませんw
forkって子プロセスを作成->親プロセスは待機->子プロセス終了->親プロセス実行
って動作だよね?
で、子プロセスは親プロセスのコピーであると
だから元々親プロセスの時点で実行されていたり、格納していた変数の値とかは子プロセスも保持していると
ま、自分の分からない所は子プロセスを複数作成するにはPHPだとpcntl_fork()をその回数実行すると
ただ、自分がやったのでは
$pid1=pcntl_fork();
$pid2=pcntl_fork();
それぞれにて上記のようなfor()を使うと一緒に実行されるんじゃなくて、直列(逐次)処理になってて「う~ん」と
別ファイルのスクリプトを実行するのにPCNTL関数内にそんな感じの関数もないし、
データベースなどから設定値を取得してきて、そこから得てきたそれぞれの設定値を渡すとなると
system()かなと考えて・・・
例えばどんな風に書けばいいんですかね?
720:nobodyさん
12/01/12 22:50:08.98
>>719
大前提がおかしい
>>667
721:nobodyさん
12/01/12 22:54:57.73
>>719
ちなみに>>662におけるsleepをタイムスライス放棄のみのコードに変更した場合の出力結果例はこんな感じ。
child1: 0
parent: 0
parent: 1
child1: 1
parent: 2
parent: 3
child1: 2
parent: 4
parent: 5
child1: 3
parent: 6
child1: 4
parent: 7
child1: 5
parent: 8
child1: 6
parent: 9
wait begin.
child1: 7
child1: 8
child1: 9
wait end.
あとID出せよカス
722:nobodyさん
12/01/12 23:11:37.74 QxDXzJq0
タイムスライス放棄のみのコードって何だと思いググってました(苦笑
sleep(-1)ってのが出てきましたがこれの事ですかね?
俺は>>667のようにはならないんですが、OSは何ですか?
つまり、>>662のようなfor()文使った場合は、子プロセス->親プロセス->子プロセス->親プロセス->
という挙動をすると言うことですか?
しかし俺全然だめだなぁ・・・
723:nobodyさん
12/01/12 23:45:38.66
phpファイルで、以下のようにjava scriptのファイルを読み込んでいるのですが、
<script type="text/javascript" src="test.js">
test.jsを変更しても反映されないことがあります。
ブラウザがキャッシュか何かをしているのでしょうか?
回避策とかありましたらご教授お願いします。
724:nobodyさん
12/01/12 23:49:13.05
>>723
日付が変わってればキャッシュを破棄しそうなもんだけど。
プロキシ的なものが挟まってたりしない?
一応試せることとしては、たとえばIEならCtrl+F5ですべて再読み込みする
725:nobodyさん
12/01/12 23:52:16.83
>>723
ブラウザ特有の現象かもしれないから後でちゃんと自分で調べるとして
とりあえずそういう時は応急処置にファイル名に適当な文字列を追加するもんだ
echo '<script type="text/javascript" src="test.js?' . md5(microtime(true)) . '">';
726:nobodyさん
12/01/13 00:05:03.08
なんでmd5かけるの?
727:nobodyさん
12/01/13 00:11:52.36
バカだからに決まってるじゃん
728:nobodyさん
12/01/13 00:29:29.21
ドットが入るのが嫌だっただけ
かけたくないならかけなくていい
729:nobodyさん
12/01/13 00:33:49.01
ドット・・・?
730:nobodyさん
12/01/13 00:36:37.67
小数点
731:nobodyさん
12/01/13 00:37:36.05
くだらんとこに突っ込むなよバカども
732:nobodyさん
12/01/13 01:00:13.01
しかしまぁ俺プログラマーとか言って
>>725みたいなクソコード書いてるのもひどい話だな
733:nobodyさん
12/01/13 01:16:41.96
言ってることは間違ってないけどこれはないな
>echo '<script type="text/javascript" src="test.js?' . md5(microtime(true)) . '">';
time()とかuniqid()で事足りる
>md5(microtime(true))
ない
734: 忍法帖【Lv=8,xxxP】
12/01/13 01:22:37.06
735:nobodyさん
12/01/13 01:43:03.96
>適当な文字列を追加する
これが実現できればなんでもいいだろ
何を拘ってるんだ?パフォーマンス?(笑)
そんなミジンコみたいなところでケチつけるなレスの無駄使い
736:nobodyさん
12/01/13 01:48:42.10
しょうがないだろミジンコしかいないんだから
URLリンク(stackoverflow.com)
737:nobodyさん
12/01/13 02:15:09.35
>>733
> time()とかuniqid()で事足りる
えっ
> >md5(microtime(true))
> ない
こっちの方がまだマシ
738:nobodyさん
12/01/13 02:18:26.75
必死だなw
739:nobodyさん
12/01/13 02:22:50.77
特定ユーザに対してユニークであればいいんだから、ミリセカンド精度で事足りると思うよ。
>>738みたいな意味のないレスをする人がどう考えてるのかさっぱりわからんけど。
740:nobodyさん
12/01/13 02:28:45.64
そんなに悔しかったか ごめんよw
741:nobodyさん
12/01/13 02:30:22.51
必死すぎw
742:nobodyさん
12/01/13 02:31:28.69
理解できる範囲の話になったとたん沸くやつってなんなの
743:nobodyさん
12/01/13 02:34:35.61
…ねないの?
744:nobodyさん
12/01/13 02:43:41.18
なんでPHPでするのか不思議。
745:nobodyさん
12/01/13 02:45:27.34
>>742
全くだな
自分につっこむ機会があると思うと頑張ってつっかかってきちゃうやつワロスwwww
上級者からすればそんなこまけーこたぁどうでもいいんだよって感じだがな
746:nobodyさん
12/01/13 02:47:04.65
ニートのおっさんだろどうせ糞コード晒してんのは
上級者()
早く吊れよ
747:nobodyさん
12/01/13 02:51:11.50 KkkOzRWt
NATポートマッピングを自動でやる方法を教えてください。
Bitcometみたいに。
748:nobodyさん
12/01/13 03:12:53.61
PHP使ってるって言ったら
ヴォエエエエエエ ブヒョー コーヒー吹かれた
749:nobodyさん
12/01/13 03:14:54.14
>>747
uPnPってわけでもなさそうにみえるが、NAPTを自動でやりたいってこと?
なら、ネットワーク越しに操作できるルータを手に入れる必要がありそう。
そんな話じゃないよ!ってことならBitcometの動作をもっとよく見ること。
750:nobodyさん
12/01/13 03:15:41.52
ニートのおっさんだろどうせ煽ってんのは
低級者乙
早く吊れよ
751:nobodyさん
12/01/13 03:23:44.99
おっさんだってPHPでできなさそうなことを考えるのに必死なんだよ
752:nobodyさん
12/01/13 03:25:36.98
forkの人はム板に行って静かになった。彼に説明する人が他にもっといればよかったのに
753:nobodyさん
12/01/13 03:32:16.25
PHPで並行処理wwwwwwwwwwwwwwwwwwwwwwwwwwww。
無理ぽ。
754:nobodyさん
12/01/13 03:32:56.22
最近あれだな>>747みたいなやつ多いな
同一人物だとは思うけど
俺が課題出してやるから解決してみろ的な
ほんと消えてくれないかな
755:nobodyさん
12/01/13 03:37:04.13
>>753
forkとストリームソケット使えばどうにかなるだろ
てか少し前にそれ系のレスあるから読んでみ
756:755
12/01/13 03:40:02.10
>>753
補足だけど、5.1系のセマフォがバグありだったから気をつけて。
いまさらあえて5.1使うこともないだろうけど、割と最近のRHELまでは5.1系だった気がするので遭遇することもあるかもしれない
757:nobodyさん
12/01/13 03:52:09.82
>>755
あなたの言うように、
forkとストリームソケット使えば「遊び程度」ではどうにかなるだろうね。
しかし、商売用には素直にマルチドレッド言語を使ったほうがいい。
デフォルトで並行できるので開発スピードとパフォーマンスが
「圧倒的に」優れる。forkくんの質問と回答のあまりの馬鹿馬鹿しさに
気持ち悪い。
758:nobodyさん
12/01/13 04:15:10.88
PHPで並行処理が無理だというから、それの返事だったんだが、並行処理はできるけど遊び程度だという風に話をずらされても困る
パフォーマンスについてはまったくもってそのとおり。ただ、それらを同じ土俵にあげること自体が間違えているよね。
開発スピードについては比較対象に依存する。マルチプロセス処理を記述する場合に圧倒的に開発スピードが優れる言語は何?
マルチスレッド言語とやらが何を指しているのかわからないが、たとえばCLRで提供されているワーカースレッドのようなものを指している?
ちょっと内容が漠然としているように思うよ。
759:nobodyさん
12/01/13 09:09:47.21
当たり前話を、ドヤ顔で言ってて恥ずかしくない上に、気持ち悪いとか言ってる人がいるよ。
760:nobodyさん
12/01/13 09:19:15.93
phpでできないこともあるんだね~。
761:nobodyさん
12/01/13 09:21:03.11 1Ih2hdXs
新規にポータルサイトを開発しようと思ってます。
管理機能とかもついてます。
作成の仕方として以下の3つの方法が浮かびました。
フレームワークを使って作成する。(codeigniter)
CMSを使って作成する。(MT or WP)
フレームワークにCMSプラグインを入れて作成する。
どれがいいでしょうか?
762:nobodyさん
12/01/13 09:21:55.46
好きにしろ
763:nobodyさん
12/01/13 11:33:36.37
CMSは非プログラマ向けで、FWはプログラマ向けなだけなの。
悩むほどの話じゃないし、どれつかえばいいかえらべないならけんさくしていちばんうえつかえばいいだけ
764:nobodyさん
12/01/13 13:32:56.37
>>757
765:587
12/01/13 16:04:33.77
皆さんレス、本当にありがとうございます。
しばらく勉強して、なんとか14日以前の日付を10日前で表示するところまで辿り着いてきましたが、なぜか1969年になってしまいます。。
$ptimeはUNIXTIMEではなく1323413498等という数字が入っているのですが、
これを一度UNIXTIMEにするには、どのように記述すればいいでしょうか?
ここがうまくいけば、なんとかなりそうです。
よろしくお願いしますm(_ _)m
↓年だけおかしくなっている現状です。
$post_date = date("y/m/d", $ptime);
$limit = 60 * 60 * 24 * 14; // 過去14日よりも前のものだった場合、
if($_SERVER['REQUEST_TIME'] - $post_date > $limit) {
$post_date -= 60 * 60 * 24 * 10; // 表示は10日前の日付にする。
}
$date = date(y/'m/d', $post_date);
※$dateで表示させています。
766:587
12/01/13 16:09:06.03
↑
すいません、よく確認したら、表示されている日付が20日ぐらい前になっていました(^^;
とりあえず$ptimeはUNIXTIMEにすれば解決できるのかと思います。
度々すいませんが、よろしくお願いします。。
767:nobodyさん
12/01/13 16:20:08.93
なんか面倒な事してるな
俺はこっち使ってる
strtotime("- 10 day",time())
768:nobodyさん
12/01/13 16:32:32.90
12日前のは12日前と表示されることになるだろうけど、それも含めて特殊な事情?
769:765
12/01/13 17:03:53.19
はい、特殊な事情で、13日以前は、そのままで大丈夫なんです。(^_^)
770:765
12/01/13 17:05:44.03
>>767
その記述だと、全体的にかわりますか??(^_^;)
771:nobodyさん
12/01/13 17:16:23.09
>>770
意味がよく解らん
772:nobodyさん
12/01/13 17:16:32.15
$_SERVER['REQUEST_TIME'] - $ptime じゃねーの?
んで、 $ptime -= 60 * 60 * 24 * 10;
$date = date(y/'m/d', $ptime);
773:nobodyさん
12/01/13 18:13:51.83 f/pZY+bx
すみません。質問お願いします。
smarty + pear::pager を使って、情報検索を作っています。
文字コードはUTF-8
携帯用なので、session.use_trans_sid = 1 にしてURLでセッション管理をしていますが、
PHPSESSIDが正しく付かない時があります。
{foreach item=row from=$List}
・・・
<a href="detail.php?ID={$row.ID}">詳細へ</a></p>
・・・
{/foreach}
で1ページ10行ぐらい表示するのですが、
10行に1行ぐらいの割合で
<a href="detail.php?ID=005&PHPSESSID=○○○">となるはずが、
<a href="detail.php?ID=005"?PHPSESSID=○○○>となってしまい、
正しくリンクされません。
検索内容によって10行目だったり、5行目だったりと
規則性が無くなぜこうなっているかわかりません。
すみませんが、よろしくお願いいたします。
774:nobodyさん
12/01/13 20:50:42.78
$Listをvar_dumpしてみれば?
775:nobodyさん
12/01/13 21:03:38.69 f/pZY+bx
>>774 レスありがとうございます。
var_dumpすると IDは通常の数字で int(5) 等です。
List.IDには特に問題ないようです。
あと、var_dumpしただけで問題の症状が10行目だったのが18行目に変わったりしてます。
なんでなんだろ・・・?
776:nobodyさん
12/01/13 21:13:20.06
また謎なこと言ってるな
foreachしてるその配列をdumpして問題ないか確認しろってことでしょ
IDは問題ないようです、とか意味がわからん
foreachから/foreachまでの記述に問題がないならそのループさせてる配列以外問題になる箇所ないじゃん
そして配列がおかしかったらその配列を作ってるロジックがおかしいって特定できるでしょ
777:nobodyさん
12/01/13 21:16:34.52
&を&と書いてみてくれ
778:nobodyさん
12/01/13 21:17:17.58
&を&&と書いてみてくれ
779:nobodyさん
12/01/13 21:18:59.91
&を&amp;(半角)と書いてみてくれ
780:nobodyさん
12/01/13 21:19:28.62
&amp;(半角)
781:nobodyさん
12/01/13 21:19:36.98
あ、まて
SESSION IDを自動的にリンクに付加するようになってるのか
それ、自動でやらせないでアプリケーション側で実装したほうがいいぞ
それが解決策になる
782:nobodyさん
12/01/13 21:19:55.03
あ、まて
SESSION IDを自動的にリンクに付加するようになってるのか
それ、自動でやらせないでアプリケーション側で実装したほうがいいぞ
それが解決策になる
783:nobodyさん
12/01/13 21:33:35.56
使用するデータの型は同じで特に問題はないのに
自動付加するにせよ特定の箇所だけおかしくなるってのは考えられないね
確率や回数で処理を変えるとか妙なことやってない限り
><a href="detail.php?ID=005"?PHPSESSID=○○○>
こうなるのも謎
最悪>の前に"が入るよね
{$row}"{ID}としてるわけじゃないし
784:nobodyさん
12/01/13 21:40:01.56
&amp;(半角)バカスw
785:nobodyさん
12/01/13 21:52:49.63
>>779
&を&にしてくれっていいたいのか?
786:nobodyさん
12/01/13 22:04:24.28
みなまで言わんでいいです
787:nobodyさん
12/01/13 22:51:52.05 WYF6z6mt
PECLにmemcacheとmemcachedって2つあるようですが、
これらの違いはなんなんでしょうか?
Web上ではmemcacheの方が記述が多いので利用されているんだと思うのですが、
具体的な性能の違いとかあったら教えて頂きたいです
788:nobodyさん
12/01/13 22:55:30.59
URLリンク(ja.wikipedia.org)
これ見てわからないならわからなくていいと思う
789:nobodyさん
12/01/13 23:10:15.21
>>788
URLリンク(pecl.php.net)
URLリンク(pecl.php.net)
この違いがわからんって言ってることもわからないのに何でレスしたの?
790:nobodyさん
12/01/13 23:15:11.59
>>789
URLリンク(jp2.php.net)
URLリンク(jp2.php.net)
マニュアルを見ろ
791:nobodyさん
12/01/13 23:33:17.87
>>790
For those confuse about the memcached extension and the memcache extension, the short story is that both of them are clients of memcached server, and the memcached extension offer more features than the memcache extension.
せめてここ貼ってやれよ。
792:nobodyさん
12/01/13 23:34:47.49
まぁユーザノートは主観だけどね
でも俺もその意見には同意する
793:nobodyさん
12/01/13 23:39:13.44
>>787
一般的に皆memcacheの方を使ってるはずだ
そうだろ?
794:nobodyさん
12/01/13 23:44:36.38
いや待て
memcachedよりAPCだろ
APCの方が高速だし
PHP使いはmemcachedよりAPCのはずだ
795:nobodyさん
12/01/13 23:48:47.35
なんでAPCと比較したんだろ
796:nobodyさん
12/01/13 23:51:38.80
KVSとしての側面ももってるから。
てかしらないならレスすんなよもう
797:nobodyさん
12/01/13 23:52:14.87
>>795
前俺も記事見たことあるよ
この2つを比較してるやつ
まぁ高速化の意味だと思うけど
798:nobodyさん
12/01/13 23:53:58.78
>>795
そりゃするっしょ
799:nobodyさん
12/01/14 00:00:14.19
>>752
答えたかったけど、俺知らないし
PHPerはその手の知識持ってる人は少ないんじゃない?
Webコンテンツは作れても、そういうこと作る機会ってないだろうから
800:nobodyさん
12/01/14 00:04:38.50
memcachedやAPCが必要なほどのシステムを組んでるのか?
一般人が使う分にはヒープでいいだろ
801:nobodyさん
12/01/14 00:43:40.46
APCのほうがお手軽だしAPCで十分だな
ロードバランサなんかでアプリケーションサーバを冗長化してる場合とか
どのマシンに振られるかわからない時はキャッシュサーバーとしてmemcachedだな
1回目のアクセスはAサーバ2回目のサクセスはBサーバとかなるとキャッシュ見失うからな
ほとんど場合は1台で動かしてるんだろうしAPCつことけばいいでしょ
802:nobodyさん
12/01/14 03:22:42.53
>>801
分散オブジェクトは使わないのですか?
「どのマシンに振られるかわからない」とか考える必要ないので
使ったほういいですよ。
803:nobodyさん
12/01/14 03:36:04.89
新キャラ 分散オブジェクト厨
804:nobodyさん
12/01/14 03:42:32.66
>>803
PHPにできないことはないよな?
805:nobodyさん
12/01/14 03:44:32.87
>>804
そうなの?
806:nobodyさん
12/01/14 03:47:56.21
>>801
性能の悪いアプリケーションサーバーですね。
キャッシュもできないのですか?
何を使ってらっしゃるのですか?
807:nobodyさん
12/01/14 03:52:09.70
おまえはいいから早く吊れよ
人生詰んでるのに往生際悪すぎだぞ
808:nobodyさん
12/01/14 03:58:18.68
朝までがんばれ
809:nobodyさん
12/01/14 04:00:09.04
>>805
そう。現在、PHPでC言語を実装するプロジェクトが
このスレで始まった。君も参加するかい?
>>807
負け犬みたいだね
810:nobodyさん
12/01/14 04:01:20.83
>>806
あおってるつもりの内容が的外れなのはわざとなの?それだけ教えてほしい
811:nobodyさん
12/01/14 04:02:44.94
>>809
JavaScriptで動くOSを参考にしてみたらどうだい
812:nobodyさん
12/01/14 04:17:27.23
>>810
あおるつもりもなく、本気だよ。
>>811
ありがとう。
最初の目標はPHPでC言語を実装すること。
2番目の目標はPHPで実装したC言語(最初の目標)でさらに
PHPを実装すること。
3番目の目標は、PHPで実装したC言語(最初)でさらに実装した
PHP(2番目)でさらにC言語を実装すること。
4番目の目標は3番目で実装あれたC言語でJava仮想マシンを作ること。
813:nobodyさん
12/01/14 04:50:23.67
かまってちゃんウザイ
ブログの宣伝1度だけ許してやるから消えてくれ
814:nobodyさん
12/01/14 09:07:04.64
>>812
コテハンつけてくれNGするから
815:nobodyさん
12/01/14 10:46:42.03
>>801
はぁ? ということは
phpって分散トランザクションもできないの?
終わっているね・・・
816:nobodyさん
12/01/14 10:54:24.51
さっさと吊れ
817:nobodyさん
12/01/14 15:14:15.26
まぁ端から静観してる俺にとっては最近の話題は面白いけどね
CMSかFWかどっちがいいかのようなものから、セッションがどうたらとかよりも
fork()だとかAPCとかやや上のレベルの話題だからね
CMSとかFWとかそこそこハックしてきたけど、まずfork()なんてお目にかからないからね
まぁ、当たり前ではあるけれど
memcachedは簡単な実装は見かけたけど、APCは見たことないと思う
818:nobodyさん
12/01/14 16:43:56.71
>>817
フレームワークを使ってバッチ処理を書くときに役立つかもよ
819:587
12/01/14 17:30:34.28
みなさんレスをありがとうございます。
根本的に私の説明不足すぎでした。
そのために度々スレを使ってしまい、すいませんでした。
▼大元の相談内容
掲示板等で、$dateを使って日付を表示させているのですが、
特殊な事情があって、過去14日よりも前のものだった場合、
表示は10日前で表示したいのです。
例:1月1日投稿されたもの→5日に閲覧した場合は、そのまま投稿日時は1月1日。20日に閲覧すると投稿日時は1月10日で表示される。
▼現状
$date = date("y/m/d", $ptime); // $ptime はUNIXTIME (1323413498等という形で保存されています)
echo <<<EOM で $date を記述して日付(2011/12/22等という形)を表示しています。
私が勉強不足のため、皆さんのレスを参考にしていじっていたら、ごちゃごちゃになってしまいました(^^;
単純に UNIXTIMEである$ptimeを相談内容の処理をして$dateとして日付を表示できるようにする記述を再度教えていただけると助かります。
すいませんが、よろしくお願いしますm(_ _)m
820:nobodyさん
12/01/14 17:52:08.46
日付が14日よりも前かどうかの判断をしたい
10日前の日付を取得したい
というだけだと思うんだけど。
821:nobodyさん
12/01/14 18:27:08.83
どうせSEO対策だろ。
822:nobodyさん
12/01/14 18:43:08.04
1万人くらい使う掲示板を作りたいと思います
823:nobodyさん
12/01/14 18:45:55.07
10万犬くらい使う掲示板を作りたいと思います
824:nobodyさん
12/01/14 18:47:59.92
>>821
またおまえか
825:nobodyさん
12/01/15 00:09:47.66 0R9yJU6W
分散オブジェクトを作りたいと思います。
826:819
12/01/15 04:06:00.99
>>820
レスありがとうございます。
そうなんですよね。。
UNIXTIMEが、ごっちゃになってしまって、恥ずかしながら私の初歩的な知識では??になってしまいまして。
小さなお店のホームページをやっているのですが、写真をメールで載せるphpがありまして、
度々の更新ができない時にも日付だけフォローできるようにしたいのです。
827:nobodyさん
12/01/15 04:25:58.50
ID出せ
828:nobodyさん
12/01/15 04:45:42.13
要するに客を騙したいってことだな