[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 01/15 08:32 / Filesize : 203 KB / Number-of Response : 829
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:nobodyさん mailto:sage [2012/01/02(月) 02:03:25.50 ID:???]
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 113
kohada.2ch.net/test/read.cgi/php/1322564127/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ

541 名前:nobodyさん mailto:sage [2012/01/09(月) 06:25:12.84 ID:???]
>>539
なぜそれをPHPスレで聞く?

542 名前:nobodyさん mailto:sage [2012/01/09(月) 10:50:51.24 ID:???]
>>539
正確にいうとjavaでflashは作れる。
flexコンパイラはjavaだからwww

543 名前:nobodyさん mailto:sage [2012/01/09(月) 10:58:42.33 ID:???]
この板の人たち、
一つの言語にこだわるひと多いね。
複数できればどうでもいいことにいつまでもグチグチ。

PHPの場合は「Web特化」だから
たぶんそれだと先はないよ。

544 名前:nobodyさん mailto:sage [2012/01/09(月) 11:14:23.75 ID:???]
>>538
Javaプラットフォームでインタプリタを使いたいなら、
以下から選んください。

Groovy
ja.wikipedia.org/wiki/Groovy

jRubyという選択肢もあり、
ja.wikipedia.org/wiki/JRuby

Jythonという選択肢もあり、
ja.wikipedia.org/wiki/Jython

Quercus(PHP)もある。
www.caucho.com/resin-3.0/quercus/

545 名前:nobodyさん mailto:sage [2012/01/09(月) 11:20:52.66 ID:???]
いい加減スレ違いだと気付け

546 名前:nobodyさん mailto:sage [2012/01/09(月) 11:26:55.06 ID:???]
スルーできない残念な人ばかり

547 名前:nobodyさん mailto:sage [2012/01/09(月) 11:34:19.45 ID:???]
>>543
たかがひとつの言語如きに先など無くてもいいのに、
無いと困るだろって思うのを、言語にこだわるというんだよ。

548 名前:nobodyさん mailto:sage [2012/01/09(月) 12:06:17.06 ID:???]
ドヤ顔でwikipediaのせちゃって低学歴だとバレたねw

549 名前:nobodyさん mailto:sage [2012/01/09(月) 12:06:54.27 ID:???]
多分高卒か専門卒の子なんだろうなぁ



550 名前:nobodyさん mailto:sage [2012/01/09(月) 12:07:28.35 ID:???]
>>547
Web特化だから他にはできないでしょ?そういう意味。

551 名前:nobodyさん [2012/01/09(月) 12:19:05.77 ID:bsExuDph]
配列やchrを使わずにforで回してaからzまでアルファベットを生成できる方法を教えてください
たしか↓みたいな書き方で出来た覚えがあるんですが書き方忘れました
for ($i='a'; $i<'z'; $i++) echo $a;

552 名前:nobodyさん [2012/01/09(月) 12:19:47.72 ID:bsExuDph]
自己解決
変数名がおかしくて動かなかっただけだった

553 名前:nobodyさん mailto:sage [2012/01/09(月) 12:57:43.10 ID:???]
>>539
>>542

おもろい。


554 名前:nobodyさん [2012/01/09(月) 14:27:21.52 ID:7f0AwpQn]
安藤優子、木村太郎は、某プロパイダの社外取締役、かつ、安藤は、フジ社外の人間にもかかわらず、フジテレビジョンのM&Aの最中、フジのホワイトナ
イトの【親会社】の本業を無視して、「インターネットは虚業だ。具体性がない
。」というようなことをコメントしました。この虚業は、livedoorを指していた
としても、「同業者」であったということは、非常に、違和感を感じずには、い
られません。

555 名前:nobodyさん mailto:sage [2012/01/09(月) 17:05:12.94 ID:???]
さぁ冬休みも今日でおしまいですよ

556 名前:nobodyさん [2012/01/09(月) 18:22:21.45 ID:IGqUpTKq]
exitとdieって同じ働きってphpマニュアルに載ってました、
みささんはどっちを使ってますか?

557 名前:nobodyさん mailto:sage [2012/01/09(月) 18:23:58.57 ID:???]
dieはexitのエイリアス
joinがimplodeのエイリアスみたいなもん
どちらかといえばオリジナル使え

558 名前:美佐 mailto:sage [2012/01/09(月) 18:24:11.49 ID:???]
あたしはexit派よ

559 名前:nobodyさん mailto:sage [2012/01/09(月) 18:31:34.53 ID:???]
>>476
2chのは、疑わしきは通さずで、公開proxyじゃなくても通さなかった。



560 名前:nobodyさん mailto:sage [2012/01/09(月) 18:33:25.70 ID:???]
無知は怖い。

561 名前:nobodyさん mailto:sage [2012/01/09(月) 19:41:08.39 ID:???]
>>559
そうだったとしても、2chのチェッカー通せば多くの広告やスパムをはじけて良いと思う。

562 名前:nobodyさん mailto:sage [2012/01/10(火) 00:05:10.49 ID:???]
アプリケーションサーバーはどんなもの使ってらっしゃいますか?

563 名前:nobodyさん mailto:sage [2012/01/10(火) 00:06:30.20 ID:???]
>>1

564 名前:nobodyさん [2012/01/10(火) 00:35:57.99 ID:OfX0eCZx]
sshってphpは関係あるのですか?

565 名前:nobodyさん mailto:sage [2012/01/10(火) 00:37:38.41 ID:???]
関係ありません

566 名前:562 mailto:sage [2012/01/10(火) 02:01:24.77 ID:???]
>>563
【OS名】CentOS 5.6
【PHPのバージョン】5.3.8
【連携ソフトウェア】
Apache Http Server 2.2
MySQL Community Server 5.5.19

567 名前:nobodyさん mailto:sage [2012/01/10(火) 02:25:09.67 ID:???]
>>1

568 名前:562 [2012/01/10(火) 03:15:44.30 ID:5jaiW7yr]
>>567


>>562

569 名前:nobodyさん mailto:sage [2012/01/10(火) 03:20:22.76 ID:???]
◆質問する時の注意
・ 質問者として、態度をわきまえること。



570 名前:562 [2012/01/10(火) 03:22:55.62 ID:5jaiW7yr]
>>569

大変失礼いたしました。
教えて下さいませんか?

571 名前:nobodyさん mailto:sage [2012/01/10(火) 03:26:33.03 ID:???]
PHPにアプリケーションサーバは不要ですし使ってないですよ

572 名前:562 [2012/01/10(火) 03:27:09.50 ID:5jaiW7yr]
>>571
なぜ不要ですか?

573 名前:nobodyさん mailto:sage [2012/01/10(火) 03:29:52.42 ID:???]
Apacheにモジュールとして組み込まれてますので

574 名前:nobodyさん [2012/01/10(火) 03:31:45.86 ID:5jaiW7yr]
zendのところ存在意義は何でしょうか?

575 名前:nobodyさん mailto:sage [2012/01/10(火) 06:40:02.10 ID:???]
>>535
Cのインタプリタって割と最近どっかのスレで見たと思う。

576 名前:nobodyさん mailto:sage [2012/01/10(火) 06:46:36.93 ID:???]
>>574
Windowsに対するMicrosoftの存在意義を問うているの?

577 名前:nobodyさん [2012/01/10(火) 09:12:23.38 ID:5jaiW7yr]
>>576

すいません。
>>574はZend Serverを意味してました。

578 名前:nobodyさん mailto:sage [2012/01/10(火) 11:48:47.01 ID:???]
ニートのオッサン何やってんだ。
相変わらず支離滅裂な事言っちゃって。
家に引きこもってないで早く病院行けよ。

579 名前:nobodyさん mailto:sage [2012/01/10(火) 15:33:30.34 ID:???]
Zendのサーバー、誰か使っている人はいませんか?



580 名前:nobodyさん mailto:sage [2012/01/10(火) 16:01:26.75 ID:???]
>>577
まとまってるところじゃないかな。あとはもしかするとGUI

>>579
別の人?
その質問でどうしたいのか

581 名前:349 mailto:sage [2012/01/10(火) 16:06:05.01 ID:???]
>>349 です。
非同期ページ、PHPから取得することができました。
並列ダウンロードしながらそれぞれにプログレスバーなんかつけてみたりして完璧です。
ググっても全然出てこない情報なので結構必要とする人が多い解決方法になったと思いますが
ここに書くとまた反応されそうなんでお礼だけ。ありがとうございました。

582 名前:nobodyさん mailto:sage [2012/01/10(火) 16:14:23.40 ID:???]
>>581
ああ、おつかれさん。
スルースキルと、感情的になりすぎるのに気をつけるといいと思うよ。

583 名前:nobodyさん [2012/01/10(火) 16:21:07.06 ID:HU7fZVh4]
フォームにてページ間を移動しようとしてsessionを使用しようと思いました
まず例えばpage1にて$_SESSION['aaa'} = $_POST['aaa']のようにしました
次に、page2へ行く場合に
$_SESSION['aaa']を保持したままで$aaa = $_SESSION['aaa']とするのがいいのか、
それとも、page1からpage2へ送る際に、<input type="hidden" name="aaa" value="$_SESSION['aaa']"/>のように
いったんフォーム内に値を入れてからpage2のスクリプト内でまた$aaa = $_POST['aaa']のようにした方がいいのでしょうか?

やってることは同じだとは思うのですが、例えばフォーム移行中にエラーが出たり、ブラウザの戻るなどにて意図しない
挙動をされた際に最初の方法だと問題が発生するかなとも思ったもので

すみませんがアドバイス頂けないでしょうか?

584 名前:nobodyさん mailto:sage [2012/01/10(火) 16:23:21.05 ID:???]
フォームに値を入れるんなら、セッション使う意味がないじゃない。

585 名前:nobodyさん mailto:sage [2012/01/10(火) 16:33:08.57 ID:???]
何がやりたのかさっぱりわからん

page1 <-> page2
でフォームの値を維持したまま行き来したいってこと?

まずブラウザのバックボタンでは「有効期限切れ」ってのが発生する
これの解決方法はややこしいので説明しない

で、ページ内に戻るボタンを設置して行き来させるならそのまま$_POSTを引き回せばいい
前のページの値はhiddenに入れておいてもいいしsessionが良ければsession使ってもいい
session使った場合に$_POSTと同期させる方法は代入なりなんなり好きなようにやればいい

586 名前:nobodyさん mailto:sage [2012/01/10(火) 19:10:58.95 ID:???]
もうこのスレでお世話にならなくても解決できる力が身に付きました
これも皆様のア辛口による熱血指導の賜物です
卒業式は3月にやりますのでよろしくお願いします

587 名前:リボンちゃん [2012/01/10(火) 19:45:37.78 ID:cS2s7PkD]
phpについて、困っています。

掲示板等で、$dateを使って日付を表示させているのですが、
特殊な事情があって、過去14日よりも前のものだった場合、
表示は10日前で表示したいのです。
簡単な記述方法があれば、教えていただけると助かります。
よろしくお願いします m(_ _)m

例:1月1日投稿されたもの→5日に閲覧した場合は、そのまま投稿日時は1月1日。20日に閲覧すると投稿日時は1月10日で表示される。



588 名前:nobodyさん mailto:sage [2012/01/10(火) 20:01:42.81 ID:???]
>>587
$date = 書き込んだ日;
$date = mktime($date);
$now = time();
$date = $now - $date > 60*60*24*10 ? 10 : $date;


589 名前:nobodyさん mailto:sage [2012/01/10(火) 20:02:28.76 ID:???]
あ、ごめん、最後の行読んでなかった



590 名前:nobodyさん mailto:sage [2012/01/10(火) 20:03:08.26 ID:???]
>>587
$dateってただの変数じゃん
これでどうかな
<?php
$posted_str = "2011/12/26"; //投稿日
$posted = strtotime($posted_str);
$now = time();
$date_format = "Y/m/d";

$posted_disp = $posted<($now-(60*60*24*15)) ? ($now-(60*60*24*10)) : $posted;

print "今日:".date($date_format)."<br />
元投稿日:".date($date_format,$posted)."<br />
表示投稿日:".date($date_format,$posted_disp);

591 名前:nobodyさん mailto:sage [2012/01/10(火) 20:03:29.35 ID:???]
あ、ごめん、よく読み直したら全然ちがったw

592 名前:590 mailto:sage [2012/01/10(火) 20:14:05.38 ID:???]
>>588,589591 は違う人

593 名前:nobodyさん mailto:sage [2012/01/10(火) 20:28:04.95 ID:???]
回答も含めて色々ひどいな

$post_date // これを投稿日時だとする(UNIXTIME)
$limit = 60 * 60 * 24 * 14; // 期限14日前とする

if($_SERVER['REQUEST_TIME'] - $post_date > $limit) {
$post_date -= 60 * 60 * 24 * 10;
}

echo date('Y-m-d', $post_date);

594 名前:587 mailto:sage [2012/01/10(火) 21:08:57.11 ID:???]
皆さん、レスありがとうございます!
すごい助かります!

60 * 60 * 24 * 10 の10は10日前という数字だとわかりますが、
他の数字60,60,24 の意味を教えていただけると勉強になります。
よろしくお願いしますm(_ _)m


595 名前:nobodyさん mailto:sage [2012/01/10(火) 21:16:12.68 ID:???]
60 * 60 * 24 = 1日
1秒をかけてる

596 名前:nobodyさん mailto:sage [2012/01/10(火) 21:17:14.75 ID:???]
>>593
$_SERVERは使うな!!!!!!!!!!!!!!!
getenvを使えっ!!!!!!!!!!!!!!!!!!!!

597 名前:nobodyさん mailto:sage [2012/01/10(火) 21:17:39.58 ID:???]
60秒 * 60分 * 24時間 = 1日


598 名前:nobodyさん mailto:sage [2012/01/10(火) 21:28:09.69 ID:???]
>>596
公開するプログラムでもあるまいに、
自分の環境チェックもしないやつになっちまうだろ。

599 名前:nobodyさん [2012/01/10(火) 21:34:28.20 ID:HU7fZVh4]
データベースをPDOにてプレースホルダを利用し、変更したいのですが、質問させてください
カラム名がaaa、bbb、cccとして、
その内の一つ、または複数の値を変更するような場合にはどのように記述すればいいのでしょうか?

マニュアルなどを見ると、VALUESのようにデータベースに与える値をプレースホルダに割り当てるのは分かるのですが、
自分は値だけでなく、カラム名にも変数を割り当てたいのです
prepare('UPDATE table SET $name = :name WHERE $url = :url')のような型です
まさかprepare('UPDATE table SET :name1 = :name2 WHERE :url1 = :url2')のような型にはできないでしょうし
この場合、どのように記述すればいいのでしょうか?



600 名前:nobodyさん mailto:sage [2012/01/10(火) 21:34:55.57 ID:???]
>>596
は?その根拠は?
おまえENVの意味もわかってないだろどうせ

601 名前:nobodyさん mailto:sage [2012/01/10(火) 21:37:15.54 ID:???]
>>599
SQLごとに作れ

602 名前:nobodyさん mailto:sage [2012/01/10(火) 21:39:00.09 ID:???]
>>599
普通に
UPDATE table SET col1=? WHERE col2=?
でいいんじゃねーの
カラム名に変数割り当てるなら上を
"UPDATE table SET {$col1}=? WHERE {$col2}=?"
すりゃいいじゃん

603 名前:587 mailto:sage [2012/01/10(火) 22:25:58.95 ID:???]
みなさんレスありがとうございます。
とても助かります!

とりあえず593の$post_dateを$dateに変えて記述してみたのですが、
$limit = 60 * 60 * 24 * 14; // 期限14日前とする
の行でエラーが出てしまいます。

最終的に表示させたい場所に
echo date('Y-m-d', $post_date);
を書けばいいという認識であっていますか??
初歩的すぎて、すいませんが、よろしくお願いします。



604 名前:nobodyさん mailto:sage [2012/01/10(火) 22:33:03.94 ID:???]
>>603
その行でいきなりエラーはないだろw
投稿日時はどうやって受け取って、どういう形式で保存してんの?
例)2012/01/10、とか、2012-01-10、とか、1326121200、とか。

605 名前:nobodyさん mailto:sage [2012/01/10(火) 22:33:49.35 ID:???]
>$limit = 60 * 60 * 24 * 14; // 期限14日前とする
>の行でエラーが出てしまいます。

んなアホな
違うところだろ

>最終的に表示させたい場所に
>echo date('Y-m-d', $post_date);

しらんがな
どんなソースになってるのかもわからんし

606 名前:nobodyさん mailto:sage [2012/01/10(火) 22:40:12.89 ID:???]
>>600
ggrks

607 名前:nobodyさん mailto:sage [2012/01/10(火) 22:42:27.44 ID:???]
>>603
$dateの中身を書きなさい

608 名前:nobodyさん mailto:sage [2012/01/10(火) 22:49:22.50 ID:???]
素人相手に偉そうに語るのがこのスレです。

609 名前:nobodyさん [2012/01/10(火) 22:49:50.87 ID:DbdGI1rD]
【OS名】CentOS 5.5
【PHPのバージョン】5.2.17
【連携ソフトウェア】MySQL GD
【質問内容】
GDの機能を使って画像を作成して、データベースに入れていくのですが、
imagepng()とかで画像をファイルに保存したり、ブラウザに出したりしますよね?
これの出力結果を直接文字列として変数に格納したいのですが、どうすればよいでしょうか?
$data = imagepng()とかも試してみましたが、trueしか返ってきませんでした。



610 名前:587 mailto:sage [2012/01/10(火) 22:52:45.04 ID:???]
ありがとうございます。
すいません、違うところのエラーですか。(^^;


メールで投稿する形式の掲示板で、メールサーバーに
投稿記事を取りに行くphpには、以下のように記載されています。
※日付は1323413498等という形で保存されています。

// 日付の袖しつ
eregi("Date:[ \t]*([^\r\n]+)", $head, $datereg);
$now = strtotime($datereg[1]);
if ($now == -1) $now = time();

呼び出すphpの冒頭にはには
$date = date("y/m/d", $ptime);
とだけ書かれています。
最終的には、$dateと書いたところに日時が表示されています。


611 名前:nobodyさん [2012/01/10(火) 22:54:19.13 ID:DbdGI1rD]
自己れす。下記で行けそうです。
ob_start();
imagepng($resource);
$data = ob_get_contents();
ob_end_clean();

612 名前:nobodyさん mailto:sage [2012/01/10(火) 22:56:28.46 ID:???]
>>609
ヒント:base64_encode

>>610
もうここで聞く以前の学習を
>$date = date("y/m/d", $ptime);
$ptimeには何が入ってるの?すでにUNIXTIMEが入ってるなら
$date = $ptime;
でいいよ、代入する意味ないけど

613 名前:nobodyさん mailto:sage [2012/01/11(水) 00:11:45.44 ID:???]
>>610
dateとstrtotimeは使うな
datetimeを使え

614 名前:nobodyさん mailto:sage [2012/01/11(水) 00:23:58.10 ID:???]
ついに使うな厨も登場したか

615 名前:nobodyさん [2012/01/11(水) 00:26:28.08 ID:dfPHpXiU]
phpにおける分散オブジェクトについて語りましょう!

616 名前:nobodyさん mailto:sage [2012/01/11(水) 00:29:05.90 ID:???]
>>615
kohada.2ch.net/test/read.cgi/php/1131016915/

617 名前:nobodyさん [2012/01/11(水) 00:35:11.26 ID:dfPHpXiU]
さあ、分散オブジェクトについて語りましょう!

618 名前:nobodyさん [2012/01/11(水) 00:37:35.15 ID:dfPHpXiU]
>>616
PHPの分散オブジェクト技術にはどのようなものがありますか?

619 名前:nobodyさん mailto:sage [2012/01/11(水) 00:41:39.74 ID:???]
荒らし認定



620 名前:nobodyさん [2012/01/11(水) 12:55:49.06 ID:eyRErrPB]
aaa.example.comとbbb.example.comで同じセッションを使いたいのですが、
php.iniで session.cookie_domain = ".example.com" を指定してもうまくいきません。
また、.phpの中で直接設定しようと以下のようにテストしたんですがやはりうまくいきません
(aaaとbbbを変更するとセッション値がカラになる)

//session_set.php
ini_set("session.cookie_domain", ".example.com");
session_start();
$_SESSION['animal'] = "cat";
echo "animal>>>";
echo $_SESSION['animal'];

//session_check.php この.phpをaaa.example.comとbbb.example.comで確認する
ini_set("session.cookie_domain", ".example.com");
session_start();
echo "animal>>>";
echo $_SESSION['animal'];

何が原因でしょうか?
php.iniで他に何か設定しなきゃいけないのでしょうか。
ご意見よろしくお願いします

621 名前:nobodyさん mailto:sage [2012/01/11(水) 13:00:09.61 ID:???]
>>620
ドメインが違うんだから無理。
それでセッション引き回しできたら、ハッキングやりほうだい

622 名前:nobodyさん mailto:sage [2012/01/11(水) 13:15:03.58 ID:???]
>無いが原因でしょうか?
マニュアルを読まないのが原因です

623 名前:nobodyさん [2012/01/11(水) 13:27:59.44 ID:eyRErrPB]
>>621
ありがとうございます
php.net/manual/ja/function.session-set-cookie-params.php
を見てるんですが、
「すべてのサブドメインでクッキーを有効にしたい場合は、先頭にドットをつけて '.php.net' のようにします。」
とあるようにサブドメインの変更までなら対応できるのではないですか?

624 名前:nobodyさん mailto:sage [2012/01/11(水) 13:30:15.06 ID:???]
d.hatena.ne.jp/n314/20100512/1273658459

625 名前:nobodyさん mailto:sage [2012/01/11(水) 13:36:51.45 ID:???]
>>624
そのブログの設定ファイルがphp.iniより優先するということでしょうか
実はちょうど今session_set_cookie_params();で対応できたんですが
そちらの勉強もしてみます
ありがとうございました

626 名前:nobodyさん mailto:sage [2012/01/11(水) 13:44:43.70 ID:???]
>>621
へぇ

627 名前:nobodyさん [2012/01/11(水) 14:07:42.61 ID:VbJoExbW]
質問させてください
皆さんはPHPにて「並行処理」をしたい場合、どのようにされていますでしょうか?
自分がやりたいのは、あるスクリプトがあり、それを引数(設定値)だけを変えて
決められた時間の間隔にて(sleep()等を使って)繰り返し、大量に(少なくとも20位)かつ”同時に”実行したいと思っております
子プロセスの同期は必要ないと思います
ファイルをコピーして、各スクリプト毎に設定値を書いて・・・って言うのは現実的ではないので
データベースなどからリストを取得して、その設定値を使ってそれぞれを同時に実行したいと思っております
(fwrite()などで、設定毎にスクリプトを作成していこうかとも考えましたが・・・)

しかし色々考えたのですが、全然いいアイデアが浮かんできません
このような場合、どのようにすればいいのでしょうか?

628 名前:nobodyさん [2012/01/11(水) 14:08:07.06 ID:VbJoExbW]
pcntl_fork()という関数があるという事は知ったのですが、これを使った場合もどのように実装すればいいのかいまいち分かりません
$list = array(~DBからの設定値~);
$pid = pcntl_fork();
if ($pid == -1) {
die('ダメ');
} else if ($pid) {
pcntl_wait($status);
} else { //子プロセス
foreach(~$list~)とかイテレータ{
system()とか
}
}
上記のようにforeach()で回してしまうと、設定値を読み込んだ順に実行されていくので
普通のイテレータ使ったスクリプトと同じで、並列処理にはならないように思います
それともforeach()をif()の外で回して配列に格納しておいて、$iという数字をインクリメント
した後に子プロセス内にてfor()にて一気にsystem($list[$i])等で実行すればいいのでしょうか?

>>627のような実装をしたい場合に何かアドバイスを頂けないでしょうか?

629 名前:nobodyさん mailto:sage [2012/01/11(水) 14:20:29.14 ID:???]
並列させたい分だけforkすりゃいいだろ



630 名前:nobodyさん mailto:sage [2012/01/11(水) 15:00:30.88 ID:???]

foreach ( $list ... ) {
if ( ($pid = pcntl_fork()) === 0 ) {
子でやりたいこと
exit(0);//終わる
} else if ($pid == -1) die("x");
}

//親での処理(終わるの待つとか)




631 名前:nobodyさん mailto:sage [2012/01/11(水) 15:07:26.35 ID:???]
>>627
並列処理したい処理をもうちっと具体的にくれ

632 名前:nobodyさん [2012/01/11(水) 15:25:25.54 ID:VbJoExbW]
皆さん、返答ありがとうございます

自分のやりたい事とは少し違いますが、説明が簡単な例としては、Googleのクローラなんかがあると思います
データをどういう手法か分かりませんが、初期のものでも1サーバに300ものクローラを使っていたとの事です

クローラは動き回っているので考え方が違うかもしれませんが、例えば自社や関連会社のデータなど固定されたターゲットの場合はcronなどで定期的に訪問出来るでしょうが、
それらの設定値をいちいちファイルに記述するのも大変なので、それぞれの場所にてデータを取得するためのxPathなど設定値リストを読み込んで、
スクリプトにて一気に並行処理にて自動的に行う、という事をやりたいと考えております

ただ、アクセスし続けるのも相手側に付加がかかるので、各スクリプトの訪問間隔を大きい相手は5分、小さい相手は1時間などにしたいと考えております

また、それらのデータを正常に取得したら、その瞬間に今度はそのデータを解析・整形するようなスクリプトを起動させたいと考えております

以上の点にて宜しくお願いいたします

633 名前:nobodyさん mailto:sage [2012/01/11(水) 16:03:46.74 ID:???]
いまいち何をやりたいかわからんが
取得先が大量にあって直列処理だと時間がかかりすぎるしそれぞれ取得設定を書くのもめんどいから
並列にしたいってことでおk?
ならcURLのマルチ使って、設定値をdbなどから引っ張ってきてから
回しながらcallbackなんかをうまく設定して一気にゴー、で行けるんじゃないか。
やりたいことと違っていたならすまん。
参照:ttp://techblog.ecstudio.jp/tech-tips/php-multi.html


634 名前:nobodyさん mailto:sage [2012/01/11(水) 16:19:22.57 ID:???]
>>632
Webのクローラーはデータ取得に暇がかかるのが明白だから並列処理するのが当たり前のアプローチ

635 名前:nobodyさん mailto:sage [2012/01/11(水) 16:46:00.24 ID:???]
あえてクローラーをPHPで作ることもないだろ。
PHPは標準で並列処理できない仕様だ。
並列処理できる言語、並列処理できるソフトを使って保存してから
PHPでそこにアクセスしたら良い。

636 名前:nobodyさん mailto:sage [2012/01/11(水) 16:58:01.39 ID:???]
しかしcurlだけは標準でダウンロードが完了してなくても処理が帰ってくるから擬似的には並列処理できるな。
通信だけは並列にできるいうことだが。クローラーはパフォーマンスを落とさずに、並列処理可能な言語・ツールに並べる可能性はある。

637 名前:nobodyさん mailto:sage [2012/01/11(水) 17:09:13.29 ID:???]
ここで適切なアドバイスしても、馬鹿には無理だろ。


638 名前:nobodyさん mailto:sage [2012/01/11(水) 17:40:57.15 ID:???]
返事なくなっちゃったね。

639 名前:nobodyさん mailto:sage [2012/01/11(水) 17:43:06.65 ID:???]
engawa.2ch.net/test/read.cgi/linux/1324631185/427
のコンパイルは結局うまくいったのか?



640 名前:nobodyさん mailto:sage [2012/01/11(水) 18:11:13.28 ID:???]
>>630 じゃだめなん?

641 名前:nobodyさん mailto:sage [2012/01/11(水) 18:17:50.79 ID:???]
よくわからないから無視したんだろw






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<203KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef