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

このエントリーをはてなブックマークに追加
1nobodyさん
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

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

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

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
2nobodyさん:2012/01/02(月) 02:04:06.84 ID:???
■過去ログ
【PHP】下らねぇ質問はID出して書き込みやがれ 112
http://hibari.2ch.net/test/read.cgi/php/1320005469/
【PHP】下らねぇ質問はID出して書き込みやがれ 111
http://hibari.2ch.net/test/read.cgi/php/1317232566/
【PHP】下らねぇ質問はID出して書き込みやがれ 110
http://hibari.2ch.net/test/read.cgi/php/1314692611/
【PHP】下らねぇ質問はID出して書き込みやがれ 109
http://hibari.2ch.net/test/read.cgi/php/1311803617/
【PHP】下らねぇ質問はID出して書き込みやがれ 108
http://hibari.2ch.net/test/read.cgi/php/1309599473/
【PHP】下らねぇ質問はID出して書き込みやがれ 107
http://hibari.2ch.net/test/read.cgi/php/1307228162/
【PHP】下らねぇ質問はID出して書き込みやがれ 106
http://hibari.2ch.net/test/read.cgi/php/1304064660/
【PHP】下らねぇ質問はID出して書き込みやがれ 105
http://hibari.2ch.net/test/read.cgi/php/1300302034/
【PHP】下らねぇ質問はID出して書き込みやがれ 104
http://hibari.2ch.net/test/read.cgi/php/1297669559/
【PHP】下らねぇ質問はID出して書き込みやがれ 103
http://hibari.2ch.net/test/read.cgi/php/1295956018/
【PHP】下らねぇ質問はID出して書き込みやがれ 102
http://hibari.2ch.net/test/read.cgi/php/1292670453/
3nobodyさん:2012/01/02(月) 02:04:24.09 ID:???
関連リンク
■本家マニュアル   http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル  http://pear.php.net/manual/ja/
■メーリングリスト   http://ns1.php.gr.jp/mailman/listinfo/
■ZFマニュアル    http://framework.zend.com/manual/ja/
■Smartyマニュアル  http://www.smarty.net/manual/ja/

(以下英語)
■Zend本家      http://www.zend.com/
■Zend Framework  http://framework.zend.com/
■php | architect   http://www.phparch.com/
■Smarty       http://www.smarty.net
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
4nobodyさん:2012/01/02(月) 02:04:38.64 ID:???
【簡易FAQ】
1.文字コードは何を使えばいいの?
 →1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
 → http://example.com/が例文などのために予約されている。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
 → Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
 → 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
  「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
 → {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
 → cronかタスクスケジューラを使え。
7.extractって危険なの?
 →変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
 → URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
 → .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
5nobodyさん:2012/01/02(月) 02:04:53.06 ID:???
10. そもそもインストールの時点でうまくいかない
 → 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
  Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
 → データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
 → ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
 → 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
 → よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
  http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
15. クッキーの情報をユーザから隠したい
 → セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
 → strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
 → まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
 → C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
  参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(http://〜とか)を扱う際の限界
 → fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
  必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
 →19.を参照
21. 画像処理一般 or GDの限界
 → ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
 → 好きにしてください
6nobodyさん:2012/01/02(月) 02:05:31.26 ID:???
あけましてポポポポーン
7nobodyさん:2012/01/02(月) 03:54:44.69 ID:???
>>1GJ
8nobodyさん:2012/01/02(月) 04:10:13.34 ID:Vsxd7/Vo
PHPのシングルトンはあまり意味ないってよく聞くんですけど、
本当ですか?
9nobodyさん:2012/01/02(月) 06:47:39.02 ID:l3XFfeoy
今年も夜露死苦
10nobodyさん:2012/01/02(月) 09:14:56.71 ID:???
>>8
意味はあるんじゃない?
11nobodyさん:2012/01/02(月) 09:29:15.27 ID:???
PHPに限らずウェブアプリ全体に言えることだけど消費リソースの低減って働きをシングルトンに求めるならそれはあまり意味ないと言える
アクセスごとに処理されるわけだし
例えば全部のアクセスをメモリ上に置いたシングルトンなインスタンスで処理できるようなものになれば話が違ってくるけど
12nobodyさん:2012/01/02(月) 09:31:14.28 ID:???
シングルトンって消費リソースの低減のためにやるもんなの?
13nobodyさん:2012/01/02(月) 09:37:46.62 ID:???
シングルトンなんてデザインパターンの中でもそれほど重要だないもんだし
一度の処理でオブジェクト1つに制限したいとか2つに制限したいとか好きなように使えばいいだろ
14nobodyさん:2012/01/02(月) 09:50:33.58 ID:???
>>8
PHPの書籍スレでベテランを装った素人が「PHPでシングルトンは出来ない」とか言ってるのを真に受けた?
デザインパターンを全く理解してない人のたわごとだから無視していい。
15nobodyさん:2012/01/02(月) 09:53:32.11 ID:???
PHPでDB接続以外にシングルトンなんて使うことあるの?
16nobodyさん:2012/01/02(月) 10:07:23.66 ID:???
>>14
理解してない半端ものほどそういう宗教っぽいセリフ出すよね
何故出来ないのか理解したほうが良い
17nobodyさん:2012/01/02(月) 10:22:40.15 ID:???
>>1
18nobodyさん:2012/01/02(月) 11:02:52.10 ID:???
19nobodyさん:2012/01/02(月) 12:14:22.05 ID:???
どこで使うんだよ、目的と手段が入れ替わってないか?
20nobodyさん:2012/01/02(月) 12:20:49.99 ID:???
目的の無い旅もいいもんだ (暇人に限る)
21nobodyさん:2012/01/02(月) 12:29:16.32 ID:Vsxd7/Vo
シングルトンってやっぱりあんまり意味ないみたいですね。
公式サイトに書いてありました。
シェアードナッシングとはプロセスごとにメモリ空間バラバラに
なるからということか。
このへんはマルチスレッドな言語とは事情が違うわけですね。

www.php.net/manual/ja/language.oop5.patterns.php
22nobodyさん:2012/01/02(月) 12:47:01.87 ID:???
>>11
それってJavaなんかだと普通にできませんか?
applicationスコープというがあるわけで。
23nobodyさん:2012/01/02(月) 16:10:22.97 ID:???
PHPのシングルトンは半端だよ。
公式サイトにもPHPでは意味ないかもって書いてあるじゃん。
まったく無意味ではないけど複数プロセス・複数メモリ空間のPHPでは
本来の意味は無いって。
24nobodyさん:2012/01/02(月) 16:43:20.79 ID:???
>>21
>>23
本当はわかってないだろ。
25nobodyさん:2012/01/02(月) 17:10:05.14 ID:???
シングルトンって1インスタンスを保証するために使うもんでないの?
26nobodyさん:2012/01/02(月) 17:18:55.87 ID:jFXHaYiB
インターフェース名でAという名前をつけて
クラス名でもAという名前をつけるとエラーが出たのですが
インターフェースとクラスでも名前がかぶるといけないのでしょうか?
27nobodyさん:2012/01/02(月) 17:23:24.40 ID:???
インタフェースとクラスが同じ名前なら
それはオブジェクト設計がおかしい
28nobodyさん:2012/01/02(月) 17:25:38.11 ID:???
>>24
どこがわかっていないか説明してあげてね。

>>25
おっしゃるとおり。1プロセスで1インスタンス生成。
PHPの場合は複数のプロセスで動くのでサイト内で
唯一のインスタンスにはならないね。
29nobodyさん:2012/01/02(月) 17:43:31.44 ID:???
サイト内で唯一のインスタンスにはならないね。(キリッ)
30nobodyさん:2012/01/02(月) 17:46:06.37 ID:jFXHaYiB
>>27
設計がおかしいということはやはり、
同じ名前はつけられないことになってるんですね
ありがとうございます
31nobodyさん:2012/01/02(月) 18:03:00.77 ID:Vsxd7/Vo
別の質問です。

こういった場合どのようにするのが効率的ですか?

トップページにニュースを表示させます。
ニュースのデータはDBへ保存しています。

ニュースは誰が訪問しても同じデータですので、
ユーザーごとにDBへ取りに行くのは不効率です。
そのためDBから取り出したデータを
他のユーザーもDBへ再アクセスせずに利用できるようにしたいのですが
どのような方法がありますか?

それともやはりユーザーごとにDBへ取りに行く必要があるのでしょうか?
32nobodyさん:2012/01/02(月) 18:10:28.67 ID:???
>>22
サーブレットのライフサイクルを知らないんでしょ

>>30
コーディング規約でググるといい
クラス…名詞、インターフェース…形容詞と分けたり
プレフィックス (IUnko, IChinko) を付けたり
なぜそうしているのか?等勉強になるから
33nobodyさん:2012/01/02(月) 18:24:49.10 ID:???
最近思うことは関数の仕様が気持ち悪い
str_replaceとかstrlenとかなんだよ

str.replace str.lenとか
strreplace strlenとか
str_replace str_lenとか
いつになったらこういうのが統一すんだよ
一部でオブジェクト化してるが今のままで全ての手続き型からオブジェクト型に移行するのにPHP8ぐらいいきそうだな
34nobodyさん:2012/01/02(月) 18:25:53.66 ID:???
>>31
創造性の無い人間はプログラミングに向いてない
35nobodyさん:2012/01/02(月) 18:27:21.26 ID:???
>>31
静的ページ作っておけば?
36nobodyさん:2012/01/02(月) 18:27:40.78 ID:???
>>32
ありがとうございます
今見ていますが勉強になります
37nobodyさん:2012/01/02(月) 19:02:53.75 ID:???
>>31
とってきた物と時刻をファイルなりmemcacheなりに保存して
有効期限が切れたらDBから取り直す
38nobodyさん:2012/01/02(月) 19:09:23.14 ID:Lu/m0VMP
phpでmemcacheをやりたいのですが
サーバを再起動するとmemcachedに入っているデータは飛びますか?
39nobodyさん:2012/01/02(月) 19:10:51.80 ID:Vsxd7/Vo
>>31
>>37

やっぱりそうなっちゃうんですね。
アプリケーション全体みたいなやつがあればいいんでしょうけど
PHPには無いのですね。わかりました。ありがとうございました。
40nobodyさん:2012/01/02(月) 19:11:25.15 ID:???
memcachedはデータ飛ばないだろ
APCなんかは無理だけど
つーかググれよ
41nobodyさん:2012/01/02(月) 19:13:03.21 ID:???
>>39
おまえそもそもPHPをなんだと思ってるんだよ
トンチンカンすぎるだろ

ちなみにトンチンカンって言葉聞いたのすっげ久しぶりだ
42nobodyさん:2012/01/02(月) 19:21:02.53 ID:Vsxd7/Vo
>>41
PHPって今最も優れたサーバーサイド言語ですよね。
何かお気に障りましたか?
43nobodyさん:2012/01/02(月) 19:24:45.27 ID:???
昨日荒らしてたキチガイか。
44nobodyさん:2012/01/02(月) 19:25:31.63 ID:Lu/m0VMP
なるほど
サーバを再起動してもmemcachedで保有するデータは飛ばないって事ですか
でもmemcachedを再起動したら飛びますよね?
こういう場合ってどうやってデータをバックアップしてmemcached再起動後にデータをリストアするのでしょうか?
45nobodyさん:2012/01/02(月) 19:27:40.54 ID:Vsxd7/Vo
>>43
お疲れさん。
今日の釣りはこれで終了する。
ごくろう。
46nobodyさん:2012/01/02(月) 19:33:37.50 ID:???
昨日1000取ってたヤツか
47nobodyさん:2012/01/02(月) 19:38:32.48 ID:???
>>34

釣りなのかはともかく>>31程度のことを創造性の問題にするとはw
48nobodyさん:2012/01/02(月) 19:52:33.98 ID:???
DBに保存してるならジャンルごとに取り出すとかレコメンドして取り出すとかいろいろできるだろ
すべてのユーザに同じデータならニュースサイトのRSSひっぱってくりゃいい
なんでもできる状態で”これしかできない”限定の質問が視野狭窄脳梗塞状態
周りにこーゆーヤツが多くてちょっとイラッ☆っときてしまった
反省はしてない
49nobodyさん:2012/01/02(月) 20:32:24.66 ID:???
しかし、>>31の釣り野郎はPHPの弱点をうまく突いているwww
50nobodyさん:2012/01/02(月) 20:41:19.53 ID:???
あと->とかふざけんな.でメンバにアクセスできるようにしろ!
面倒くせえんだよ->ってうつの
51nobodyさん:2012/01/02(月) 20:42:23.22 ID:???
>>31の言ってる意味がわからん。
52nobodyさん:2012/01/02(月) 20:44:30.99 ID:???
>>39の言ってる意味もわからん。
53nobodyさん:2012/01/02(月) 20:54:47.07 ID:???
>>47>>49
低脳が自演すると、自分の間抜けさを補強しちゃうのが悲しいな
黒いものをいくら「白だ!」と自演してもみんなクスクス笑うだけ
54nobodyさん:2012/01/02(月) 21:11:31.24 ID:???
>>48の言ってる意味もわからん。
55nobodyさん:2012/01/02(月) 21:12:37.11 ID:???
>>53
釣りにつられるなよw
56nobodyさん:2012/01/02(月) 21:17:10.64 ID:???
ここまでひどい自演も最近あまりみないな
57nobodyさん:2012/01/02(月) 21:18:55.95 ID:Vsxd7/Vo
このスレおもしろすぎる。
釣りって言ってるのに、入れ食い状態。
みんなに正月早々つきあってもらってごめんね。
またネタ用意してくるから待っててねwwwwwwww
58nobodyさん:2012/01/02(月) 21:21:12.46 ID:???
                   ';';,..
                    '';;';';;,.,
                      ''';;';';;'';;;,.,                  ザッ
                       ''';;';'';';''';;'';;;,.,   ザッ
          ザッ            ;;''';;';'';';';;;'';;'';;;
                        ;;'';';';;'';;';'';';';;;'';;'';;;
                        vymyvwymyvymyvy     ザッ
               ザッ     MVvvMvyvMVvvMvyvMVvv、
                   Λ_ヘ^−^Λ_ヘ^−^Λ_ヘ^Λ_ヘ
     ザッ            ヘ__Λ ヘ__Λ ヘ__Λ ヘ__Λ
                __,/ヽ_ /ヽ__,.ヘ /ヽ__,.ヘ _,.ヘ ,.ヘ    ザッ
    /\___/ヽ   /\___ /\___/ヽ  _/ヽ /\___/ヽ
   /        \/      /         \  /        \
  . |           |       |           |  |           |
  |           |       |           |  |           |
.   |           |       |           |  |           |
   \        /\      \        /    \        /
   /`ー‐--‐‐―´\ /`ー‐-  /`ー‐--‐‐―´\   /`ー‐--‐‐―´
   「vipに帰ります」「vipに帰ります」「vipに帰ります」「vipに帰ります」
59nobodyさん:2012/01/02(月) 21:22:02.25 ID:???
こんなくだらない事している間におまいらの知らないところでスキルを上げてる奴らがいる
60nobodyさん:2012/01/02(月) 21:57:14.73 ID:???
とりあえず正月三が日ぐらい休めw
61nobodyさん:2012/01/03(火) 00:37:02.85 ID:5Pk6ggV8
phpのセッションをDBに保存し、それを別言語で作ったアプリ(具体的にはnode.js)からも共有したいと考えています。
ドメインは同じです。

http://www.phppro.jp/phptips/archives/vol45/1
を参考にしてまずはphpのセッションをmysqlに入れる方法を試してみたのですが、
DBを見たところ以下のような形式でデータが保存されていました。

session_id: bhvsjrg7dsroutsea13q1ji52
session_data: name|s:7:"1234567";id|s:9:"123456789";
session_createdate: 2012-01-02 23:44:17

session_idとsession_createdateは特に問題ないのですが、
session_dataの保存形式がよく分かりません。
どういうルールに基づいた形式なのでしょうか?
またこのsession_dataの保存形式を変更することはできるのでしょうか?
62nobodyさん:2012/01/03(火) 00:40:23.42 ID:???
>>28
プロセスを何だと思いこんでるんだ?コイツ
63nobodyさん:2012/01/03(火) 00:42:57.34 ID:???
>>62
プロセスとは何か説明してあげて。
64nobodyさん:2012/01/03(火) 00:47:46.14 ID:rKocSQ20
詳しい人、

PHPでマルチスレッドを実現する方法を教えて下さい。
65nobodyさん:2012/01/03(火) 00:53:19.06 ID:???
>>61 MySQLのデータ型から好きなの選んで http://www.dbonline.jp/mysql/type/
>>63 apache
>>64 いくらでもあるがなggrks
66nobodyさん:2012/01/03(火) 01:00:40.26 ID:rKocSQ20
>>65
すみません。
もっと詳しく教えてください。
どうやってマルチスレッドになるのでしょうか?
67nobodyさん:2012/01/03(火) 01:19:51.05 ID:rKocSQ20
>>65
本当にPHPが単なる並行処理ではなく
マルチな「スレッド」として動くのでしょうか?
どのような仕組みか詳しく教えていただけませんでしょうか?
68nobodyさん:2012/01/03(火) 01:30:14.56 ID:???
お前もう飽きた
69nobodyさん:2012/01/03(火) 01:32:37.21 ID:???
新年早々大丈夫か
70nobodyさん:2012/01/03(火) 01:38:20.07 ID:rKocSQ20
>>68
>>69

>>65の方が教えていただけませんので代わりに教えていただけませんでしょうか?
PHPをマルチな「スレッド」として動かす方法を。
71nobodyさん:2012/01/03(火) 02:03:49.54 ID:???
>>61
>session_data: name|s:7:"1234567";id|s:9:"123456789";
s:7やs:9ってのはString(7) String(9)ってこと
つまり文字列型の変数で長さが7文字って書いてるだけ

>>70
PHPはマルチスレッド非対応
っぽいことはcURL使えばできる
72nobodyさん:2012/01/03(火) 02:38:05.01 ID:rKocSQ20
>>71
やっぱりマルチスレッドはできないですよね。
>>65は嘘つきですね
73nobodyさん:2012/01/03(火) 02:53:05.42 ID:???
>>71
おまえ構うなよ
74nobodyさん:2012/01/03(火) 02:53:47.08 ID:rKocSQ20
>>73
あなたも嘘つきですか?
75nobodyさん:2012/01/03(火) 03:46:50.55 ID:???
>>64 は、マルチスレッドっぽいことがしたいの?
76nobodyさん:2012/01/03(火) 03:48:48.69 ID:???
>>61
確認する暇がないんで嘘付いてたら悪いけど
JSONで保存するならこんな感じかね

> http://www.phppro.jp/phptips/archives/vol45/1
function read ($id) {
  global $db;
  mysql_select_db("db_name");
    
  $result = mysql_query("SELECT * 
                         FROM session_t 
                         WHERE session_id='{$id}'");
  if(mysql_num_rows($result) == 1){
    $row = mysql_fetch_array($result);
-    return $row['session_data'];
+    $_SESSION = json_decode($row['session_data']);
+    return session_encode();

中略

function write ($id, $sess_data) {
+ session_decode($sess_data);
+ $sess_data = json_encode($_SESSION);
77nobodyさん:2012/01/03(火) 03:50:58.26 ID:???
まぁjsonにするのが普通だけどSESSIONは再利用できないでしょ
中身と何かしらユーザーと紐付けるユニークなIDだけを格納しておいて新しいSESSIONへ入れるという実装が現実的
78nobodyさん:2012/01/03(火) 03:52:02.64 ID:5Pk6ggV8
>>71
ありがとうございます。
ちょっと自分で調べてみて、seliarizeという関数がセッションのキーバリューをこの形式に変換していることが分かりました。
79nobodyさん:2012/01/03(火) 04:00:17.52 ID:5Pk6ggV8
>>76,77
やっぱりそういう方法になりますかね…
とりあえず
http://www.1x1.jp/blog/2010/12/php_serialize_data_type.html
http://code.activestate.com/recipes/414334/
seliarizeが中でどんなことやってるのかが何となく分かりましたし、
php側での対応は特にせずにjavascript側でseliarize関数的なものを実装しようかと思います。
ありがとうございます。
80nobodyさん:2012/01/03(火) 04:11:57.55 ID:???
PHPのシリアライズのバグは治ったんでしょうか?
81nobodyさん:2012/01/03(火) 04:13:01.20 ID:???
なんか厄介事やろうとしてるみたいだけど素直にajaxでPHPからjsonでもらったら?
82nobodyさん:2012/01/03(火) 04:17:24.79 ID:???
>>61
>>76
そんなことするくらいならPHP以外の言語にしては?
83nobodyさん:2012/01/03(火) 10:51:44.23 ID:???
いい加減な事いう>>65が答えられなくて誤魔化してきたことに笑った
84nobodyさん:2012/01/03(火) 14:52:20.49 ID:???
関数の呼び出し元はdebug_backtrace()で、ローカル変数はget_defined_vars()
で取得できるようですが、呼び出し元のローカル変数一覧を取得する方法は
ないのでしょうか?
85nobodyさん:2012/01/03(火) 15:03:14.85 ID:???
86nobodyさん:2012/01/03(火) 16:32:20.69 ID:u/AA2OwX
すいません…

【OS名】FreeBSD 8.1-RELEASE-p5
【PHPのバージョン】5.3.8
【連携ソフトウェア】
【質問内容】
関数の呼び出し元はdebug_backtrace()で、ローカル変数はget_defined_vars()
で取得できるようですが、呼び出し元のローカル変数一覧を取得する方法は
ないのでしょうか?
87nobodyさん:2012/01/03(火) 16:56:09.74 ID:???
>>86
ないです
88nobodyさん:2012/01/03(火) 17:16:36.40 ID:u/AA2OwX
>>87
わかりました。ありがとうございます。
89nobodyさん:2012/01/03(火) 17:19:27.22 ID:???
>>88
俺はコードを載せてもらわないと答えられないから
サンプルコードを出してもらってどこの変数をどこから取得したいのかコードで書いてくれ
基本的に俺は日本語だけの質問は答えないけど
90nobodyさん:2012/01/03(火) 17:20:04.63 ID:???
ちなみに外人です
9186:2012/01/03(火) 18:08:55.19 ID:u/AA2OwX
こんな感じなんですが。
function a() {
$a = 123;
b();
}

function b() {
// ここでa()のローカル変数を取得したい
// (array('a' => 123))
}
92nobodyさん:2012/01/03(火) 18:19:55.30 ID:???
>>91
function a() {
$a = 123;
b(get_defined_vars());
}

function b($vars) {
var_dump($vars);
}
93nobodyさん:2012/01/03(火) 18:25:22.21 ID:???
function a() {
$a = 123;
b();
}

function b() {
// ここでa()のローカル変数を取得したい
// (array('a' => 123))
}

これだけ見ると
b()に引数で渡せよってなるね
94nobodyさん:2012/01/03(火) 18:36:58.73 ID:???
お前が書き込んでいるとき

既に俺は渡した
95nobodyさん:2012/01/03(火) 18:49:51.05 ID:Ccq7mdky
phpMyAdminのテーマって、公式から拾える分しかないのですか?
同じデザインで、色違いってのが3種類欲しいんだけど
96nobodyさん:2012/01/03(火) 18:51:12.87 ID:???
>>95
他にもあるよ
97nobodyさん:2012/01/03(火) 18:52:03.43 ID:???
>>91
こういう風にクラスに入れとくのは?
class Debug
{
public $debug = array();
public function get_vars(){var_dump(get_object_vars($this));}
}

class Test extends Debug{}

function a() {
$test1 = 1;
$test2 = 2;
$test3 = 3;

// デバッグモード
global $obj;
$obj = new Test();
$obj->debug["test"] = $test1;
$obj->debug["test2"] = $test2;
$obj->debug["test3"] = $test3;
}

function b() {
// デバッグモード
global $obj;
$obj->get_vars();
}

a();
b();
98nobodyさん:2012/01/03(火) 19:31:14.73 ID:???
>>31

おいおいおい、

そういうときこそシングルトン使えよ。
全くこのスレはレベル低いな。
99nobodyさん:2012/01/03(火) 20:27:11.00 ID:???
DBアクセスにシングルトンを使う場合
あくまでも同じユーザがリソースを使いまわすためにあるもので
別のユーザが使ってたリソースを別ユーザが再利用するなんてことは出来ない

>>31のようなものは単にキャッシュの仕組みを作ればいい
100nobodyさん:2012/01/03(火) 20:39:04.35 ID:???
釣られんなよ
101nobodyさん:2012/01/03(火) 20:40:01.09 ID:???
自分のレベルの低さを釣りで済ますなよ
102nobodyさん:2012/01/03(火) 20:47:44.01 ID:???
>>99
えーーーー。知らなかった。
PHPのシングルトンは特殊ですね。
103nobodyさん:2012/01/03(火) 20:54:55.18 ID:???
>>99
おいおい、君もレベル低いな。
アプリケーションスコープに入れて
シングルトンかませばいいだろ。
104nobodyさん:2012/01/03(火) 21:04:35.24 ID:???
一人何役?
105nobodyさん:2012/01/03(火) 21:32:25.10 ID:???
間抜けなこと言ってるのは >>98 >>102 >>103
106nobodyさん:2012/01/03(火) 21:38:30.72 ID:???
コネクションプーリングなんてのはそもそもアプリケーションサーバが対応してないと無意味だしな
107nobodyさん:2012/01/03(火) 23:06:40.58 ID:???
>>71
>PHPはマルチスレッド非対応
公式では”非推奨”とされてるだけで、Apache MPM workerでマルチスレッドモードになる
http://php.net/manual/ja/function.zend-thread-id.php
108nobodyさん:2012/01/03(火) 23:20:26.07 ID:???
>>107
非推奨は使い物にならないんだよ。
完全趣味ならともかくビジネスだったら非対応。
これだからPHPは馬鹿にされる。
109nobodyさん:2012/01/03(火) 23:27:02.14 ID:???
>>108
馬鹿はそうやって最初からあきらめるが、頭が良い人間はこれでビジネスをする
http://www.phpclasses.org/blog/post/66-More-defensive-programming-practices-to-survive-Web-site-traffic-peaks.html
110nobodyさん:2012/01/03(火) 23:33:06.46 ID:???
>>107
Apacheの機能じゃんそれ・・・
111nobodyさん:2012/01/03(火) 23:33:33.84 ID:???
ついでにこれも読んだら、使いどころがだいたいわかるっしょ
[PHP-DEV] PHP Performance in Apache: Multi-Process vs Multi-Threaded
http://www.serverphorums.com/read.php?7,247223
112nobodyさん:2012/01/03(火) 23:40:41.72 ID:???
必死にググって張ってるだけだろwwwwwwwwwwwwwwwwwwwwwwwwwwww
113nobodyさん:2012/01/03(火) 23:42:00.40 ID:???
>>112を擁護するわけではないけど
英語でベタベタ貼る人ってだいたい理解してない
ごまかしてる感がするので日本語で説明して下さい
114nobodyさん:2012/01/03(火) 23:44:14.54 ID:???
>>109
静的コンテンツをマルチスレッド化されたウェブサーバで運用するアイデア
>>111
マルチスレッド、マルチプロセスのパフォーマンス比較
115nobodyさん:2012/01/03(火) 23:50:08.31 ID:???
>>111
結論言う。

言語を変えろ。
116nobodyさん:2012/01/03(火) 23:51:11.23 ID:???
これは日本語で書いてある

LAMP システムを調整する: 第 2 回 Apache と PHP を最適化する
http://www.ibm.com/developerworks/jp/linux/library/l-tune-lamp-2.html
117nobodyさん:2012/01/03(火) 23:52:26.89 ID:???
>>109
頭の良い人はPHP以外の手段を使う。これ常識。
118nobodyさん:2012/01/03(火) 23:57:57.57 ID:???
>>111
アパッチの動作モードの話をしてどうすんだっていう
119nobodyさん:2012/01/04(水) 00:00:11.45 ID:???
PHPerはバカばっかり。
120nobodyさん:2012/01/04(水) 00:15:57.19 ID:GubBHlXR
PHPでJavaを実装したいのですがどうしたらよいでしょうか?
121nobodyさん:2012/01/04(水) 00:56:17.87 ID:???
このスレ程度低すぎ。
122nobodyさん:2012/01/04(水) 00:56:25.29 ID:???
年明けてもココ相変わらずだなwwwwwwwwwwwwww
123nobodyさん:2012/01/04(水) 01:05:33.68 ID:???
>>120
QuercusというJavaで実装されたPHPはあるが、
その逆はどうあがいても無理。
124nobodyさん:2012/01/04(水) 01:20:24.22 ID:???
限定的なものなら作れるかもねw
125nobodyさん:2012/01/04(水) 02:06:09.87 ID:???
>>107
将来Zend Thread SafetyてのはRubyやpythonみたいに使えるようになるのかねぇ
126nobodyさん:2012/01/04(水) 02:48:24.12 ID:???
PHPはC言語で実装されている。
逆にC言語はPHPで実装できる。これ常識よ。
127nobodyさん:2012/01/04(水) 03:25:48.26 ID:???
どーも年末からキチガイ中年が一人わいてるな
いい歳こいて恥ずかしくないのかね
PHPがクソ言語?そうかもね、そんな気もする
で?ってゆう
128nobodyさん:2012/01/04(水) 03:48:18.28 ID:zYHozA87
phpでセッションをmemcachedに保存しようと思っています
セッションの格納時にデータシリアライズをphpのデフォルトではなくjsonにしたいのですが
その指定方法が分かりません。

$m = new Memcached();
$m->setOption(Memcached::OPT_SERIALIZER, Memcached::SERIALIZER_JSON);

$m->addServer('localhost', 11211);
$m->set('array', array(11, 12));
$m->set('object', new stdclass, time() + 300);


上記のコードを試してmemcachedを覗いたところ、データは問題なくjsonで格納されていたため、
jsonでmemcachedに保存すること自体はできているようです。

https://github.com/andreiz/php-memcached/blob/master/memcached.ini
を参考にしてmemcached.iniに memcached.serializer = "json" を入れたり

$m = new Memcached();
$m->setOption(Memcached::OPT_SERIALIZER, Memcached::SERIALIZER_JSON);
session_start();

として読み込み時にjsonを指定していますが、どうしてもjsonで保存されません。
どうしたらうまくいくでしょうか。
129nobodyさん:2012/01/04(水) 03:48:18.88 ID:???
>>127
このスレはレベル低すぎるよ・・・。
130nobodyさん:2012/01/04(水) 03:54:18.43 ID:???
>>128
そんな処理をPHPですること自体に無理がある。
PHPのシリアライズはバグありで有名なので、
別言語で書き直すべき。
131nobodyさん:2012/01/04(水) 04:04:27.07 ID:???
>>128
あのさ、ただの文字列'abc'とかの出し入れやってみた?
次にmemcachedに格納したそのセッションとやらを単純に取り出してdumpしてみた?
質問する以前の問題だと思うんだよね
132nobodyさん:2012/01/04(水) 04:12:27.36 ID:???
>>128
まさかとは思うが session.save_handler を指定してないとかないよな
http://www.php.net/manual/ja/memcached.sessions.php
133nobodyさん:2012/01/04(水) 04:30:44.93 ID:zYHozA87
>>130
http://php.net/manual/ja/memcached.constants.php
自分の独自実装ではなく、php5.2以降に追加されたオプションだと書いてあったので
php側が提供する機能ならば無理があるというほどではないと思っていたのですが、
無理なのでしょうか…

>>131
そもそもmemcachedにセッション保存できているか確認しろということでしょうか?以下のコードを試しています

$m->setOption(Memcached::OPT_SERIALIZER, Memcached::SERIALIZER_JSON);
session_start();
$_SESSION['string'] = 'a simple string';
$_SESSION['array'] = array(11, 12);
$_SESSION['object'] = new stdclass();

var_dump($_SESSION["string"]);
var_dump($_SESSION["array"]);
var_dump($_SESSION["object"]);

結果
string(15) "a simple string"
array(2) { [0]=> int(11) [1]=> int(12) }
object(stdClass)#3 (0) { }

memcachedから手動で読みだした結果
string|s:15:"a simple string";array|a:2:{i:0;i:11;i:1;i:12;}object|O:8:"stdClass":0:{}

>>131
はい、ちゃんと memcachedとmemcachedの動くホスト(localhost)とデフォルトのポート番号を指定しています。
telnetで接続してみても問題はありません。
134nobodyさん:2012/01/04(水) 04:32:33.54 ID:zYHozA87
>>131
$m->setOption(Memcached::OPT_SERIALIZER, Memcached::SERIALIZER_JSON);
とmemcached.iniに memcached.serializer = "json" を入れることで、
シリアライズの指定ができるのではないかと思っていたのですが、結果のとおりだめでした。
セッションの情報自体は保存されるものの、保存形式はjsonではありません

135nobodyさん:2012/01/04(水) 04:43:47.34 ID:???
>string|s:15:"a simple string";array|a:2:{i:0;i:11;i:1;i:12;}object|O:8:"stdClass":0:{}

オレにはjsonに見えるけどオレの目がおかしいの?
136nobodyさん:2012/01/04(水) 05:02:08.10 ID:???
>>133
php.ini の session.serialize_handler でやらなきゃダメなんじゃないかな
ソースちら見したけど memcached 側で変換しているようには見えないんだが

>>135
眼科行け
137nobodyさん:2012/01/04(水) 06:17:34.03 ID:49ygosTB
'w+' 読み込み/書き出し用でオープンします。 ファイルポインタをファイルの先頭に置き、 ファイルサイズをゼロにします。 ファイルが存在しない場合には、作成を試みます。

fopenのw+ってファイルサイズをゼロにするとあるのですがw+で開いてfseekせずに読むことってできますよね?

138nobodyさん:2012/01/04(水) 06:28:40.45 ID:???
ああああああああw+ゼロって消すのか・・・
w+で読み込みって意味あるのかコレ・・

カウンタみたいな使い方の場合 r+じゃないと行けないのか
事前にファイルの存在調べてtouch()で作らなきゃいけないんですかね。。

139nobodyさん:2012/01/04(水) 06:51:03.20 ID:???
>>138
'c' 書き込みのみでオープンします。ファイルが存在しない場合には新規作成を試みます。
'c+' 読み込み/書き出し用でオープンします。 それ以外のふるまいは 'c' と同じです。
140nobodyさん:2012/01/04(水) 08:30:12.32 ID:3Vpp07Ai
phpで携帯とかスマートフォンとかiphon対応でPC版と
違うのはMETA部と画面の幅とあと特別にあるのでしょうか?
141nobodyさん:2012/01/04(水) 09:13:15.42 ID:???
それPHP関係なくね
HTMLレベルの話じゃん
142nobodyさん:2012/01/04(水) 11:37:54.28 ID:zsEsnx9y
行末にセミコロンを自働で付けてくれるエディタってないですか?
143nobodyさん:2012/01/04(水) 11:50:04.23 ID:???
>>133
なんでアプリケーションスコープ使わないの?
こっちの方が簡単でしょ。
144nobodyさん:2012/01/04(水) 11:52:14.84 ID:???
>>142
emacs
145nobodyさん:2012/01/04(水) 13:05:02.27 ID:???
どうやるの?
146nobodyさん:2012/01/04(水) 14:23:10.70 ID:???
改行コードをセミコロン+改行コードに置き換えればいいだけじゃね
147nobodyさん:2012/01/04(水) 14:38:11.76 ID:???
>>139
ありがトン
148nobodyさん:2012/01/04(水) 14:42:27.81 ID:???
>>146
そうなんだけど、自動でやるにはどうすればいいでしょうか?
ぐぐったり調べてみたけどわかりませんでした
149nobodyさん:2012/01/04(水) 15:06:30.61 ID:gPY3Wdcl
phpのクラスを使った適当なサンプルプログラムがあるwebサイトを
教えてください、英語サイトでもいいです。
150nobodyさん:2012/01/04(水) 15:19:37.29 ID:???
>>149

class A{
public $s = "string";
}
$a = new A();
echo $a->s; // string

class B{
public $s = "string";
}
$b = new B();
echo $b->s; // error

class B{
private $s = "string";
public function e(){
return $this->s;
}
}

$b = new B();
echo $b->e; // string

class C{
public $s = "string";
function __construct($s){
$this->s = $s;
}
}
$c = new C("abc");
echo $c->s; // abc
151nobodyさん:2012/01/04(水) 15:35:31.77 ID:???
>>148
なんでそんなもんが必要なの?

if($hoge) {;
$fuga = 0;
} else {;
$fuga = 1;
};

こんなことになるけど
そもそも自動でセミコロン付加するエディタってほかにあるの?
152nobodyさん:2012/01/04(水) 15:44:52.30 ID:???
>>151
ほかにってことは自動でそのように付加するエディタがあるってことか?
迷惑千万だけど、プラグインとか書きゃそうなるけど
153nobodyさん:2012/01/04(水) 15:49:55.61 ID:???
>>152
いや、ここで求めているほかにそんなのあるのかと
聞いたことないし、そんなのあったら鬱陶しいことこの上ない
154nobodyさん:2012/01/04(水) 15:56:40.16 ID:???
>>151
>なんでそんなもんが必要なの?

よく付け忘れたり、隣のコロンを付けちゃってエラーになるので
エディタが構文解析して必要な場所に自働で付けてくれれば便利だと思ったのですが
2012年の今でもそこまで便利なものはない?
155nobodyさん:2012/01/04(水) 16:02:08.07 ID:???
普通の人はそんなの迷惑なだけで誰も欲してないから作られないんでしょ
欲しければ自分で正規表現でも書いてエディタのプラグイン作ったらいいんじゃないの
156nobodyさん:2012/01/04(水) 16:24:04.92 ID:???
今日も高レベルなトークが繰り返されているね。
157nobodyさん:2012/01/04(水) 16:28:08.27 ID:???
PHPerはアホばかりw
158nobodyさん:2012/01/04(水) 16:29:38.31 ID:???
つうかPHPと関係ない質問はご遠慮くださいよ
エディタスレにでもいきやがれ
159nobodyさん:2012/01/04(水) 16:48:58.91 ID:???
>>154
秀丸ならある
160nobodyさん:2012/01/04(水) 17:02:08.23 ID:???
>>157
同じアホなら書き込まにゃ損損♪
161nobodyさん:2012/01/04(水) 17:03:25.32 ID:???
>>159
文脈判断して、付加してくれるってことかな。
$str = "hogehoge"
  . "hogehoge"
  ;
こういうコード書こうとしたらどうなるの?
162nobodyさん:2012/01/04(水) 17:18:26.29 ID:???
>>154
禿丸ならある
163nobodyさん:2012/01/04(水) 17:26:11.66 ID:???
>>161
マクロ実装しだいでどうにでもなる
しかしPHPスレだからこれ以上はここで回答しない
秀丸使い始めてから秀丸スレ池
164nobodyさん:2012/01/04(水) 17:30:34.60 ID:???
PHPerはアホばかりw
165nobodyさん:2012/01/04(水) 17:47:35.26 ID:???
どう贔屓目にみても>>164が一番アホにみえるわ
自分のレス全部読み返してみたら
たぶん死にたくなると思う
166nobodyさん:2012/01/04(水) 17:47:51.62 ID:1MDsVe6G
すみません 初心者ですが教えて下さい。
phpのファイルを拡張子なしで表示したいのですが、
レンタルサーバーで
option+Multiviewが使えませんでした。

どこかのサイトで
http://www.sample.com/abc
じゃなく
http://www.sample.com/abc/
ならば
割と簡単に出来ると書いてあったのですが、方法をご存知の方はいらっしゃいませんか」?

検索したのですがわからなかったので、
検索ワードも教えて頂けると嬉しいです。
167nobodyさん:2012/01/04(水) 17:57:03.48 ID:???
>>166
普通はmod_rewrite

>どこかのサイトで
>http://www.sample.com/abc
>じゃなく
>http://www.sample.com/abc/
>ならば
>割と簡単に出来ると書いてあったのですが、方法をご存知の方はいらっしゃい>ませんか」?

これはディレクトリで分けてindex.phpを置くって意味じゃない
/abc/index.php
その場合はhttpd.confなり.htaccessなりで
DirectoryIndex index.php
になってればおk
168nobodyさん:2012/01/04(水) 18:12:06.36 ID:???
>>163
え、自分でマクロ実装しろって話なの?この流れで?まさか?
169nobodyさん:2012/01/04(水) 18:16:59.21 ID:???
え、マクロも書けない素人なの?だったら他の初心者向けエディタ使ってればいいと思うよ
170nobodyさん:2012/01/04(水) 18:19:13.57 ID:???
へ?
171nobodyさん:2012/01/04(水) 18:20:17.84 ID:???
PHPerはアホばかりw
172nobodyさん:2012/01/04(水) 18:20:45.01 ID:???
秀丸erはアホばかりw
173nobodyさん:2012/01/04(水) 18:21:43.21 ID:???
秀丸ならある、って書いてるくらいだから秀丸ユーザ的にはメジャーなそういうマクロとかがあるんだろうよ。
174nobodyさん:2012/01/04(水) 18:23:08.97 ID:???
裏を返せば秀丸以外にはないかもね
わざわざ秀丸使うような人たちが欲するものを理解するのは無理
175nobodyさん:2012/01/04(水) 18:32:27.15 ID:???
-l でlintかけりゃ済む話だろ;
いちいち勝手にセミコロン置かれてたまるか;
176nobodyさん:2012/01/04(水) 18:40:37.39 ID:1MDsVe6G
>167
ありがとうございます。
mod_rewriteで検索したところそれっぽい感じでした!
ただ.htaccess自体もよく理解できていない状態なので、
じっくり勉強したいと思います!

>DirectoryIndex index.php
ということは
http://www.sample.com/abc.php

>http://www.sample.com/abc/
こうしたいときは
順次.htaccessに
DirectoryIndex index.php
と記述していけばいいんでしょうか…?

丁寧に説明して頂いて感謝です!
177nobodyさん:2012/01/04(水) 18:43:44.40 ID:???
>>176
【Apache】mod_rewriteについて語るスレ
http://kohada.2ch.net/test/read.cgi/php/1023791370/
178nobodyさん:2012/01/04(水) 18:43:46.89 ID:???
>>176
すごくちがいます
失礼ですが、これ以上説明しても理解できるレベルじゃないと誰もが思ってると思います
ですのでもう少し自分なりに学習してください
179nobodyさん:2012/01/04(水) 18:47:20.75 ID:???
年末になると決まって変なの湧くな
そして正月終わっても定着しちゃうんだよね┐(´д`)┌
180nobodyさん:2012/01/04(水) 19:32:06.64 ID:???
PHPerはアホばかりw
181nobodyさん:2012/01/04(水) 19:32:56.14 ID:UqtcALC3
初心者で基礎的過ぎる質問ですがお願いします。

PHPでフォームを作成しているのですが、データの受け渡し方法が分かりません。
「PHPの絵本」という本を見ながらやっているのですが、
<form action="実行するPHPのURL" method="post">と書かれてあります。
この「実行するPHPのURL」というのがよくわかりません。
あらかじめ「実行するPHPのURL」というものを用意しておくということでしょうか?
まだプロバイダー申し込み等していないのですが、それをしてからということでしょうか?
182nobodyさん:2012/01/04(水) 19:40:16.39 ID:???
PHP関係ねぇ
183nobodyさん:2012/01/04(水) 19:44:24.86 ID:???
>>181
マジで初心者だな。

実行するPHPのURL=hello.phpとする
<form action="hello.php" method="post">
を書いたhtmlを入れてあるファルダにhello.phpを入れる。

例えばhello.phpを
<?php
echo "hello"\n;
?>
としてブラウザには正常に表示されない。
普通はサーバーソフトを自分のpcで立ち上げ、
urlはhttp://localhost/にアクセスする
184nobodyさん:2012/01/04(水) 19:47:35.63 ID:???
>>181
フォームを受け取るPHPのURLってことだよ
そのフォームを表示するhtmlからの相対パスで指定しとけばおk
<form action="form.php" method="post">

実際にフォームの受け渡しについてテストするなら
xamppとか入れてローカルでテストする

ところで今はどうやってphpテストしてる?
コマンドラインならform.phpの最初の方で
$_POST['key'] = "値"; // <input name="key" value="値">
ってしとけばローカルサーバー不要でテストできるね
185nobodyさん:2012/01/04(水) 19:47:47.36 ID:???
[hoge.php]
<?php
echo $_POST['hoge'];
?>

[index.html]
<form action="hoge.php" method="post">
<input type="text" name="hoge">
<input type="submit">
</form>

あとは
<body onload="alert('Hello')">
と入力して送信おしてHelloと出てきたら成功です
186nobodyさん:2012/01/04(水) 19:50:21.70 ID:???
>>181
<form action="hello.php" method="post>
を書いてあるのがhello.htmlとして
http://localhost/hello.htmlにアクセスするんだよ
たとえばxamppならC:\xampp\htdocsにhello.htmlとhello.phpを入れとく。
187nobodyさん:2012/01/04(水) 21:16:20.20 ID:UqtcALC3
>>181です。
みなさん、ありがとうございます。
教えていただいた通りにやったらできました!!
188nobodyさん:2012/01/04(水) 21:30:54.32 ID:???
いいってことよ
189nobodyさん:2012/01/04(水) 23:21:41.75 ID:s9lYOiI4
現在のページの下位置って取得できる?javascriptでもいいけど
190nobodyさん:2012/01/04(水) 23:48:16.96 ID:???
スクロール位置の事だったら(innerHeight + pageYOffsetとか)
クライアントサイドの仕事だからJavaScriptスレで聞いたほうがいいよ
191nobodyさん:2012/01/05(木) 00:17:41.50 ID:YvCiXMC9
phpでmemcachedなど外部キャッシュを利用せずに
アプリケーションスコープ相当を実現することはできますか?
192nobodyさん:2012/01/05(木) 00:39:35.64 ID:???
またお前か
193nobodyさん:2012/01/05(木) 00:52:10.76 ID:???
>>191
PHPだけじゃ無理なんで、なんか工夫する
194nobodyさん:2012/01/05(木) 00:59:15.22 ID:YvCiXMC9
>>193
具体的に方法はありますか?
195nobodyさん:2012/01/05(木) 01:04:20.51 ID:???
具体的にどういう設計を考えてるのか説明してくれないとなんとも言えん
196nobodyさん:2012/01/05(木) 01:07:57.28 ID:YvCiXMC9
>>195
ケースバイケースになるくらい難しいことですか?
197nobodyさん:2012/01/05(木) 01:10:10.17 ID:YvCiXMC9
ちなみに静的ファイルを作るという手法は試しています。
198nobodyさん:2012/01/05(木) 01:16:29.08 ID:YvCiXMC9
>>195
他のサーバーサイド言語では主に3つのスコープがあります。
1.リクエスト
2.セッション
3.アプリケーション

私見だとPHPには1,2相当はありますが3がないので困っているのです。
どうしたらよろしいでしょうか?3がないとすると大幅にパフォーマンスが
変わりかねないので悩んでいるのです。
199nobodyさん:2012/01/05(木) 01:20:01.65 ID:???
>>198
>大幅にパフォーマンスが 変わりかねないので悩んでいるのです。
ほう、それは具体的にどういうケースでパフォーマンスの低下が発生するの?
実装次第で回避出来るかもしれんよ。
200nobodyさん:2012/01/05(木) 01:25:30.10 ID:YvCiXMC9
>>199
サイトへアクセスする全員が利用するデータがDBにあります。
201nobodyさん:2012/01/05(木) 01:27:30.94 ID:???
>>194
自分で書いてるようにmemcachedを使うのではだめなの
202nobodyさん:2012/01/05(木) 01:28:43.46 ID:???
>>200
ん?DBにあるものでいいのなら別段困ることはないような。すでに外部依存でしょ
203nobodyさん:2012/01/05(木) 01:29:24.23 ID:YvCiXMC9
>>199
たとえば一定期間に1000人がアクセスしたとします。
最低1000回DBへのアクセスが発生します。
データは共通なのだから本来であればDBへのアクセスは1回で
よいはずです。
204nobodyさん:2012/01/05(木) 01:32:17.91 ID:YvCiXMC9
>>202
基本的にPHPは重いしサーバーのメモリを食うのでできる限り
使用したくないのです。
そこで、jsonなどの静的ファイルに置き換えてjsで読むという方法は
取っていますが、結局サーバーサイドとクライアントサイドで書く必要
があるのでめんどくさいのです。
205nobodyさん:2012/01/05(木) 01:32:25.82 ID:???
>>200
それは絶対にDBになくちゃいけないのか?
静的ファイルで出来るなら設計から見直した方がいいだろう。
206nobodyさん:2012/01/05(木) 01:34:30.08 ID:???
>>203,204
Webサービス化+キャッシュ(orプロキシ)を使うではダメ?
207nobodyさん:2012/01/05(木) 01:35:26.23 ID:???
補足 サービスはJSONまたは部分的なHTMLを返却するものをつくって。
208nobodyさん:2012/01/05(木) 01:42:34.82 ID:YvCiXMC9
>>205
使う側の利便性を考えるとやはりDBです。

やっぱり方法は無いんでしょうね。
memcachedと使うという手法は知っていますが、
PHPの仕組み上ではどうしてもサーバーに負荷がかかってしまう。

アプリケーションスコープがある言語にどうにかして切り替えます。
ありがとうございました。
209nobodyさん:2012/01/05(木) 02:35:16.36 ID:???
新年早々大丈夫か(精神的に)
210nobodyさん:2012/01/05(木) 02:43:39.22 ID:???
>>209
くやしいのうwww、くやしいのうwww
211nobodyさん:2012/01/05(木) 03:05:43.15 ID:???
>>203>>204>>208
悪いけど究極的にウンコみたいな設計だな。
根本的におかしい。
どうやったらそんな謎設計になってしまうのか詳しく聞きたい。
212nobodyさん:2012/01/05(木) 03:16:02.50 ID:???
>>211
代替案をどうぞ
213nobodyさん:2012/01/05(木) 03:17:13.41 ID:???
>>211
代替案を出せなかったら>>211がウンコだなwwww
214nobodyさん:2012/01/05(木) 03:19:25.31 ID:???
>>211
さあ、どうでるか。ヒヒヒwwww。
215nobodyさん:2012/01/05(木) 03:23:45.71 ID:???
なるほど、つれなかったときはこうなるのか…
216nobodyさん:2012/01/05(木) 03:24:40.47 ID:???
>>211
「おかしなコードを書くことを助長する言語」
by まつもとゆきひろ

ヒヒヒwwww。

217nobodyさん:2012/01/05(木) 03:25:36.35 ID:???
>>211
なんでおかしなコードになるんでしょうか?
ヒヒヒwwww。
218nobodyさん:2012/01/05(木) 03:25:37.26 ID:???
>>212>>213>>214
そうあわてんなって。
こんなウンコみたいな設計で動いてるサイトの詳細ってお前らも知りたくないか?
本人が来たら詳しく聞いてみようぜ。
219nobodyさん:2012/01/05(木) 03:26:40.76 ID:???
>>218
もういいから早く代替案を答えて。
ヒヒヒwwww。
220nobodyさん:2012/01/05(木) 03:27:43.85 ID:???
>>218
ねぇ、質問していい?
なんどfacebookって今C++になったの?
ヒヒヒwwww。
221nobodyさん:2012/01/05(木) 03:28:57.55 ID:???
>>215
そういいながら、釣られたお前。
ヒヒヒwwww。
222nobodyさん:2012/01/05(木) 03:30:09.30 ID:???
>>211
代替案まだ?
ヒヒヒwwww。
223nobodyさん:2012/01/05(木) 03:33:34.93 ID:???
こりゃ、だめだ。
レベル低すぎ。
224nobodyさん:2012/01/05(木) 03:38:42.21 ID:???
>211
「PHPはおかしなコードを助長する言語」
同意だよね。ヒヒヒwwww。
225nobodyさん:2012/01/05(木) 03:39:35.00 ID:???
>>220
facebookってCじゃなくてC++採用したんだ?
226nobodyさん:2012/01/05(木) 03:41:49.18 ID:???
>>225
HipHop for PHP

言語の選択に間違えたfacebookの苦肉の策。
227nobodyさん:2012/01/05(木) 03:43:26.68 ID:???
>>211
ねぇ、まだ?
228nobodyさん:2012/01/05(木) 03:46:05.91 ID:???
>>226
あらあらなるほど
ちゃっちゃと作る分にはPHPは楽だからな。
人が集まった時点で作り直せばよかったんだろうけどなぁ。
229nobodyさん:2012/01/05(木) 03:47:09.77 ID:???
って、それ自体がfacebookの成果物だったんだな。
無知ですまんかった。
230nobodyさん:2012/01/05(木) 03:50:18.84 ID:???
>>226
そんなわけがわからないものを作るよりは
初めからC++で作っとけば良かったんだ。
HipHopにしてもネイティブのC++に比べると
オーバヘッドがあるわけでムダだよね。
231nobodyさん:2012/01/05(木) 03:56:56.20 ID:???
>>230
まったくだな

まあこっちのほうが遙かにわけわからないけどねw
>>203
>>204
>>208
232nobodyさん:2012/01/05(木) 03:58:28.05 ID:???
>>230
C++で作ったからといって、1000ユニークアクセスに対して1000DBアクセスが発生しなくなるわけじゃあないからな。
なんの工夫もなしにそれは変わることはない
233nobodyさん:2012/01/05(木) 04:44:02.06 ID:???
すげー自演だなw
234nobodyさん:2012/01/05(木) 04:50:42.28 ID:???
自演としても成立してないよ
HipHopはPHPの開発ツールとしての優位性が強まる、つまり「PHP最強だろ!」って話だからね
PHP憎しで完全に狂ってるけど、はたから見ると面白い
235nobodyさん:2012/01/05(木) 08:46:23.61 ID:???
>211
もういいから早く代替案を答えて。
236nobodyさん:2012/01/05(木) 08:57:14.69 ID:???
>>234
C++で作ったからといって、1000ユニークアクセスに対して1000DBアクセスが発生しなくなるわけじゃあないのに、
なぜHipHopで「PHP最強だろ!」になるのですか?
237nobodyさん:2012/01/05(木) 09:06:53.72 ID:???
>>232
PHPってそんなこともできないの?
238nobodyさん:2012/01/05(木) 09:14:31.17 ID:???
一人で一生懸命ごくろうさん
よく死にたくならないなと感心するよ
239nobodyさん:2012/01/05(木) 09:22:13.73 ID:???
>>238
もういいから早く代替案を答えて。
240nobodyさん:2012/01/05(木) 11:42:14.54 ID:ACIe1UJA
標準関数を自分で定義したものに置き換える方法ありませんか。
241nobodyさん:2012/01/05(木) 11:48:53.94 ID:???
PHPのソース書き換えてビルドかな
じゃなければmyTrim()とかmyPhpinfo()みたいにプレフィックスでも付けて差別化するしかない
242nobodyさん:2012/01/05(木) 11:55:13.54 ID:ACIe1UJA
ソース書き換えなしで不具合の出る関数の動作を修正したかったのですが。
PHPコードからではできないですか。
諦めて別名でやってみます。
243nobodyさん:2012/01/05(木) 12:05:52.58 ID:???
>>230
それはC/C++ソースをコンパイル時にアセンブラ出力して書き換えるようなもの。
無駄をなくすとすれば機械語、アセンブラにたどり着く。
しかし開発効率からそのあたりには手を出さず、PHPやC/C++のコードの範囲でできる事をした方が良い。
244nobodyさん:2012/01/05(木) 12:15:28.46 ID:???
いま荒らしてる人ってMatzを「まともと」「まともと」って言ってた人か
Matzも知らないから素人なんだろうと思ってたけど納得だわ>>218
facebook級のサイトのを運営してるSEというなりきり設定がワロタ

PHPの高速化に HipHop vs APC てのがあるみたいだけど
現時点でほとんど性能は変わらないようだし安定性の面でAPCに軍配が上がるのかな。
サクッと作って高速で動かすという技術はPHPが先を行ってる感じ
http://blog.candycane.jp/archives/491
http://dsas.blog.klab.org/archives/51978647.html
245nobodyさん:2012/01/05(木) 12:28:51.85 ID:???
HIPHOPの実行ファイルはPHP上で動くんじゃないだろ。
どれだけPHPが高速化できたとしても、リソースの少なさ、速度の速さではネイティブ実行形式が上だろ。
246nobodyさん:2012/01/05(木) 12:43:16.59 ID:WqkweKyi
結局のところ、アプリケーションスコープの代替ってみなさんどうされています?
247nobodyさん:2012/01/05(木) 12:50:18.95 ID:???
ニートが目覚めたな
248nobodyさん:2012/01/05(木) 12:52:26.30 ID:???
いい歳して可哀想なもんやで
249nobodyさん:2012/01/05(木) 12:57:19.29 ID:???
Javaで挫折したニートのオッサンだろう
シングルトン・マルチスレッド・アプリケーションスコープ、全部理解してないからな
250nobodyさん:2012/01/05(木) 13:02:42.94 ID:???
まぁプログラマーはここにいるおっさんのように池沼になるリスクをはらんでるよな
精神病むには最適な職種と言える
251nobodyさん:2012/01/05(木) 14:48:43.61 ID:r8xFdMd/
配列のキー指定で
$ary[expr1 ? expr2 : expr3]ってしたとき
expr3の結果を$ary[]にする方法ってないよね

ちなみにnullや''は空文字列で[]とは違う
252nobodyさん:2012/01/05(木) 14:56:30.73 ID:FPSYlk7p
あるソースを読んでいる中で
class SQLというのがありまして

function getRecord($limit = NULL, $offset = 0) {

if ($limit) return array_slice($this->record, $offset, $limit);
else return $this->record;
}

というファンクションがあったんですが、
$this->record;のrecordが何を指しているかがわかりません。
recordてもともとPHPに用意されているファンクションなんでしょうか?
253nobodyさん:2012/01/05(木) 14:57:37.19 ID:???
だれか翻訳頼む
254nobodyさん:2012/01/05(木) 14:58:56.94 ID:???
class SQLのメンバ
255nobodyさん:2012/01/05(木) 15:09:18.10 ID:???
$this->の時点で気付こうよ
256nobodyさん:2012/01/05(木) 15:09:19.83 ID:???
一回PHPのクラスで何が出来るか勉強してくるべき
257nobodyさん:2012/01/05(木) 15:20:05.60 ID:???
クラスを知らないか、理解していない人の相談なんです。
258nobodyさん:2012/01/05(木) 15:22:06.79 ID:FPSYlk7p
すみません。クラスをちゃんと理解していませんでした
class SQLの中にrecordというファンクションがなかったので
もともと用意されている何かだとおもったのですが
ググってもでてこなかったので聞いてみました。

まだよくわかっていないのでちょっとクラスについて調べてきます
259nobodyさん:2012/01/05(木) 15:25:35.51 ID:yQXwn+vl
DBを使ったサービス作るんだけど、
DB操作しやすいライブラリとかでおすすめないかな?

プログラム自体は大したことないのに、
テーブルやらカラムやらを大量に作らなきゃいけない予定なんで、
SQLで書くのめんどくさいから、
ソースコードだけで片付くものを探してるとこなんだけど
260nobodyさん:2012/01/05(木) 15:26:13.26 ID:???
もっと頭を柔らかくしようよ
$this->recordが必ずしもファンクションとは限らないのにファンクションと決めつけてるだろ
そんなことだといつまでも謎のままだぞ

>if ($limit) return array_slice($this->record, $offset, $limit);
これ見たらあー配列なんだなってわかるし
つーことは、名前からしても$this->recordにはどこかでSELECTの結果かなにかを配列としてセットしてるメンバだとわかるだろう
261nobodyさん:2012/01/05(木) 15:26:51.23 ID:???
>>258
recordというデータメンバもないですか。
親クラスがあればそちらにも
262252:2012/01/05(木) 15:29:33.28 ID:FPSYlk7p
class SQL {
private $count = 0;
private $host = "localhost";
private $error = null;

protected $link = null;
protected $record = null;

function connect() {
$this->link = mysql_connect($this->host, "???", "?????");
if (!$this->link) return false;
if (!mysql_select_db('recnomi', $this->link)) return false;
return true;
}

function disconnect() {
mysql_close($this->link);
}

function getRecord($limit = NULL, $offset = 0) {

if ($limit) return array_slice($this->record, $offset, $limit);
else return $this->record;
}
263nobodyさん:2012/01/05(木) 15:30:55.18 ID:???
>>259
そーゆーことならフレームワークのスレへ
ただSQL書かないで最適なクエリを発行することはまず無理だと思う
DB抽象化ライブラリがインデックスまで把握して最適なクエリを発行してくれるものがあればオレも欲しい
264252:2012/01/05(木) 15:31:28.29 ID:FPSYlk7p
ソースは262なんですけど
5行目のprotected $record = null
で定義しているからしたで使えているということなんですか?;
265nobodyさん:2012/01/05(木) 15:31:53.77 ID:???
>>262
>protected $record = null;

メンバとして定義されてるじゃん
266nobodyさん:2012/01/05(木) 15:33:04.94 ID:???
>>264
まぁいい
とりあえずクラスってなぁに?どう使えてどう動くの?ってことを30日間勉強して
267252:2012/01/05(木) 15:35:46.96 ID:FPSYlk7p
そうですか。。。
$this->recordでrecordに$がついてなかったので
ファンクションだと思ってました。。
勉強してきます
268nobodyさん:2012/01/05(木) 15:36:05.47 ID:???
>>263
了解
おもしろそうだから、一回自作できるか挑戦して、それでもダメだったらどこかのFW探してみます
269nobodyさん:2012/01/05(木) 15:38:38.34 ID:???
>>268
使う機能だけを関数化すればよい。
SQLはコマンドラインでも動作する。難しければそこからやってみてそのあとPHPにするというのもある。
270nobodyさん:2012/01/05(木) 15:44:23.54 ID:???
>>269
何言ってるのこのひと
すごく的外れ
271252:2012/01/05(木) 15:45:28.44 ID:FPSYlk7p
すみません。最後に一個ききたいんですが
5行目のprotected $record = nullでは配列が入っていないとおもうんですが
recordには配列はどうやって入れているのでしょうか?
272nobodyさん:2012/01/05(木) 15:50:04.64 ID:???
$this->recordやrecordでソースを検索したら代入しているところが出てくる。
273262:2012/01/05(木) 15:51:51.85 ID:FPSYlk7p
ありがとうございます。もう一度調べてみます
274nobodyさん:2012/01/05(木) 16:09:56.66 ID:???
$this->$recordと記述してしまうと、
$recordという変数を探して、
名無しの変数なんてねえよ。とわめいたり、
素知らぬ顔で空データ返してくれるPHPを見てると
ちょっと萌えるよね。
こんな技法滅多に使わないけど。
275nobodyさん:2012/01/05(木) 16:19:40.25 ID:???
自分でフレームワークライクなもの書いたりする場合によく使うよ
/hoge/fugaというアクセスはclass hogeのfugaメソッドを実行とかね
どんな名前でアクセスしてくるかわからないものを一箇所で処理しようと思ったら便利でしょ
276nobodyさん:2012/01/05(木) 16:26:11.82 ID:???
つか、>>262のクラスひどくね?w

>if ($limit) return array_slice($this->record, $offset, $limit);
クエリ発行時点でoffsetとlimitつけとけよ…
これごっそりレコード取って後から切り出してるだろ
とりあえずこんなクソコード捨てちまえ
277nobodyさん:2012/01/05(木) 19:28:56.82 ID:???
>>267
ファンションを呼び出すなら$this->record()って書くだろうよ
278nobodyさん:2012/01/05(木) 19:29:38.66 ID:m/6w1Eth
mysql_queryに、複数のクエリを;で区切って実行したところ、エラーになりました
そこでクエリごとに分けて別々に発行すればOKでした。
phpMyAdminでは;で区切ったクエリを実行できるのですが、
これはphpMyAdmin側で複数のクエリに分割して実行しているのでしょうか?
それともこちらのプログラムミスでしょうか?
279nobodyさん:2012/01/05(木) 19:31:31.15 ID:???
プログラムミス
280nobodyさん:2012/01/05(木) 19:40:52.08 ID:???
>>278
今どきただのmysql使うなんて時代後れすぎですね
mysqliを積極的に使いなさい
そして○○_query系でsqlを実行するのは今すぐやめましょう
これからは○○_prepareを使いましょう
queryでsql実行してたら業務でやってる人たちに笑われますよ
281nobodyさん:2012/01/05(木) 19:43:07.94 ID:???
とりあえずマニュアル嫁
http://www.php.net/manual/ja/function.mysql-query.php

mysql_query() は、 ひとつのクエリを送信します (複数クエリの送信はサポートしません)。
282nobodyさん:2012/01/05(木) 19:45:35.06 ID:???
>>279
適当にいうな
>>280
ありがとうございます
>>281
クエリのパースってmysql側でやるものだと思ってたのですが
そういうものなのですか
ありがとうございました
283nobodyさん:2012/01/05(木) 19:46:47.22 ID:???
>>280の言うようにmysqliのほうが速いしなにかと捗るぞ
mysqliのmulti_queryはマルチクエリ実行できるよ

ただ得意気に
>そして○○_query系でsqlを実行するのは今すぐやめましょう
>これからは○○_prepareを使いましょう
とか言ってると笑われるから注意な

すべてケースによるから自分で最適なコーディングを探すこと
エスケープやアプリに合わせたサニタイズも考えながらやって
284nobodyさん:2012/01/05(木) 19:47:41.25 ID:???
適当だったが、Sqlite3、PDOの関数では複数行の一括処理できるが。
Sqlite2の古い関数使うからダメなんだ。
285nobodyさん:2012/01/05(木) 19:50:55.00 ID:???
>>284
何言ってるのこのひと
SQLite関係ないでしょ
PDOの話もしてないし
286nobodyさん:2012/01/05(木) 19:53:46.88 ID:???
○○_prepareはわずかに速くなるだろうが大差ない。
ボトルネックでないだったら直に送信した方がソースは短くて済む。
決定的な差になるのはトランザクション指定。
287nobodyさん:2012/01/05(木) 19:54:50.31 ID:???
ほんとだ。データベースは主にSqliteを使うからそれだけの様な気になってた。
288nobodyさん:2012/01/05(木) 19:55:28.06 ID:???

バカだwwwwwwwwwwww
prepare使うのは速度のためじゃねえよwwwwwwwwwwwww
289nobodyさん:2012/01/05(木) 19:58:19.19 ID:???
だからケースによるだろう
そもそもprepareは速く実行するためのものじゃねーし
エスケープを機械的にほぼ保証してくれるから使えるところでは極力使うべき

おまえ>>269,>>284だろ
ずっと明後日の方向見ながらレスしてるぞ
知ったかぶりにも程があるぞ
290nobodyさん:2012/01/05(木) 21:07:49.16 ID:m/6w1Eth
mysqliについて調べ始めました
二種類のモードのうちMYSQLI_USE_RESULT
というのが、従来のmysqによる結果セットと同じなのかなと思うのですが

http://php.net/manual/ja/mysqli.use-result.php
クライアント側で 大量の処理を行う際は、mysqli_use_result() を 使用すべきではありません。
なぜなら、この関数はサーバとの接続を保持 し続け、取得しているデータに関連するテーブルについて、
他のスレッドから 更新ができなくなるからです。

と書いてありました。
これは接続が保持されている間はテーブルがロックされるということでしょうか?
結果セットはテーブルとは別の領域に作成されるのだから奇妙な処理に思えますが
どういうことなのでしょう
今までのmysql関数でも、接続が保持されている間はテーブルがロックされていたのでしょうか?
291nobodyさん:2012/01/05(木) 21:17:34.84 ID:???
>>290
これ
>バッファに取得しないで結果オブジェクトを返します。 エラー時には FALSE を返します。

バッファに取得しないってことはなんらかの方法で現状をキープする必要があるでしょ
テーブルロックしてるかどうかしらんけど、してる可能性は高いよ

だからバッファリングしてから使うべき(このメソッドはあまり使うべきではない)ってことになるんじゃね
292nobodyさん:2012/01/05(木) 21:19:13.82 ID:???
PHPのお馴染み特定厨さん降臨キタ−ーーーーーーー!
293nobodyさん:2012/01/05(木) 21:29:46.87 ID:???
>>290
ちなみに
>二種類のモードのうちMYSQLI_USE_RESULT
>というのが、従来のmysqによる結果セットと同じなのかなと思うのですが
こういう変な固定概念的なものは取り払って素直にゼロから学習しなさいな
じゃないと自分の思うようにいかないことばかりでイライラすることになるよ
一応mysqliでSELECTを投げる場合の標準的な手順だけ
1. プリペアドステートメントセット
2. クエリ実行
3. 結果オブジェクト取得
4. オブジェクトから結果(レコード)取得
概ねこんな感じ
294nobodyさん:2012/01/05(木) 21:32:31.52 ID:???
>>291
データ取得している間中ロックするとか
なんかありえない処理に思えるのですが・・・
同時に一人しか同一テーブルを読めないってことでしょう
いやありえない
mysqliがおかしいのか
今までも実はそうだったのか・・・
295nobodyさん:2012/01/05(木) 21:35:54.28 ID:???
>>294
>>293読んでね
で、他にメソッド色々あるでしょ?マニュアル熟読してみてよ
しかも読めないとは書いてないじゃん、更新できないとは書いてあるけど
イロイロと勝手にわかったフリするのは学習の妨げになるよ
296nobodyさん:2012/01/05(木) 21:43:24.56 ID:???
>>293
プリペアドステートメントを使う以外は従来と同じですね
あまり気にせず、
データが巨大な場合はmysqli_store_result
そうでない場合はmysqli_use_result
を使っておけばいいのかなぁ
297nobodyさん:2012/01/05(木) 21:52:18.06 ID:???
>>291を理解できるまで何回か読んで考えてみたら
バッファリングせずにデータを読みたい場合とバッファリングしてからデータを扱いたい場合で変わってくるでしょう
前者はクエリを投げた時の状態を固定したままにしておきたいような場合に使えるでしょう
後者は別にデータ取得直後に変更が加えられても問題ない場合に使える
通常どちらを使えば良いかは考えなくてもわかるよね

>データが巨大な場合はmysqli_store_result
>そうでない場合はmysqli_use_result
どうしてこういう考えに至ったのかオレにはわからんけど、マニュアルの読解力もしくは理解できるまで辛抱強く読む努力が必要だと思うよ
なんとなくわかった気になるのが一番マズイ
298nobodyさん:2012/01/05(木) 22:42:32.96 ID:???
…prepareは本来パフォーマンスをあげるためのものだよ。
何でもかんでも使えばいいってもんでもないけど。
299nobodyさん:2012/01/05(木) 22:48:03.29 ID:???
>>286>>298は同一じゃん
おまえわかりやすくていいけどいい加減うぜーよ
しかもおまえ上で暴れてたニートのおっさんじゃん
300298:2012/01/05(木) 22:51:18.40 ID:???
>>299
証明ができなくてすまんが、おっさんにレスをしてた>>202とか>>232は俺ね。
301nobodyさん:2012/01/05(木) 22:54:20.43 ID:???
>>299って同一認定レスしかしてないんだろうか
302nobodyさん:2012/01/05(木) 23:00:39.07 ID:???
「PHPでは出来ないのですね、言語を切り替えます」が口癖のニートおっさんはネタさがし中じゃない?
303nobodyさん:2012/01/05(木) 23:10:21.50 ID:???
釣れる魚がいる間しか釣りをしないんだろう。
そういう意味ではおっさんの方が釣られる魚(>>289とか)より賢い。
304nobodyさん:2012/01/05(木) 23:17:52.42 ID:???
>>303
だから気づけよおっさんwww
わかりやすすぎだろw
305nobodyさん:2012/01/05(木) 23:18:41.31 ID:???
>>297
むしろあなたの方がだいぶ頓珍漢なこと言ってると思うけど・・
306nobodyさん:2012/01/05(木) 23:19:45.77 ID:???
>>304
まさかの句読点マスター?
307nobodyさん:2012/01/05(木) 23:21:33.78 ID:???
知っているのか雷電
308nobodyさん:2012/01/05(木) 23:22:45.03 ID:???
釣りってのは能力の高い人間にしか出来ないわけで、ニートおっさんがやってるのは自爆ショー
常人だったら死にたくなるレベルの赤っ恥でも、それに気付く能力が無いので無敵とも言える
309nobodyさん:2012/01/05(木) 23:25:35.71 ID:???
エスケープを保証してくれるって言っても
自分でdbクラス書く時はもともとそういう風に書くし、
mysqliって言うほど良くなくね
明確なメリットが見えてこない
310nobodyさん:2012/01/05(木) 23:26:02.65 ID:YvCiXMC9
しかしこのスレはよく釣れるなあ!
311nobodyさん:2012/01/05(木) 23:28:08.68 ID:YvCiXMC9
312nobodyさん:2012/01/05(木) 23:33:10.88 ID:???
>>309
だから主目的はパフォーマンスにあるんだって。
313nobodyさん:2012/01/05(木) 23:37:21.48 ID:???
mysqli_stmt::bind_param

注意:
データのサイズがパケットサイズの最大値(max_allowed_packet)を こえた場合、types に b を 指定して
mysqli_stmt_send_long_data() を使用し、 データをパケットに分割して送信する必要があります。

とか。
これ便利になってなくね
変な制限があちこちに加わってるんだけど。
本当にいいものなのかこれは?
314nobodyさん:2012/01/05(木) 23:44:12.21 ID:???
プリペアドステートメントで得られるパフォーマンスメリットって
「同じプロセスの中でほぼ同じクエリを何度も発行する場合」だけでしょ?
そんな処理がほとんどないと思う
315nobodyさん:2012/01/05(木) 23:45:29.12 ID:???
mysql_queryなんてつかわねえからwwwwwwwwwwwwww
だからRubyやPythonにPHPはなめられるんだってwwwwwwwwwwwwwwwwwwwww
まあ止めはしねえよwwwwwwwwwwwwwwww
恥かくのはおめえらだからしらねwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
316nobodyさん:2012/01/05(木) 23:55:28.29 ID:???
>>314
ないところにニーズは生まれない
317nobodyさん:2012/01/05(木) 23:57:16.33 ID:???
>>292 == >>315
318nobodyさん:2012/01/06(金) 00:01:59.06 ID:???
>>316
phpの場合そうでもないからなぁ
クソ実装が単にみんなに使われているからという理由で使われたりする
319nobodyさん:2012/01/06(金) 00:33:30.11 ID:???
それはお前が低レベルなだけだろ
320nobodyさん:2012/01/06(金) 00:34:16.78 ID:???
いやいやw
それはない
321nobodyさん:2012/01/06(金) 01:17:56.10 ID:egPD7RrR
dbに関連しての質問ですが、
コネクションプーリングはどうやればいいのですか?
322nobodyさん:2012/01/06(金) 01:19:48.56 ID:???
php関係ないw
323nobodyさん:2012/01/06(金) 10:58:36.82 ID:9fGZTwoM
勉強してはや半年。やっとPHPの基礎がわかってきた感じで
掲示板くらいならつくれるようになったんですが、もっと腕を上げたいです。
なにかいい勉強法はありませんか?
書店に並んでいるのはどれも入門書ばかりで物足りないです。
コードリーディングというのがいいらしいですが、おすすめはありますか?
324nobodyさん:2012/01/06(金) 11:18:14.02 ID:???
>>323
フレームワークで同じものが作れるようにする
325nobodyさん:2012/01/06(金) 11:20:45.87 ID:???
フレームワークより直の関数呼び出しの方が省メモリ・高速だしできるだけ使わない方が良い。
使った方が簡単で生産性がいいなら使っても良い。
アセンブラよりC/C++を使うようなものだ。
326nobodyさん:2012/01/06(金) 11:23:14.96 ID:???
>>323
それくらい慣れたと思ってる人を対象にした本って、
セキュリティメインに書いてる本くらい。
勿論読んでおくべきだけど、
他人のコードを解析するのが一番の勉強になる。
ZendFramework なんかは他のフレームワークと違って分解されることを前提としてるし、OOPな構造なんで、
解析もしやすいし、勉強にもなる。
ちいたんみたいな小さいフレームワークを解析するってのも、解析しやすいし、ためになる技法が結構集まる。
327nobodyさん:2012/01/06(金) 11:43:21.25 ID:???
>>325
趣味とか一人で制作するのならそれでいいよ
328326:2012/01/06(金) 11:45:07.14 ID:???
自作フレームワークちっくを作るのもおすすめ。
いままで作った関数とかから、応用性があるものを探し出して、
さらに実用的になるように修正して、プロジェクトに追加する。
ちょこっとそれで簡単なシステムを作って、
命名規則やディレクトリ位置などを確定させる。
フレームワークちっくの設定を定義するファイルも作って、細かい設定を変更できるようにする。
で、これとそれとあれを丸まんまコピーして、設定少し合わせれば、
別のサーバーで1からシステム作るのが楽になるぞ。
みたいなプロジェクトを作るのが目標。
329nobodyさん:2012/01/06(金) 11:54:44.26 ID:DYaNhYpb
質問です。クラスのメンバと、クラスの変数を同一視させる方法ありますか。

$queue = new QUE;
$queue->push(1,2,3);
$x = $queue->pop();
print_r($x);
print_r($queue); ←ここで{2,3}を表示させたい。


class QUE {
protected $queue = array();
function pop() { return array_shift ( $this->queue ); }
function push($x) { array_push( $this->queue , $x); }
}
330nobodyさん:2012/01/06(金) 12:00:31.39 ID:???
>>329
__toString()
マジックメソッド php5.2以上
331nobodyさん:2012/01/06(金) 12:00:33.66 ID:9fGZTwoM
>>325
ゆるゆるなCodeIgniterでならつくれます。
他のフレームワークも勉強してみます。

>>326
入門書かフレームワークの解説書かセキュリティの本という感じで
入門書クリアしたレベルの人の為の本が全くと言っていいほどないですよねorz
ちいたんなんて初めて知りました! これを読んで勉強してみようと思います。

>>328
なるほど。フレームワーク自作って面白そうですね。
やってみます。

ありがとうございます!
332nobodyさん:2012/01/06(金) 12:01:12.09 ID:???
>>329
そのまえにクラスの初歩を勉強しようや
333nobodyさん:2012/01/06(金) 12:01:36.19 ID:9fGZTwoM
>>331
× >>325
>>324
失礼しましたorz
334nobodyさん:2012/01/06(金) 12:24:59.33 ID:DYaNhYpb
>>330
サンクス。このようにできました。

$queue = new QUE;
$queue->push(1,2,3);
$queue->push(5);
$x = $queue->pop();
print_r($queue);


class QUE {
public $queue = array();
function pop() { return array_shift ( $this->queue ); }
function push() { $arr =func_get_args(); foreach($arr as &$x) $this->queue[]=$x; }
function __invoke() { return $this->queue; } }
335nobodyさん:2012/01/06(金) 12:26:53.87 ID:ZICr1WBy
WebPG歴半年の新米です。PG35歳説なんてむかしからありますが、
WebPGて横に幅広い知識が必要だと思いますし、立派な技術職だと思います。
PHPの熟練者(例えばこのスレの回答者の方々)って職にこまらないですか?
336nobodyさん:2012/01/06(金) 12:30:42.42 ID:???
俺は困ってないが、そんな個人的なこと聞いてどうする。
337nobodyさん:2012/01/06(金) 12:33:55.87 ID:ZICr1WBy
まだ未熟で先が見えないので自分のキャリアプランに不安を感じていまして。
webPGのキャリアモデルて調べてもあまり出てこない(業界の歴史が浅いから当然ですが)
ので聞いてみました
338334:2012/01/06(金) 12:36:08.09 ID:DYaNhYpb
334は、print_r($queue); ⇒ print_r($queue());でした。
339nobodyさん:2012/01/06(金) 12:49:15.17 ID:???
>>337
言語なんて必要に応じて使えなきゃ、先はないかもね。
340nobodyさん:2012/01/06(金) 13:03:15.39 ID:???
最近、知恵袋から出張にきてるボンクラ質問者と回答者が居座ってるね
341nobodyさん:2012/01/06(金) 13:05:07.19 ID:???
web系は古いものに固執しなきゃどうにでもなる。
モバゲーもスマホもSNSも結局大成功したじゃない。
で、そういうのに売れない時代から付き合ってたやつも、相当な利益出してるはずなんだ。
そういうこと。
342nobodyさん:2012/01/06(金) 13:12:27.05 ID:???
それは経営者の判断で雇われプログラマには関係ない。
343nobodyさん:2012/01/06(金) 13:34:29.26 ID:???
プログラマなんて40,50になって出来る職業じゃないんだからさっさと自分で稼げる形を作るのが普通
先なんてどうなるかわかりきってることだし
それをやらずに人生折り返し地点まできちゃった人はざまぁとしか言いようがない
諦めて吊るか別の仕事で細々とやっていくしかないでしょ
344nobodyさん:2012/01/06(金) 14:52:28.30 ID:???
プログラムを生産するのではなく、物理的なものを生産してプログラムで補助(ショッピングカート)するのが出来る男。
345nobodyさん:2012/01/06(金) 14:57:03.63 ID:???
確かに、元営業で「必要だから勉強した」ってのがいいもの作ったりするんだよね…
346nobodyさん:2012/01/06(金) 15:35:47.70 ID:GMZDyuPm
PHPで今流行のステマは作れますか?
347nobodyさん:2012/01/06(金) 15:44:32.57 ID:???
>>344
まさに俺。
カスタマイズや保守運営のコスト考えたら自分でやらなきゃしょうがないというだけだが。
348nobodyさん:2012/01/06(金) 19:01:56.16 ID:???
自分が作ってるものが、ただのソースなのか
なんかのサービスを作ってると思うかで大分違う。
349nobodyさん:2012/01/06(金) 19:59:49.95 ID:ISncG55/
【OS名】CentOS
【PHPのバージョン】5.3
【質問内容】
file_get_contents で任意のページを取得する際、
取得先のページがjavascriptの非同期通信でコンテンツを読みこんでいる場合に
その非同期通信が終わった状態を読みこむにはどうすればいいのでしょうか?
そのまま読み込むとコンテンツ内容が空のソースが返ってきてしまいます。
350nobodyさん:2012/01/06(金) 20:09:24.54 ID:???
>>349
空のソースでもユーザ側のブラウザが勝手に取りに行ってくれるんでない?
phpで非同期通信コンテンツ読み込みたいなら対象のxml読み込めばいいんじゃない?
351nobodyさん:2012/01/06(金) 20:19:12.10 ID:???
>>349
そもそもfile_get_contents()でjavascriptが実行できるわけないでしょう
どうしてもそれをやりたいならCentOSでブラウザを立ち上げてブラウザでソースを取得
方法はググったりググったりググッて

>>350
意味が分からないというか、あなたが理解していない
352349:2012/01/06(金) 20:19:50.10 ID:ISncG55/
>>350
取得したソースをいじくってから表示させたいのです。
取得対象はxmlではなく(たぶんphpで吐き出した)htmlです。
353349:2012/01/06(金) 20:21:02.60 ID:???
>>351
curlを使っても無理ですか?
354nobodyさん:2012/01/06(金) 20:23:13.16 ID:???
>>353
クライアントサイドスクリプトってなーにってところからググッて
355nobodyさん:2012/01/06(金) 20:26:02.47 ID:???
ASP.NET最強
356nobodyさん:2012/01/06(金) 20:28:17.32 ID:???
>>354
そうですよね、言われてみれば。
ブラウザに組み込まれていない生のjavascriptっていうもんがあれば行けそうですが。
現状、方法はないということで了解しました。
357nobodyさん:2012/01/06(金) 20:31:44.53 ID:???
>>356
>現状、方法はないということで了解しました。
どういうことなの
方法は教えたし
358349:2012/01/06(金) 20:36:54.90 ID:???
>>357
裏でブラウザを立ち上げるっていう方法しかない、それはいやだな、ということです。
あんまりカリカリしないでください。
359nobodyさん:2012/01/06(金) 20:44:28.89 ID:???
そか
じゃあ仕方ないな
どうせ人のフンドシでスモウを取るような事を考えてたんだろ
それ相応のスキルを身につけてから考えようぜ
360nobodyさん:2012/01/06(金) 20:58:58.95 ID:???
>>351
理解してないのはオマエだ
361nobodyさん:2012/01/06(金) 21:01:28.18 ID:???
自身で非同期通信をやってみれば原理がわかるんじゃない
362nobodyさん:2012/01/06(金) 21:57:09.55 ID:???
>>360
お前だよ
363nobodyさん:2012/01/06(金) 22:14:44.34 ID:???
>>362
javascriptを実行するのはクライアントのブラウザだってわかってる?
364nobodyさん:2012/01/06(金) 22:18:39.17 ID:???
>>363
おまえ>>349の質問の意味わかってねーじゃん
バカなの?ハゲなの?
365nobodyさん:2012/01/06(金) 22:29:23.31 ID:???
>>363
マジ痛すぎ
366nobodyさん:2012/01/06(金) 22:33:05.28 ID:???
>>364
とりあえず 「AjaxでxmlかJSONを読み込み表示する」 までやってみよう 話はそれからだ
367nobodyさん:2012/01/06(金) 22:40:28.35 ID:???
>>366
ほんと痛いなこいつ
368nobodyさん:2012/01/06(金) 22:42:16.99 ID:???
いつものおっさんじゃねーのw
369nobodyさん:2012/01/06(金) 22:46:18.19 ID:???
なるほど Ajax使ったことの無い人間がAjaxの質問に答えようとしたのか
370nobodyさん:2012/01/06(金) 22:51:49.81 ID:???
こっちが恥ずかしくなってきたw
なにこのなんともいえないキブンwww
371nobodyさん:2012/01/06(金) 23:36:53.54 ID:???
年末から変なの住み着いてこのスレも死んだな
372nobodyさん:2012/01/06(金) 23:37:50.28 ID:???
>>368
いつものおっさんではない オレはまだ0x二十代だ
いつものおっさんほど詳しくないし FWとかぜんぜん興味ない
どちらかというと 乗り手を選ぶカリカリチューンド悪魔のZ的なスーパーハードコーデイングが大好きです

>>370
大丈夫か? 顔が真っ赤だぞ
先に言っておくが つり宣言は敗北宣言だ もうちょっとがんばれ
373nobodyさん:2012/01/06(金) 23:44:21.72 ID:???
いや、トンチンカンで全く詳しくないからニートおっさんだと思われた訳で。
374nobodyさん:2012/01/06(金) 23:46:20.18 ID:???
まちがいないだろうな
かわいそうに思えてきた
375nobodyさん:2012/01/06(金) 23:48:58.30 ID:???
そもそも今の20代は悪魔のZなんてしらんしな
376nobodyさん:2012/01/06(金) 23:55:22.02 ID:???
ちなみに 我々はこのデバック方を"フィッシャープリンティング"と呼んでいる が IDが出ないスレではあまり意味が無い
おまえら 0x二十代の意味ばらすなよ
377nobodyさん:2012/01/07(土) 00:00:22.48 ID:CsZsKZfD
PHPでHadoopを作られた方いらっしゃいますか?
ちょっと難しくてお助けを・・・・。
378nobodyさん:2012/01/07(土) 00:05:54.48 ID:???
おっさんが来たか
379nobodyさん:2012/01/07(土) 00:13:50.68 ID:???
姉さん出番ですよ
380nobodyさん:2012/01/07(土) 00:14:47.22 ID:???
ずっとはりついてるよおっさんは
381nobodyさん:2012/01/07(土) 00:41:56.83 ID:CsZsKZfD
PHPでFacebookを作られた方いらっしゃいますか?
ちょっと難しくてお助けを・・・・。
382nobodyさん:2012/01/07(土) 04:09:12.62 ID:???
超初心者なんですが、Amazonの商品情報を取得したくて、PHPの入門関連の本を見ながら勉強してます。

http://www.bnote.net/php/pear/01_cache.shtml
本や上記サイトをみながらAmazonの特定商品の情報は取得できるようになったのですが
現状ですとphpファイルに取得したい商品のasianをいちいち書き込んで保存して
http://xxxxxx/xxx.phpで表示しているので手間がかり使い勝手が悪いです

http://xxxxxx/xxx.php?「商品のasian」'
のようにして、末尾のasianを変えるだけで、PHPファイルをいちいち弄らずAmazonの任意の商品情報取得したいんですが、
どのようにすればいいですか?

宜しくお願いします。
383nobodyさん:2012/01/07(土) 04:09:55.44 ID:WBJb+YlP
すいません。あげ忘れました。
384nobodyさん:2012/01/07(土) 05:13:49.57 ID:???
385nobodyさん:2012/01/07(土) 10:13:48.06 ID:???
>>349
Prototype.js使ってさ、
001.html
<script type="text/javascript">
function sendRequest(){
new Ajax.Updater($('date'),'hello.php');}
window.onload=sendRequest;
</script>
<body>
<span id="date">・・・</span><br/>
</body>

hello.php
<?php
$contents = @file_get_contents("somefile.html");
echo $contents;
?>

somefile.html
<html><head></head><body>
範馬勇次郎
</body></html>

っで、001.htmlに範馬勇次郎って表示させる的なこと聞いてるの?
386nobodyさん:2012/01/07(土) 10:15:50.66 ID:???
GETを理解してないのにAmazonのAPIが使えたところが謎だけど
その本とやらを窓から投げて1から学習したほうが身につきそうだな
387nobodyさん:2012/01/07(土) 10:19:13.10 ID:???
>>385
質問よく読めよ
しかもなんでprototype限定なんだよキョウビprototypeなんか使ってるやつほとんどいねーよ

file_get_contents()でURL叩いてそのページにjavascriptの実行結果まで返して欲しいんだけどって質問だろうが
それに対して>>351がfile_get_contents()でjavascriptを実行できるわけないだろって返してるし
388385:2012/01/07(土) 10:19:30.15 ID:???
>>349
コンテンツ内容が空って、〜.phpがfile_get_contentsで〜.htmlを取得
するから、この〜.phpを非同期ができてないからエラーじゃないの?
つまり、php側でなく、Javascript側でエラーが出てるはず。
389387:2012/01/07(土) 10:21:33.27 ID:???
ミスった。388は385でなく387です。
390nobodyさん:2012/01/07(土) 10:22:57.30 ID:???
>>389
おまえなに成りすまししてんだよ
しねよ
391nobodyさん:2012/01/07(土) 10:37:47.48 ID:???
イ`
392nobodyさん:2012/01/07(土) 10:42:39.51 ID:???
的確な回答でてるしね>>351
バックグラウンドでブラウザとPHPで連携するしかないでしょ
PHPでjavascriptをパースして実行結果を導き出すって方法もあるかもしれないけど出口の見えない途方も無い作業になるし
393349:2012/01/07(土) 10:57:05.96 ID:???
いろいろありがとうございます。
>>351さんに言われたとおりphpからjavascriptの非同期実行結果込みのページを取得しようとすること自体がそもそも間違っていたので
こちらもjavascriptで取得することにしました。
取得先URLを準備して、iframeのsrcへ突っ込み、見事javascript実行結果状態のページがフレーム内に表示されました(当たり前ですが)。
さてこのiframe内のソースをphpに投げれば余裕じゃんと思ったのですが、別ドメインのiframe内ソースって取れないんですね。
ぬおー、なんだよ、目の前に表示されてるのにソース読めないとか、まじですか、というところで止まっています。
php関係ないですね。できそうでできないです。
394nobodyさん:2012/01/07(土) 11:11:59.39 ID:???
>>393
クロスドメインで簡単にゴニョゴニョできたらセキュリティ的にマズイでしょ
相当昔はできたけど今は簡単にはできないよ
395nobodyさん:2012/01/07(土) 11:20:47.88 ID:???
>>393
「攻撃対象サイトのAjaxが取りに言ってるxmlをfile_get_contentsで取得してphpで加工して自分サイトに表示させたい」
ということ?
396nobodyさん:2012/01/07(土) 11:21:10.64 ID:???
>>394
簡単にはできない、ということは、できるということですか?
iframeを入れ子にして孫から呼ぶみたいな説明も見かけたんですが理解できなかったです。
397nobodyさん:2012/01/07(土) 11:23:45.08 ID:???
>>395
だからおまえはなんでxml限定なんだよ
おまえが一から学習してこい
レベルが低すぎておまえ会話になってねーんだよハゲ
398349:2012/01/07(土) 11:24:00.96 ID:???
>>395
いえ、違います。あと攻撃でもないです。
取得対象のサイトは、コンテンツ部分を非同期で持って来ているんです。
普通にブラウザでアクセスすれば、loadingてきなのがクルクルしてて、1秒後くらいにコンテンツが表示されるっていうサイトです。
そのloadingが終わった状態をこちらで取得したいということです。
399nobodyさん:2012/01/07(土) 11:29:03.85 ID:???
>>398
ブラウザを操るか、ブラウザ動作を再現しろよ。確実にやるならJavaScriptが動作させられないと無理。
400nobodyさん:2012/01/07(土) 11:30:02.72 ID:???
>>398
対象のURL貼ったほうが早い
401349:2012/01/07(土) 11:32:16.37 ID:???
>>399
やっぱりそうなりますか。
402nobodyさん:2012/01/07(土) 11:36:52.92 ID:???
>>397
非同期で取得する対象って XMLとJSON以外で一般的なものってありますか?
403nobodyさん:2012/01/07(土) 11:39:32.36 ID:???
>>402
馬鹿じゃないの
テキストでもHTMLでもなんでもあるだろが
おっさんもうおまえ人生詰んでるから吊ればいいと思うよ
404nobodyさん:2012/01/07(土) 11:42:04.39 ID:???
>>403
マジか 名前空間使わない非同期って大変そうなんだけど
405nobodyさん:2012/01/07(土) 11:43:32.26 ID:???
名前空間がなにに使われてると思ってんの
ほんと頭悪すぎ
406nobodyさん:2012/01/07(土) 11:45:38.12 ID:???
第18章 PHPUnit と Selenium
http://www.phpunit.de/manual/3.2/ja/selenium.html



PHPUnit と Selenium を使用したテスト -- NetBeans IDE チュートリアル
http://netbeans.org/kb/docs/php/phpunit_ja.html
407nobodyさん:2012/01/07(土) 11:46:28.07 ID:???
>>349
とりあえずクロスドメインをハックするのは諦めろ
もしその読み込み先がおまえの所有だったら読み込み先に親フレームにソース渡すとか方法はあるし
おまえが人のサイトをハックしようとしてるのはわかりきってるから方法があったとしても教えないよ
408349:2012/01/07(土) 11:54:37.20 ID:???
>>406
うお、これすげえ。
ブラウザ上の挙動を再現できそうですね、これはイケそうです。
敷居が高そうですがやってみます。

>>406
別に悪いことしようとなんて思ってないですよ。
そもそもfile_get_contentsという関数がphpに用意されているじゃないですか。
たまたま対象が非同期ページだっただけで。
409349:2012/01/07(土) 11:56:54.91 ID:???
下の方のレスは>>407さん宛でした
410nobodyさん:2012/01/07(土) 12:06:10.89 ID:???
クロスサイトリクエストフォージェリだっけか 立派な攻撃だな
411nobodyさん:2012/01/07(土) 12:10:25.69 ID:???
>>408
おまえ自分がどんだけアホなこと言ってるか理解しておいたほうがいいぞ
人を殺して「だって包丁が売ってるじゃないですか、たまたま刺したのが人だっただけで」って言ってるようなもん
しねよ
412349:2012/01/07(土) 12:16:16.48 ID:???
>>411
じゃあfile_get_contentsってどういう時に使うんですか?
自サイトから引っ張ってくるなら意味ないじゃないですか。
俺はその包丁で野菜を切ろうとしてるだけです。
413nobodyさん:2012/01/07(土) 12:16:44.23 ID:???
さあ電波度が高まってまいりました
414nobodyさん:2012/01/07(土) 12:17:43.01 ID:???
>>412
他人の畑の野菜をな
415nobodyさん:2012/01/07(土) 12:20:07.13 ID:???
>>412
>>414
おまわりさんこっちです>>412こいつです!
416nobodyさん:2012/01/07(土) 12:23:26.07 ID:???
file_get_contentsでデータ持ってきたら逮捕w
417nobodyさん:2012/01/07(土) 12:23:50.00 ID:???
岡崎図書館事件もびっくりだな
418nobodyさん:2012/01/07(土) 12:26:09.14 ID:???
おまえら中国人とかわらねぇ
419nobodyさん:2012/01/07(土) 12:29:52.34 ID:???
>>417
あれは可愛そうだた 営業力のない技術者はただの道具になるしかないらしい
420349:2012/01/07(土) 12:31:05.88 ID:???
まじですか。
ブラウザでアクセスすれば普通に表示されるものをphpで取得することっておまわりさん呼ばれちゃうレベルなんですか?
ブラウザでも取得してますが。
ま、それを二次利用してこっちが儲けようとしてるんなら叩かれてもしょうがないですけど、
非公開localhost俺サイト用なんで前向きに質問しました。
スレ汚しごめんなさい。>>406さん、あんがとやんした。
421nobodyさん:2012/01/07(土) 12:41:07.87 ID:???
いやおまわりさんはネタだろw
422nobodyさん:2012/01/07(土) 12:41:50.25 ID:???
JavaScript使うサイトは、クライアント側の負荷が高くなる訳で、HTMLだけのクローラーよりアクセス増やしにくいが。
423nobodyさん:2012/01/07(土) 12:48:49.79 ID:???
人の畑の野菜を勝手に刻んで包丁はそのためにあるんでしょ?と開き直る小僧
プログラマにもなれずプログラマのフリをしてトンチンカンな事を垂れ流し続ける人生詰んだおっさん
このスレレベル高すぎだろ
424nobodyさん:2012/01/07(土) 12:50:56.45 ID:???
どれがどれに対するツッコミかよくわからんから
誰か一連まとめてくれ
425nobodyさん:2012/01/07(土) 13:01:24.02 ID:???
>>424
荒らしVS暇人で遊んでただけだ 気にしなくていいと思う
426nobodyさん:2012/01/07(土) 13:17:09.06 ID:4WAxjW+f
質問させてください

PHP + MySQLで初心者らしくWEB投票を作っています
しかしながらF5とか投票ボタンを連打するといくつもカウントされてしまいます
どうしたらF5攻撃を避けられるでしょうか?よろしくお願いします
427nobodyさん:2012/01/07(土) 13:27:40.64 ID:???
それだけきっちりカウントされてるならよくできてる証拠だ
428nobodyさん:2012/01/07(土) 13:30:43.65 ID:???
>>426
PHP + MySQLってことなんでその範囲で
とりあえずMySQLは目的に関係ない
PHPでCookieを使うかSESSIONを使え
1回目の投稿で投稿日時を保存
2回目の投稿の時に前の投稿から一定時間が経過していない場合はエラーを返すかDBに登録しない

教えてやったからコーラ買ってこいよ
429nobodyさん:2012/01/07(土) 13:32:01.36 ID:???
IPやクッキーや携帯固有番号とかつかえ
430nobodyさん:2012/01/07(土) 13:39:14.31 ID:???
>>384
ありがとうございます。
431nobodyさん:2012/01/07(土) 13:44:51.23 ID:???
このPHPソースで情報とれたぞ。
このサイトで実験した。

http://gogomo.site90.net/

<?php
$ip = getenv("REMOTE_ADDR");
$host = getenv("REMOTE_HOST");
if ($host == null || $host == $ip) $host = gethostbyaddr($ip);
echo "IP = $ip</br>\n";
echo "HOST = $host</br>\n";
?>
432nobodyさん:2012/01/07(土) 13:53:19.27 ID:???
またおっさん頓珍漢なこと書いてるし
マジで頭おかしいんじゃねーの
433nobodyさん:2012/01/07(土) 14:06:41.50 ID:4WAxjW+f
>>428-429
ありがとうございます
しかしながら投稿時間とIPアドレスを保存して一定時間経過してない場合はエラーを返して終了する処理をしても多重投票されてしまいます。
国内サーバーの場合は問題ないのですが海外サーバーの場合レスポンスが遅いのでそれが原因でしょうか?
434nobodyさん:2012/01/07(土) 14:13:32.73 ID:???
ソース晒したら問題に答えるよ
435nobodyさん:2012/01/07(土) 14:20:46.31 ID:???
ただのPC向けサイトだったら

session_start();

$delay = 120; // 120秒制限

if($_SERVER['REQUEST_TIME'] - $_SESSION['posttime'] < $delay) {
echo '120秒の間隔をあけてくださいね';
exit;
}

// 初回もしくは120秒以上経過している
$_SESSION['posttime'] = $_SERVER['REQUEST_TIME'];
# ここでDBに投入
echo '投票しました';

こんだけ
コーラ買ってこいよ
436nobodyさん:2012/01/07(土) 14:33:49.61 ID:???
sessionだとブラウザ再起動で再投票できてしまうかもな
ボット避けにimgタグでcookie食わせるのもいいかもね
あと 焼きそばパン買って来い
437nobodyさん:2012/01/07(土) 14:37:49.94 ID:???
sessionを拒否してる場合は連投できるけど、初心者の習作だと思ってそこは説明しなかった
ややこしくなるだけだし
438nobodyさん:2012/01/07(土) 14:40:19.64 ID:???
ソース無い時点で丸投げか釣り
まともに答える必要はない
439nobodyさん:2012/01/07(土) 15:25:05.07 ID:4WAxjW+f
>>435
ありがとう。しかしながら

>>436-437
なるほど、sessionは使ってはいけないのですね
DBに投票時間とIPアドレス保存してそれをチェックが普通ですよね?

>>438
恥ずかしながらソース晒します笑わないでください
440nobodyさん:2012/01/07(土) 15:27:18.81 ID:4WAxjW+f
ソースです

$regtime = time();
$ip = GETENV("REMOTE_ADDR");

# テーブルロック
$sql = "LOCK TABLES touhyou WRITE";
$rst = mysql_query($sql,$con);

# 多重投票チェック
$delay = time() - 10;
$sql = "SELECT * FROM touhyou WHERE (regtime > '$delay') AND (ip = '$ip')";
$rst = mysql_query($sql,$con);
$rec = mysql_num_rows($rst);
if($rec){ errorpage("多重投票禁止"); exit(); }

# 投票
$sql = "UPDATE touhyou SET count = ifnull(count,0) + 1,regtime = '$regtime',ip = '$ip' WHERE (code = '$code')";
$rst = mysql_query($sql,$con);

# テーブルロック解除
$sql = "UNLOCK TABLES";
$rst = mysql_query($sql,$con);
441nobodyさん:2012/01/07(土) 15:34:21.95 ID:???
>>440
438じゃないけど
regtimeと$delayの比較が逆じゃない?

あとそのロジックだと1codeにregtimeとIPが1つずつしかないから
違うIPの人が交互に投票すれば制限なくなりそうだけど
442nobodyさん:2012/01/07(土) 15:36:45.34 ID:???
あごめん、引っかかったらエラーだからいいのか。
443nobodyさん:2012/01/07(土) 15:47:58.06 ID:4WAxjW+f
>>441
ありがとうございます
IPアドレスと投票時間だけのテーブルを別途作りました
これで多重投票はできない?

# 多重投票チェック
$delay = time() - 10;
$sql = "SELECT * FROM ipaddress WHERE (regtime > '$delay') AND (ip = '$ip')";
$rst = mysql_query($sql,$con);
$rec = mysql_num_rows($rst);
if($rec){ errorpage("多重投票禁止"); exit(); }

# テーブルロック
$sql = "LOCK TABLES touhyou WRITE";
$rst = mysql_query($sql,$con);

# IPアドレス追加
$sql = "INSERT INTO ipaddress (regtime,ip) values ('$regtime','$ip')";
$rst = mysql_query($sql,$con);

# 投票
$sql = "UPDATE touhyou SET count = ifnull(count,0) + 1 WHERE (code = '$code')";
$rst = mysql_query($sql,$con);

# テーブルロック解除
$sql = "UNLOCK TABLES";
$rst = mysql_query($sql,$con);
444nobodyさん:2012/01/07(土) 15:54:48.70 ID:???
>>443
440のソースでやってみたらF5連打しても多重投票されなかったけど
445nobodyさん:2012/01/07(土) 15:56:38.23 ID:???
ipだけ記録して24時間毎にデータベースを初期化すれば良い。
446nobodyさん:2012/01/07(土) 15:57:13.89 ID:???
>>445
それだと初期化する1分前に投票して初期化後にまた投票できるぞ
447nobodyさん:2012/01/07(土) 16:00:43.57 ID:???
いつ初期化されるのか確認するやつもいないだろ。
サーバーの処理が少ない方がいいんだ。
1分後に投票できたとしても次にできるまで24時間かかる。大した不正にならない。
448nobodyさん:2012/01/07(土) 16:33:03.74 ID:4WAxjW+f
>>444
はい自宅の環境でも問題なかったです
しかしながら海外のレスポンス遅いサーバーでやると多重投票されてしまうのです

>>445-447も上と同じだと思います

テーブルロックするタイミングとか問題なのかな?と思っているのですがよくわかりません
449nobodyさん:2012/01/07(土) 16:54:16.52 ID:???
>>448
そういうことなんで先に言わないの?
450nobodyさん:2012/01/07(土) 17:18:09.00 ID:???
センスないなー

テーブルを
ip(IP入れる) post(投票IDを入れる)
ipがプライマリーキー

# 投票
INSERT IGNORE INTO tableName (ip,post) VALUES ($ip, $postid);

# 投票結果集計
SELECT COUNT(ip) AS n FROM tableName WHERE post=?;

これだけでいいじゃん
451nobodyさん:2012/01/07(土) 17:28:01.88 ID:???
ちなみに>>450だとそのテーブルは投票イベントごとのテーブルね
1つのテーブルで何回も投票イベントを管理する場合はプライマリキーを組み合わせたり工夫すること

さっさとコーラ買ってこいよ
さっきから待ってんだけど
452nobodyさん:2012/01/07(土) 17:46:08.75 ID:???
さらに付け加えておくと
1つのレコードを不特定多数のユーザーがupdateかけるような設計は最低だから覚えといてね

カレーパン追加な
453nobodyさん:2012/01/07(土) 18:02:56.85 ID:???
同時アクセスの問題を処理するためのデータベースだろう。
あとテーブルのロックは不要だろ。それを命令することで不具合でないか?
それって一気に更新するトランザクション処理するとき用だろ。
454nobodyさん:2012/01/07(土) 18:08:29.88 ID:???
データベースは同時アクセス来ても待ち行列にいれて順に処理するから問題でないはずだろう。
調べてみたらロック命令が付いてるほうが特殊で、SQLiteだとトランザクションモードに入ったら勝手にロックがかかって他所から更新できないようだぞ。


http://www.advancesoft.co.jp/wiki/?SQLite-LOCK-CHECK
接続Aでトランザクションが開始されている時に接続BでもINSERTを実行すると「SQL error: database is locked」とエラーになります。
455nobodyさん:2012/01/07(土) 18:13:41.39 ID:???
便利なやつ作ったよ。SQLite(PDO)を使ったMap。
これでデータベースを意識しないでデータベースを利用できる。
このサイトではPDOは動かずSQLITE2は動くようだがそれに対応するのは後回しにする。

http://ideone.com/DmggH
456nobodyさん:2012/01/07(土) 18:20:31.25 ID:???
だから>>450で済むだろーが
トランザクションかんけーねーしテーブルロックいらねーし
457nobodyさん:2012/01/07(土) 18:22:54.07 ID:???
>>455
なんだこのクソみたいなソース
よく恥ずかしげもなくこんなもん晒せるな
458nobodyさん:2012/01/07(土) 18:27:53.31 ID:???
ブルックスの法則だな
人脳を連結しても処理速度は上がらない が 出力が多様化する
459nobodyさん:2012/01/07(土) 19:53:46.80 ID:4WAxjW+f
>>450
1つのIPで(何分待っても)1回しか投票できないってことですか?
うーん、よくわからないです
460nobodyさん:2012/01/07(土) 19:59:52.15 ID:???
>>459
>1つのIPで(何分待っても)1回しか投票できないってことですか?
そう
もし何回でも投票可能にしたいならまた他の方法になる

いずれにしても1レコードを不特定多数ユーザーでupdateかける設計はウンコなのでそこは考えなおす
そんな設計してたらオレならリストラ候補の先頭に登録しとく
461nobodyさん:2012/01/07(土) 20:11:43.08 ID:???
仕様の打ち合わせからとかw
462nobodyさん:2012/01/07(土) 20:39:54.59 ID:???
どうせだから最強のアクセスカウンタ作ろうぜ
攻性防壁付きでステマをゲイツ砲で火達磨にしようぜ
463nobodyさん:2012/01/07(土) 20:41:38.53 ID:???
正確にカウントするには、取得できたIPだけの判定ではダメ。
携帯やプロキシやモデム再起動に対応しないと同じ人が何度も投稿できる。
464nobodyさん:2012/01/07(土) 20:43:16.13 ID:???
>>459
ルータ再起動でアドレス変わるから何度でも投票できます
465nobodyさん:2012/01/07(土) 20:49:07.13 ID:???
大阪市長選やAKB総選挙など不正が一大事になるようなものに対応できるようにするんだ。
IDとパスワードで認証すれば1度しかできないことは確定するが、そういう手間の掛かる認証はないの方向で。
466nobodyさん:2012/01/07(土) 21:00:48.87 ID:???
>>465
選挙だと同じ回線で複数の有権者の投票が考えられる たとえば2世帯住宅とか
IDパスワードより手軽というと生体認証となる が インフラ整備が大変そう
今 生体認証の変換で思いついたんだが VoIPで声帯認証ってどうだろか
467nobodyさん:2012/01/07(土) 21:08:38.36 ID:???
馬鹿の考え休むに似たり
認証うんぬん言ってる奴は他所でやれ
468nobodyさん:2012/01/07(土) 21:31:52.64 ID:???
だな
469nobodyさん:2012/01/07(土) 21:34:52.36 ID:???
おい>>450 おまえがIP認証のコードなんか書くから>>467が怒ってるぞ ちゃんとあやまっとけよ
470nobodyさん:2012/01/07(土) 21:59:58.40 ID:???
IPアドレス
471nobodyさん:2012/01/07(土) 22:01:22.84 ID:???
PHPer、レベル低くっ!
なんだこのスレ。
472nobodyさん:2012/01/07(土) 22:01:37.59 ID:???
>>455を利用して、プロキシチェックとアクセス数のカウントしてみた。

サイト
http://gogomo.site90.net/
ソース
http://ideone.com/aDkpu
473nobodyさん:2012/01/07(土) 22:18:10.36 ID:???
また人生詰んだプログラマにもなれなかったおっさんが一人で暴れてるな
474nobodyさん:2012/01/07(土) 22:18:31.53 ID:???
>>472はここの公開プロキシを判定できずすり抜けてしまったよ。

http://www.cybersyndrome.net/
475nobodyさん:2012/01/07(土) 22:29:20.11 ID:???
ここも抜けられた。直IPとは違ってるから設定ミスはない。


http://taruo.net/e/
総合評価:?(A 以上 or 生 IP。下記参照) 疑惑 0%:proxy の兆候は全く見られません。


http://fula.jp/cgi-bin/env/
総合判定 直接アクセスされているか、プロクシなら匿名での接続を確認しました。プロクシの可能性は低いです。
476nobodyさん:2012/01/07(土) 22:34:40.92 ID:???
2chのプロキシチェッカーは強力だった。突破できず。この精度まで持って行けないと不正を防げないなあ。


ERROR:公開PROXYからの投稿は受け付けていません!!
477nobodyさん:2012/01/07(土) 22:39:41.39 ID:???
478nobodyさん:2012/01/07(土) 22:40:59.21 ID:???
mixiとかの、ページがグーグル、ヤフーなどの検索サービスで
引っかからない仕様はphpっでどうやるのですか?
479nobodyさん:2012/01/07(土) 22:42:14.56 ID:???
ロボットにクロールさせない命令出してるか、ログイン必須サイト。
480nobodyさん:2012/01/07(土) 22:46:10.95 ID:???
BBQ使えば
481nobodyさん:2012/01/07(土) 22:48:27.79 ID:???
2chのチェッカーって一般人も使えるのか。今知った。
482nobodyさん:2012/01/07(土) 22:48:37.01 ID:qev3DgRj
abstractとinterfaceとtraitはどんな風に使い分ければいいですか?
483nobodyさん:2012/01/07(土) 23:10:52.85 ID:???
niku.2ch.netか
2shレベルの串規制だと簡単な投票には使えそうだな
484nobodyさん:2012/01/07(土) 23:11:07.59 ID:???
>>482
全然違うもんだろ。基礎勉強すれ。
485nobodyさん:2012/01/07(土) 23:11:50.13 ID:???
レベル低すぎ。
486nobodyさん:2012/01/07(土) 23:18:01.62 ID:???
>>484
分かんないならレスしないでもらえます?
487nobodyさん:2012/01/07(土) 23:19:40.32 ID:???
キーワードでしか語れないニートのオッサンか。
具体的に細かいとこ突っ込んだらすぐにボロを出して、顔真っ赤にして釣り宣言して逃亡するのがオチだろ。
488nobodyさん:2012/01/07(土) 23:37:41.72 ID:???
おっさんはそろそろブログでやるといいと思うぞ
もしかしたらファンがつくかもよ
アフィ貼ったら収入に!

もしくは早めに諦めて吊ったほうがいい
489nobodyさん:2012/01/08(日) 00:47:02.84 ID:???
>>482
class と interface は型の定義手段
abstract class と trait は差分プログラミングという名の手抜き手段の一つ
490nobodyさん:2012/01/08(日) 00:52:14.60 ID:5w8ZM1Tv
capthca 使うとかですかね?
491nobodyさん:2012/01/08(日) 00:53:12.04 ID:5w8ZM1Tv
captchaだった。。。
492nobodyさん:2012/01/08(日) 11:20:03.75 ID:phv4PYdF
PHPでアプリケーションスコープはどのように実装すればよろしいでしょうか?
493nobodyさん:2012/01/08(日) 13:14:37.31 ID:???
あきた
494nobodyさん:2012/01/08(日) 13:27:05.48 ID:???
無限ループってこわいよね
495nobodyさん:2012/01/08(日) 13:40:15.60 ID:???
まぁもうそろそろ吊る予定だろうから最期くらい多少好きにさせてあげなよ
496nobodyさん:2012/01/08(日) 15:39:24.13 ID:???
なんだこのスレ。
497nobodyさん:2012/01/08(日) 17:49:54.61 ID:???
何故動かないんだ、っとよく見たら$が抜けてる。
変数に$つけるのって忘れない? php歴2年目のオレが言ってみる。
498nobodyさん:2012/01/08(日) 18:16:51.26 ID:???
ASやJS弄った後にPHP使うとたまに忘れる
499nobodyさん:2012/01/08(日) 18:54:15.86 ID:???
変数の後ろに$付けちゃうことない?
500nobodyさん:2012/01/08(日) 19:06:00.92 ID:???
$this->$dataみたいに余計に$つけてエラーになる
501nobodyさん:2012/01/08(日) 19:46:27.97 ID:???
>>489
abstractとinterfaceの具体的な使い分けはどうしてますか?
実装が書きたかったらabstractっていうのはあまりにもアレなので
哲学とまでは言いませんが、確固たる理由をつけて使い分けたいんです
502nobodyさん:2012/01/08(日) 19:49:55.78 ID:???
確固たる理由が2chのカキコとかw
503nobodyさん:2012/01/08(日) 20:09:47.40 ID:???
>>502
分かんないならレスしないでもらえます?
504nobodyさん:2012/01/08(日) 20:16:41.16 ID:???
505nobodyさん:2012/01/08(日) 22:55:18.22 ID:???
PHPでできないことはJavaでできる
JavaでできないことはPHPでできる
一長一短だな
506nobodyさん:2012/01/08(日) 23:48:20.26 ID:???
PHPでできることはJavaでもできる
JavaでできることはPHPではできないかもしれない
507nobodyさん:2012/01/08(日) 23:54:20.13 ID:???
>>506
Javaってインタプリタで動作させることできるん?
508nobodyさん:2012/01/08(日) 23:56:40.83 ID:???
JavaでPHPは実装できる。
PHPでJavaは実装できない。
509nobodyさん:2012/01/09(月) 00:04:39.31 ID:???
>>507
できないJavaの完敗です
510nobodyさん:2012/01/09(月) 00:07:08.56 ID:???
>>507
当たり前だが、
Javaで実装されたPHPで可能。
最終的にJavaのクラスに変換されるので
ちょっと違うがmod_phpよりも早いよ。
511nobodyさん:2012/01/09(月) 00:58:52.24 ID:???
なんだこのスレ。バカばっかり。
512nobodyさん:2012/01/09(月) 01:04:55.75 ID:???
>>510
えっその理屈でいくとphpでもjava実装できるじゃん
513nobodyさん:2012/01/09(月) 01:14:15.07 ID:???
>>512
Javaで実装されたPHPはすでにあるから。

Quercus
http://www.caucho.com/resin-3.0/quercus/

WordPressなんかで試してみたら?

とかJavaで実装されることは別に珍しい話じゃないと思うけど。
PHPで実装された言語は知らないけど、
Javaで実装された言語だったら他にもあるじゃん。
JRubyとかJython、Rhinoとか。
514nobodyさん:2012/01/09(月) 01:17:33.12 ID:???
phpだろうがJavaだろうがどうでもいいけど、
変な対抗意識を持つ前に両方を
経験してみたらいいかがだろうか?
515nobodyさん:2012/01/09(月) 01:18:12.56 ID:???
そもそもJavaで実装されたphpはphpそのものじゃん
Java と PHP そのものでできる・できないの話なのに
516nobodyさん:2012/01/09(月) 01:20:20.67 ID:???
>>512

こっちに詳しく書いてあるから、勉強してね。
http://quercus.caucho.com/quercus-3.1/doc/quercus.xtp
517nobodyさん:2012/01/09(月) 01:23:11.79 ID:???
>>515
変なこと書いているけど
Javaで実装されたphpではJavaとして最終的に動く。

メリットは以下のとおり(公式サイトより)。
Security: since Quercus and its modules are entirely in Java, C pointer overruns and segmentation violations are no longer possible.
Scalability: PHP programs can take advantage of distributed sessions in PHP and load balancing.
Performance: Quercus outperforms a straight mod_php implementation by about 4x (for Mediawiki and Drupal). Quercus roughly matches PHP performance with accelerators like APC.
Caching: PHP applications using Quercus can immediately take advantage of Resin's proxy caching. They can also use the PHP APC caching API since the APC functions are included with Quercus.
Connection pooling, transactions, JMS: PHP programs using Quercus automatically take advantage of Resin's connection pooling, and can use the full distributation transactions, and Java capabilities like JMS.
Java tools: PHP developers can use Java tools like profilers to get in-depth information about the PHP program performance.

518nobodyさん:2012/01/09(月) 01:27:24.62 ID:???
>>515
PHPはC言語やJavaで実装されているわけでしょ?
ということはPHPでできることはCやJavaでできるでしょ?
逆は無理の場合が多いことは想像つくでしょ?
519nobodyさん:2012/01/09(月) 01:30:44.14 ID:???
>>518
少ないの間違いね。

逆は無理の場合が多いことは想像つくでしょ?
520nobodyさん:2012/01/09(月) 01:36:42.65 ID:???
>>515
横レスで悪いが、
たとえば、PHPはC言語で実装されているのに、
PHPはC言語よりも優れているのですか?実装元よりも優れるのですか?
便宜上優れることはあってもパフォーマンスで優れることはないよ。
521nobodyさん:2012/01/09(月) 01:40:05.31 ID:???
そんなこと言ったらアセンブリ/Cが最強って話になるじゃん
522nobodyさん:2012/01/09(月) 01:45:46.42 ID:???
>>521
パフォーマンス上はマシン語が最高です。

>>515
C言語で実装されたPHPでC言語を実装し、
PHPで実装されたC言語でPHPを実装する・・・無限ループ
最高か?wwww

やっぱりこのスレ、次元低すぎ。
523nobodyさん:2012/01/09(月) 01:47:48.94 ID:???
>>521
当たり前やん。
524nobodyさん:2012/01/09(月) 02:00:28.99 ID:???
phpがjavaに劣ってるならこんなに普及しないさ
perl/phpが普及したのには理由がある



525nobodyさん:2012/01/09(月) 02:08:44.11 ID:???
すなわちその理由がjavaにできないこと
526nobodyさん:2012/01/09(月) 02:09:01.17 ID:???
>>512
あなたの一生涯をかけてphpでJavaを実装します?
C言語で実装されたphpでJava仮想マシンとJava言語を構築、
phpで構築されたJava仮想マシン上でJavaで実装されたphpが動き、
Java仮想マシン上で動くphpでさらにJava仮想マシンを動かすわけですか。
またmod_phpとしてAndroidやユニバーサルなV2CやEclipseみたいな
デスクトップアプリまでとして動いちゃったりするんですか?

>>524
それはすべてのプログラミング言語に当てはまるから議論にならない。
でなきゃすべてマシン語で書けということになる。

いや愉快だな。
527nobodyさん:2012/01/09(月) 02:11:31.73 ID:???
多言語覚えれば変な対抗心をなくなる。
こんな議論は時間のムダ。
528nobodyさん:2012/01/09(月) 02:12:57.81 ID:???
で結局javaはインタプリタで動かせるの?
phpのソースではなくjavaのソースをね
529nobodyさん:2012/01/09(月) 02:14:01.78 ID:???
インタプリタが実現できるならjava普及してるわ
できねえからwebでは普及してない
530nobodyさん:2012/01/09(月) 02:18:14.84 ID:???
>>528
意味不明だが、
PHPのソースは自動的にJavaに変換される。
またPHPとJavaのソースを混在させることもできる。
あなたがいうインタプリタのメリットは知らないけど、
Java上で動くPHPをためしに使ってみればいいのでは?
その感想を聞かせてくれ。WordPressとかすぐにできるでしょ?
がんばれよ。
531nobodyさん:2012/01/09(月) 02:20:20.32 ID:???
>>530
つまりjavaそのものはインタプリタ無理なのね
532nobodyさん:2012/01/09(月) 02:21:21.28 ID:???
>>529
簡単に配備できるという意味でPHPの方がは一般的なwebでは普及してるよ。
ただ、インタプリタのメリットなんだよ。容易にプログラムが書ける、
簡単に配備できるくらいか?

ただ俺の主張は>>527。双方できれば問題ないし、目くじら立てる必要ない。
533nobodyさん:2012/01/09(月) 02:27:07.16 ID:???
>>531
横レスで申し訳ないが、
インタプリタの処理速度はコンパイラ方式よりも遅いから、
それは特徴ではあるが実装コスト以外にメリットにはならないよ・・・・。
534nobodyさん:2012/01/09(月) 02:27:59.03 ID:???
>>532
俺の主張は>>505
あとは>>506にたいして言ってるだけ

535nobodyさん:2012/01/09(月) 02:35:20.40 ID:???
>>528
再度横レスで申し訳ないが、それ愚問だから。

「で結局C言語はインタプリタで動かせるの?
phpのソースではなくC言語のソースをね」

と同じ意味で変だよ。
phpはC言語やJavaで実装されるのにその言い方はないのでは?
536nobodyさん:2012/01/09(月) 02:51:49.24 ID:???
537nobodyさん:2012/01/09(月) 02:51:57.19 ID:???
自転車置場の議論とはよく言ったもんだ
538nobodyさん:2012/01/09(月) 02:57:30.55 ID:???
>>535
インタプリタ自体否定するなら速度の話も出すべきじゃないよね
phpもコンパイルできるけどさ後は何を比較するのよ
539nobodyさん:2012/01/09(月) 03:01:47.38 ID:???
javaアプレットでflash作れますか?
540nobodyさん:2012/01/09(月) 03:20:39.79 ID:???
PHPの場合「Web特化」という特性があるから
JavaでいうJSPやサーブレットのような一部の機能しか言語として提供されていない
ゆえにJavaで出来ることはPHPでは出来ない「かもしれない」
541nobodyさん:2012/01/09(月) 06:25:12.84 ID:???
>>539
なぜそれをPHPスレで聞く?
542nobodyさん:2012/01/09(月) 10:50:51.24 ID:???
>>539
正確にいうとjavaでflashは作れる。
flexコンパイラはjavaだからwww
543nobodyさん:2012/01/09(月) 10:58:42.33 ID:???
この板の人たち、
一つの言語にこだわるひと多いね。
複数できればどうでもいいことにいつまでもグチグチ。

PHPの場合は「Web特化」だから
たぶんそれだと先はないよ。
544nobodyさん:2012/01/09(月) 11:14:23.75 ID:???
>>538
Javaプラットフォームでインタプリタを使いたいなら、
以下から選んください。

Groovy
http://ja.wikipedia.org/wiki/Groovy

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

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

Quercus(PHP)もある。
http://www.caucho.com/resin-3.0/quercus/
545nobodyさん:2012/01/09(月) 11:20:52.66 ID:???
いい加減スレ違いだと気付け
546nobodyさん:2012/01/09(月) 11:26:55.06 ID:???
スルーできない残念な人ばかり
547nobodyさん:2012/01/09(月) 11:34:19.45 ID:???
>>543
たかがひとつの言語如きに先など無くてもいいのに、
無いと困るだろって思うのを、言語にこだわるというんだよ。
548nobodyさん:2012/01/09(月) 12:06:17.06 ID:???
ドヤ顔でwikipediaのせちゃって低学歴だとバレたねw
549nobodyさん:2012/01/09(月) 12:06:54.27 ID:???
多分高卒か専門卒の子なんだろうなぁ
550nobodyさん:2012/01/09(月) 12:07:28.35 ID:???
>>547
Web特化だから他にはできないでしょ?そういう意味。
551nobodyさん:2012/01/09(月) 12:19:05.77 ID:bsExuDph
配列やchrを使わずにforで回してaからzまでアルファベットを生成できる方法を教えてください
たしか↓みたいな書き方で出来た覚えがあるんですが書き方忘れました
for ($i='a'; $i<'z'; $i++) echo $a;
552nobodyさん:2012/01/09(月) 12:19:47.72 ID:bsExuDph
自己解決
変数名がおかしくて動かなかっただけだった
553nobodyさん:2012/01/09(月) 12:57:43.10 ID:???
>>539
>>542

おもろい。
554nobodyさん:2012/01/09(月) 14:27:21.52 ID:7f0AwpQn
安藤優子、木村太郎は、某プロパイダの社外取締役、かつ、安藤は、フジ社外の人間にもかかわらず、フジテレビジョンのM&Aの最中、フジのホワイトナ
イトの【親会社】の本業を無視して、「インターネットは虚業だ。具体性がない
。」というようなことをコメントしました。この虚業は、livedoorを指していた
としても、「同業者」であったということは、非常に、違和感を感じずには、い
られません。
555nobodyさん:2012/01/09(月) 17:05:12.94 ID:???
さぁ冬休みも今日でおしまいですよ
556nobodyさん:2012/01/09(月) 18:22:21.45 ID:IGqUpTKq
exitとdieって同じ働きってphpマニュアルに載ってました、
みささんはどっちを使ってますか?
557nobodyさん:2012/01/09(月) 18:23:58.57 ID:???
dieはexitのエイリアス
joinがimplodeのエイリアスみたいなもん
どちらかといえばオリジナル使え
558美佐:2012/01/09(月) 18:24:11.49 ID:???
あたしはexit派よ
559nobodyさん:2012/01/09(月) 18:31:34.53 ID:???
>>476
2chのは、疑わしきは通さずで、公開proxyじゃなくても通さなかった。
560nobodyさん:2012/01/09(月) 18:33:25.70 ID:???
無知は怖い。
561nobodyさん:2012/01/09(月) 19:41:08.39 ID:???
>>559
そうだったとしても、2chのチェッカー通せば多くの広告やスパムをはじけて良いと思う。
562nobodyさん:2012/01/10(火) 00:05:10.49 ID:???
アプリケーションサーバーはどんなもの使ってらっしゃいますか?
563nobodyさん:2012/01/10(火) 00:06:30.20 ID:???
>>1
564nobodyさん:2012/01/10(火) 00:35:57.99 ID:OfX0eCZx
sshってphpは関係あるのですか?
565nobodyさん:2012/01/10(火) 00:37:38.41 ID:???
関係ありません
566562: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
567nobodyさん:2012/01/10(火) 02:25:09.67 ID:???
>>1
568562:2012/01/10(火) 03:15:44.30 ID:5jaiW7yr
569nobodyさん:2012/01/10(火) 03:20:22.76 ID:???
◆質問する時の注意
・ 質問者として、態度をわきまえること。
570562:2012/01/10(火) 03:22:55.62 ID:5jaiW7yr
>>569

大変失礼いたしました。
教えて下さいませんか?
571nobodyさん:2012/01/10(火) 03:26:33.03 ID:???
PHPにアプリケーションサーバは不要ですし使ってないですよ
572562:2012/01/10(火) 03:27:09.50 ID:5jaiW7yr
>>571
なぜ不要ですか?
573nobodyさん:2012/01/10(火) 03:29:52.42 ID:???
Apacheにモジュールとして組み込まれてますので
574nobodyさん:2012/01/10(火) 03:31:45.86 ID:5jaiW7yr
zendのところ存在意義は何でしょうか?
575nobodyさん:2012/01/10(火) 06:40:02.10 ID:???
>>535
Cのインタプリタって割と最近どっかのスレで見たと思う。
576nobodyさん:2012/01/10(火) 06:46:36.93 ID:???
>>574
Windowsに対するMicrosoftの存在意義を問うているの?
577nobodyさん:2012/01/10(火) 09:12:23.38 ID:5jaiW7yr
>>576

すいません。
>>574はZend Serverを意味してました。
578nobodyさん:2012/01/10(火) 11:48:47.01 ID:???
ニートのオッサン何やってんだ。
相変わらず支離滅裂な事言っちゃって。
家に引きこもってないで早く病院行けよ。
579nobodyさん:2012/01/10(火) 15:33:30.34 ID:???
Zendのサーバー、誰か使っている人はいませんか?
580nobodyさん:2012/01/10(火) 16:01:26.75 ID:???
>>577
まとまってるところじゃないかな。あとはもしかするとGUI

>>579
別の人?
その質問でどうしたいのか
581349:2012/01/10(火) 16:06:05.01 ID:???
>>349 です。
非同期ページ、PHPから取得することができました。
並列ダウンロードしながらそれぞれにプログレスバーなんかつけてみたりして完璧です。
ググっても全然出てこない情報なので結構必要とする人が多い解決方法になったと思いますが
ここに書くとまた反応されそうなんでお礼だけ。ありがとうございました。
582nobodyさん:2012/01/10(火) 16:14:23.40 ID:???
>>581
ああ、おつかれさん。
スルースキルと、感情的になりすぎるのに気をつけるといいと思うよ。
583nobodyさん: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']のようにした方がいいのでしょうか?

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

すみませんがアドバイス頂けないでしょうか?
584nobodyさん:2012/01/10(火) 16:23:21.05 ID:???
フォームに値を入れるんなら、セッション使う意味がないじゃない。
585nobodyさん:2012/01/10(火) 16:33:08.57 ID:???
何がやりたのかさっぱりわからん

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

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

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

588nobodyさん:2012/01/10(火) 20:01:42.81 ID:???
>>587
$date = 書き込んだ日;
$date = mktime($date);
$now = time();
$date = $now - $date > 60*60*24*10 ? 10 : $date;
589nobodyさん:2012/01/10(火) 20:02:28.76 ID:???
あ、ごめん、最後の行読んでなかった
590nobodyさん: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);
591nobodyさん:2012/01/10(火) 20:03:29.35 ID:???
あ、ごめん、よく読み直したら全然ちがったw
592590:2012/01/10(火) 20:14:05.38 ID:???
>>588,589591 は違う人
593nobodyさん: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);
594587:2012/01/10(火) 21:08:57.11 ID:???
皆さん、レスありがとうございます!
すごい助かります!

60 * 60 * 24 * 10 の10は10日前という数字だとわかりますが、
他の数字60,60,24 の意味を教えていただけると勉強になります。
よろしくお願いしますm(_ _)m
595nobodyさん:2012/01/10(火) 21:16:12.68 ID:???
60 * 60 * 24 = 1日
1秒をかけてる
596nobodyさん:2012/01/10(火) 21:17:14.75 ID:???
>>593
$_SERVERは使うな!!!!!!!!!!!!!!!
getenvを使えっ!!!!!!!!!!!!!!!!!!!!
597nobodyさん:2012/01/10(火) 21:17:39.58 ID:???
60秒 * 60分 * 24時間 = 1日
598nobodyさん:2012/01/10(火) 21:28:09.69 ID:???
>>596
公開するプログラムでもあるまいに、
自分の環境チェックもしないやつになっちまうだろ。
599nobodyさん: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')のような型にはできないでしょうし
この場合、どのように記述すればいいのでしょうか?
600nobodyさん:2012/01/10(火) 21:34:55.57 ID:???
>>596
は?その根拠は?
おまえENVの意味もわかってないだろどうせ
601nobodyさん:2012/01/10(火) 21:37:15.54 ID:???
>>599
SQLごとに作れ
602nobodyさん:2012/01/10(火) 21:39:00.09 ID:???
>>599
普通に
UPDATE table SET col1=? WHERE col2=?
でいいんじゃねーの
カラム名に変数割り当てるなら上を
"UPDATE table SET {$col1}=? WHERE {$col2}=?"
すりゃいいじゃん
603587: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);
を書けばいいという認識であっていますか??
初歩的すぎて、すいませんが、よろしくお願いします。

604nobodyさん:2012/01/10(火) 22:33:03.94 ID:???
>>603
その行でいきなりエラーはないだろw
投稿日時はどうやって受け取って、どういう形式で保存してんの?
例)2012/01/10、とか、2012-01-10、とか、1326121200、とか。
605nobodyさん:2012/01/10(火) 22:33:49.35 ID:???
>$limit = 60 * 60 * 24 * 14; // 期限14日前とする
>の行でエラーが出てしまいます。

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

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

しらんがな
どんなソースになってるのかもわからんし
606nobodyさん:2012/01/10(火) 22:40:12.89 ID:???
>>600
ggrks
607nobodyさん:2012/01/10(火) 22:42:27.44 ID:???
>>603
$dateの中身を書きなさい
608nobodyさん:2012/01/10(火) 22:49:22.50 ID:???
素人相手に偉そうに語るのがこのスレです。
609nobodyさん:2012/01/10(火) 22:49:50.87 ID:DbdGI1rD
【OS名】CentOS 5.5
【PHPのバージョン】5.2.17
【連携ソフトウェア】MySQL GD
【質問内容】
GDの機能を使って画像を作成して、データベースに入れていくのですが、
imagepng()とかで画像をファイルに保存したり、ブラウザに出したりしますよね?
これの出力結果を直接文字列として変数に格納したいのですが、どうすればよいでしょうか?
$data = imagepng()とかも試してみましたが、trueしか返ってきませんでした。
610587: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と書いたところに日時が表示されています。
611nobodyさん:2012/01/10(火) 22:54:19.13 ID:DbdGI1rD
自己れす。下記で行けそうです。
ob_start();
imagepng($resource);
$data = ob_get_contents();
ob_end_clean();
612nobodyさん:2012/01/10(火) 22:56:28.46 ID:???
>>609
ヒント:base64_encode

>>610
もうここで聞く以前の学習を
>$date = date("y/m/d", $ptime);
$ptimeには何が入ってるの?すでにUNIXTIMEが入ってるなら
$date = $ptime;
でいいよ、代入する意味ないけど
613nobodyさん:2012/01/11(水) 00:11:45.44 ID:???
>>610
dateとstrtotimeは使うな
datetimeを使え
614nobodyさん:2012/01/11(水) 00:23:58.10 ID:???
ついに使うな厨も登場したか
615nobodyさん:2012/01/11(水) 00:26:28.08 ID:dfPHpXiU
phpにおける分散オブジェクトについて語りましょう!
616nobodyさん:2012/01/11(水) 00:29:05.90 ID:???
617nobodyさん:2012/01/11(水) 00:35:11.26 ID:dfPHpXiU
さあ、分散オブジェクトについて語りましょう!
618nobodyさん:2012/01/11(水) 00:37:35.15 ID:dfPHpXiU
>>616
PHPの分散オブジェクト技術にはどのようなものがありますか?
619nobodyさん:2012/01/11(水) 00:41:39.74 ID:???
荒らし認定
620nobodyさん: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で他に何か設定しなきゃいけないのでしょうか。
ご意見よろしくお願いします
621nobodyさん:2012/01/11(水) 13:00:09.61 ID:???
>>620
ドメインが違うんだから無理。
それでセッション引き回しできたら、ハッキングやりほうだい
622nobodyさん:2012/01/11(水) 13:15:03.58 ID:???
>無いが原因でしょうか?
マニュアルを読まないのが原因です
623nobodyさん:2012/01/11(水) 13:27:59.44 ID:eyRErrPB
>>621
ありがとうございます
http://php.net/manual/ja/function.session-set-cookie-params.php
を見てるんですが、
「すべてのサブドメインでクッキーを有効にしたい場合は、先頭にドットをつけて '.php.net' のようにします。」
とあるようにサブドメインの変更までなら対応できるのではないですか?
624nobodyさん:2012/01/11(水) 13:30:15.06 ID:???
625nobodyさん:2012/01/11(水) 13:36:51.45 ID:???
>>624
そのブログの設定ファイルがphp.iniより優先するということでしょうか
実はちょうど今session_set_cookie_params();で対応できたんですが
そちらの勉強もしてみます
ありがとうございました
626nobodyさん:2012/01/11(水) 13:44:43.70 ID:???
>>621
へぇ
627nobodyさん:2012/01/11(水) 14:07:42.61 ID:VbJoExbW
質問させてください
皆さんはPHPにて「並行処理」をしたい場合、どのようにされていますでしょうか?
自分がやりたいのは、あるスクリプトがあり、それを引数(設定値)だけを変えて
決められた時間の間隔にて(sleep()等を使って)繰り返し、大量に(少なくとも20位)かつ”同時に”実行したいと思っております
子プロセスの同期は必要ないと思います
ファイルをコピーして、各スクリプト毎に設定値を書いて・・・って言うのは現実的ではないので
データベースなどからリストを取得して、その設定値を使ってそれぞれを同時に実行したいと思っております
(fwrite()などで、設定毎にスクリプトを作成していこうかとも考えましたが・・・)

しかし色々考えたのですが、全然いいアイデアが浮かんできません
このような場合、どのようにすればいいのでしょうか?
628nobodyさん: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のような実装をしたい場合に何かアドバイスを頂けないでしょうか?
629nobodyさん:2012/01/11(水) 14:20:29.14 ID:???
並列させたい分だけforkすりゃいいだろ
630nobodyさん:2012/01/11(水) 15:00:30.88 ID:???

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

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


631nobodyさん:2012/01/11(水) 15:07:26.35 ID:???
>>627
並列処理したい処理をもうちっと具体的にくれ
632nobodyさん:2012/01/11(水) 15:25:25.54 ID:VbJoExbW
皆さん、返答ありがとうございます

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

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

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

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

以上の点にて宜しくお願いいたします
633nobodyさん:2012/01/11(水) 16:03:46.74 ID:???
いまいち何をやりたいかわからんが
取得先が大量にあって直列処理だと時間がかかりすぎるしそれぞれ取得設定を書くのもめんどいから
並列にしたいってことでおk?
ならcURLのマルチ使って、設定値をdbなどから引っ張ってきてから
回しながらcallbackなんかをうまく設定して一気にゴー、で行けるんじゃないか。
やりたいことと違っていたならすまん。
参照:ttp://techblog.ecstudio.jp/tech-tips/php-multi.html
634nobodyさん:2012/01/11(水) 16:19:22.57 ID:???
>>632
Webのクローラーはデータ取得に暇がかかるのが明白だから並列処理するのが当たり前のアプローチ
635nobodyさん:2012/01/11(水) 16:46:00.24 ID:???
あえてクローラーをPHPで作ることもないだろ。
PHPは標準で並列処理できない仕様だ。
並列処理できる言語、並列処理できるソフトを使って保存してから
PHPでそこにアクセスしたら良い。
636nobodyさん:2012/01/11(水) 16:58:01.39 ID:???
しかしcurlだけは標準でダウンロードが完了してなくても処理が帰ってくるから擬似的には並列処理できるな。
通信だけは並列にできるいうことだが。クローラーはパフォーマンスを落とさずに、並列処理可能な言語・ツールに並べる可能性はある。
637nobodyさん:2012/01/11(水) 17:09:13.29 ID:???
ここで適切なアドバイスしても、馬鹿には無理だろ。
638nobodyさん:2012/01/11(水) 17:40:57.15 ID:???
返事なくなっちゃったね。
639nobodyさん:2012/01/11(水) 17:43:06.65 ID:???
http://engawa.2ch.net/test/read.cgi/linux/1324631185/427
のコンパイルは結局うまくいったのか?
640nobodyさん:2012/01/11(水) 18:11:13.28 ID:???
>>630 じゃだめなん?
641nobodyさん:2012/01/11(水) 18:17:50.79 ID:???
よくわからないから無視したんだろw
642nobodyさん:2012/01/11(水) 19:03:57.60 ID:???
質問してしっぱなしかよ・・・
643nobodyさん:2012/01/11(水) 19:05:55.41 ID:???
いつも質問答えてる側の奴らから難易度高めの問題がほしい
644超難問!:2012/01/11(水) 19:10:37.65 ID:???
>>643が彼女をつくるにはどうしたらいいでしょうか?
645nobodyさん:2012/01/11(水) 19:31:49.93 ID:???
彼女(笑)
646nobodyさん:2012/01/11(水) 20:04:08.13 ID:???
$list = array("清美", "里子", "友恵", "友里", "とめ", "愛子", "雅子", ...... );
for ($i = 0; >>643の心が折れるまで; $i++) {
$result[] = kokuhaku($list[$i]);
}
if ($result == NULL){
die("まだ2次元がある");
}
647nobodyさん:2012/01/11(水) 20:48:30.27 ID:tHZDD+V0
質問です

hoge.txtというテキストファイルがありまして

100バイトの文字列\n
100バイトの文字列\n
100バイトの文字列\n



と500行ある500KBののテキストファイルがあるとします
このファイルから
「499行目と500行目」

「1行目と2行目」
だけを取り出すとき、サーバーの負荷は
両方1〜500行の文字を取り出すときとほぼ同じ負荷でしょうか?
648nobodyさん:2012/01/11(水) 20:50:49.28 ID:???
>>643

501 :nobodyさん:2012/01/08(日) 19:46:27.97 ID:???
>>489
abstractとinterfaceの具体的な使い分けはどうしてますか?
実装が書きたかったらabstractっていうのはあまりにもアレなので
哲学とまでは言いませんが、確固たる理由をつけて使い分けたいんです
649nobodyさん:2012/01/11(水) 20:52:56.46 ID:???
読み方に依るだろ。
読み込む位置が確定していたら、シークするだけの違いしかなく負荷に大差ないが。
改行位置の判定からやっていたら後ろの方が手間掛かる。
650nobodyさん:2012/01/11(水) 21:08:42.58 ID:???
一般的には常識とされている、
 真実は一つだけ
 怒りは自然な感情
 戦争・テロは無くならない
 死刑には殺人の抑止力がある
 虐められる側にも虐めの原因がある
 自己チューな人間ほど自己愛が強い
などの間違いを解説中
感情自己責任論
651nobodyさん:2012/01/11(水) 21:13:42.02 ID:tHZDD+V0
>>649
という事はどんなやり方でも最低でも500KBかかってしまうという事でしょうか?
200バイト(2行分)程度だけで住む方法ないかなーと思ってたのですが
652nobodyさん:2012/01/11(水) 21:34:41.86 ID:???
固定長なら200バイトだけで済むだろ。
653nobodyさん:2012/01/11(水) 22:26:31.01 ID:???
>>649はちょっと読み間違いをしているね。
> 「499行目と500行目」
> 「1行目と2行目」
この二つの負荷には大差がないといっているんだろう。

本来の質問であるところの、
> 1〜500行の文字を取り出すとき
との負荷には大きな差があるよ。

固定長じゃない場合は、最後の2行を得るのが少し面倒だけど。
654nobodyさん:2012/01/11(水) 22:33:40.13 ID:???
500行のロードと、2行のみロードでは負荷に違いがある。
655nobodyさん:2012/01/11(水) 22:33:46.01 ID:???
実験してみればいいじゃん
656nobodyさん:2012/01/11(水) 22:45:01.77 ID:???
500Kくらいたいした事で無い。
fileで全行読み込んでも良いよ。
そこがボトルネックになってから改良したら良い。
657nobodyさん:2012/01/11(水) 22:47:30.54 ID:???
全ての箇所で低リソースを目指していたら手間が掛かって進まない。
一応動くやつを作ってから速度測定して、
全体の中で時間掛かっているところに手を加えれば良い。
658nobodyさん:2012/01/11(水) 23:02:44.07 ID:tHZDD+V0
ごめんなさい、1〜500行の文字を取り出すと比べて
「499行目と500行目」「1行目と2行目」この二つは差があるのでしょうか?という質問でした
説明不十分で申し訳ないです

やっぱりテキストファイルを固定長形式にするしか無いですかね?
この場合
100バイトの文字列
2Kバイトの文字列
4バイトの文字列

となった場合、全部2KBになって500行あったら1Mになってしまうので避けてたのですが
659nobodyさん:2012/01/11(水) 23:06:53.90 ID:???
理解不可能ですが。
全て(1〜500行)のロードと2行のみでは負荷は違う。
可変長だったらindexをファイルの後方か先頭に配置して必要なところを読めば速いです。
660nobodyさん:2012/01/11(水) 23:16:37.71 ID:???
ファイルサイズがでかくて全読込をさけたいなら、データベースにいれとけよ。
そしたらメモリ管理など気にしなくて済むしキャッシュなども自動で使ってくれる
661nobodyさん:2012/01/11(水) 23:39:54.74 ID:GX2tXR1t
PHPとAsp.netってどう違うんですか?
662nobodyさん:2012/01/11(水) 23:50:01.97 ID:VbJoExbW
>>633-642
すみません、今まで色々試しにやってて返事が遅くなりました
http://ja.wikipedia.org/wiki/Forkを参照に
#!/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 できません');
}としました
663nobodyさん:2012/01/11(水) 23:50:43.62 ID: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ではこのようなものなのでしょうか?

学習不足で申し訳ないです
664nobodyさん:2012/01/12(木) 01:50:16.25 ID:???
>>662
なぜPHPを使っているのですか?
665nobodyさん:2012/01/12(木) 02:58:10.26 ID:KRgm5yh1
やっぱりphpでは並列無理ぽ。
666nobodyさん:2012/01/12(木) 03:08:54.02 ID:???
ニートおっさんには無理
667nobodyさん:2012/01/12(木) 03:25:30.76 ID:???
>>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.
668nobodyさん:2012/01/12(木) 03:39:54.92 ID:???
>>667
できてない。
669nobodyさん:2012/01/12(木) 03:43:15.46 ID:???
並列と分散はPHPの泣きどころ。
670nobodyさん:2012/01/12(木) 03:52:56.74 ID:???
かろうじて並列できても実用性は全くないことに気づけよ
671nobodyさん:2012/01/12(木) 04:51:39.62 ID:???
同じやつが同じ話題を繰り返してるんだな
672nobodyさん:2012/01/12(木) 05:35:36.73 ID:???
>>668
どういうこと?
673nobodyさん:2012/01/12(木) 10:36:29.57 ID:???
>>663
これって実行には何秒かかったんだろ。
674nobodyさん:2012/01/12(木) 12:24:55.33 ID:???
>>664 >>665 >>668 >>669 >>670 は並列処理を理解できてない馬鹿。
675nobodyさん:2012/01/12(木) 12:27:31.97 ID:???
>>667
>>663
実行環境(カーネル)の違いでプロセスの優先度が変わるのかな?
676nobodyさん:2012/01/12(木) 13:02:25.38 ID:???
PHPにはpcntl_forkというプロセスをフォーク(複製)することが
できる関数がありますが、これはPHPをCGIモードで
動かしている場合にのみ有効です。
通常はPHPをApacheモジュールとして動作させていることが
多いので、これが使えないケースが多々あります。
http://techblog.ecstudio.jp/tech-tips/php-multi.html
677nobodyさん:2012/01/12(木) 13:15:01.92 ID:???
っていうか、何でPHPで作ることにこだわってんだ?
Perlで良いじゃん。
678nobodyさん:2012/01/12(木) 13:19:01.14 ID:???
>>676
pcntl_fork関数は存在するし、forkも成功したように見えるけど、並列処理されないなんて結果になるということですか
679nobodyさん:2012/01/12(木) 14:01:06.08 ID:???
ちなみに俺も>>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
http://www.php.net/manual/ja/pcntl.installation.php
にはCLI版も可能って書いてるんじゃないの?

>>675
ちなみに自分はcentOSです
680nobodyさん:2012/01/12(木) 14:01:29.80 ID:QAUYYhrI
phpとmysqlでカウンターが作りたいのですが
書き込むときの排他制御はどのようにやるのでしょうか?
681nobodyさん:2012/01/12(木) 14:01:52.50 ID:???
>>676
CLIでも使えるよね?
682nobodyさん:2012/01/12(木) 14:02:25.17 ID:???
もういい加減ニートのおっさんは飽きた
683679:2012/01/12(木) 14:02:52.80 ID:???
書き忘れたけど、この出力結果みると並列処理ってされてない・・・んだよね?
684nobodyさん:2012/01/12(木) 14:10:41.80 ID:???
基本的にはマルチスレッドはサポートされてないだろ。
レンタルサーバーとかでは。
自宅で一人で使う目的だったらマルチスレッドをONにしてコンパイルすればいい。
しかしソースコードに汎用性が無くなる。
Curlをつかっとけ。5.3か5.2から標準で並列に使える。
685nobodyさん:2012/01/12(木) 14:15:13.44 ID:???
forkだからマルチスレッドの話ではないでしょ。
686nobodyさん:2012/01/12(木) 14:16:07.48 ID:???
PHPがサポートするプロセス制御機能は、デフォルトでは有効となってい ません。
プロセス制御機能を有効にするには、 configure のオプションに --enable-pcntl を付け、
CGI 版あるいは CLI 版の PHP をコンパイルする必要があります。
注意: 現在、このモジュールは非 Unix 環境(Windows)では動作しません。
http://www.php.net/manual/ja/pcntl.installation.php
687nobodyさん:2012/01/12(木) 14:18:28.39 ID:???
>>686
何が言いたいの。
688679:2012/01/12(木) 14:27:53.78 ID:???
>>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;
のように書いた
689nobodyさん:2012/01/12(木) 14:28:15.56 ID:???
実行結果は
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秒後に表示された
これってどういうこと?
並列処理されていないってことだよね?
690nobodyさん:2012/01/12(木) 14:30:51.41 ID:???
なんでそんなトンチンカンなことが平気で言えるのか
system('php forkc1.php');
system('php forkc2.php');

この時点で気付けよ
691nobodyさん:2012/01/12(木) 14:36:08.80 ID:???
ん?
30秒かかるのは当たり前か・・・笑
>>679は10秒で済んでるから親プロセスと子プロセスはちゃんと並列処理されてるってことだね
自分の>>688の書き方が悪いだけか

この流れの話は、親プロセスから子プロセスを複数作成し、それを同時に実行
つまり3つの子プロセスがあれば4つとも10秒後に終わらせるということだよね?
となると実装法が思いつかないけど、pcntl_fork()っていうのを3回呼び出せばいいってことじゃないかな?

分からん
692nobodyさん:2012/01/12(木) 14:37:16.69 ID:???
>>690
ごめん、投稿した後すぐに気がついた(苦笑
693nobodyさん:2012/01/12(木) 14:54:03.86 ID:???
694nobodyさん:2012/01/12(木) 14:56:29.29 ID:???
>>691
system('php forkc1.php &');
と、バックグラウンドプロセスにすればよろしい。
プロセスの終了待ち処理を入れる必要があるけど。
695nobodyさん:2012/01/12(木) 15:05:23.27 ID:???
>>694
なるほど
実はまだ挑戦してて(笑
一度やり始めたら意地でもとなってしまってw

$pid[$i] = pcntl_fork();等と複数回呼び出して、
その後system()を呼び出すとかやってみたのですが30秒かかったりで

バックグラウンドプロセスという発想はなかったです
今から外に出ないといけないんですが、最後にちょっと試してみます
696nobodyさん:2012/01/12(木) 15:10:13.69 ID:???
>>694
アハハ、今>>688のコードにて
if ($pid == 0) {
system('php forkc1.php &');
system('php forkc2.php &');
system('php forkc3.php &');
}
としましたが
今度は31秒かかってしまいましたw
どこがおかしいのか分かりませんが、また帰ってからやってみます
697nobodyさん:2012/01/12(木) 15:17:35.81 ID:???
時間のムダ。
698nobodyさん:2012/01/12(木) 15:23:17.54 ID:???
pcntl_fork()の話してんのになんでsystem()になってんの。
699nobodyさん:2012/01/12(木) 15:29:16.52 ID:???
アホですから
700nobodyさん:2012/01/12(木) 15:30:19.76 ID:???
>>696
アハハ、なんで標準出力捨てないの
701nobodyさん:2012/01/12(木) 15:31:28.10 ID:???
>>698
たぶん>>686のWindowsでは動かないというのをみたからじゃないのかな。
ほんとに動かないか知らないけど
702nobodyさん:2012/01/12(木) 15:50:09.93 ID:at33kcZ9
ちょっとしたポータルサイトや、管理機能付きサイトを作るとき、
CMSを使うか、フレームワーク使うかどっちがよろしいですかね・・・。
703nobodyさん:2012/01/12(木) 16:55:38.26 ID:???
>>702
その文章だけを読んで「ちょっとしたポータルサイト」がどれほどの規模のものを指しているのか
わかる人は少ないだろう
704nobodyさん:2012/01/12(木) 17:15:27.45 ID:???
ヤフーくらい
705nobodyさん:2012/01/12(木) 17:19:26.21 ID:???
>>702
自分がやりやすい方でいいんじゃないすか。
706nobodyさん:2012/01/12(木) 17:30:43.50 ID:???
どっちも使えるようになるまで時間かかる
どっちも詳しくない私は
使わない方がやりやすい。
707nobodyさん:2012/01/12(木) 17:42:30.00 ID:???
PHPが出来るならWPはすぐに使えると思うが
708nobodyさん:2012/01/12(木) 20:44:35.20 ID:???
そもそもなんでこのスレで質問するのか
709nobodyさん:2012/01/12(木) 20:59:53.31 ID:???
確かに、なんでここで聞いたの?
710nobodyさん:2012/01/12(木) 21:35:47.31 ID:???
質問するスレだろ何が駄目なんだ
711nobodyさん:2012/01/12(木) 21:41:21.83 ID:???
712nobodyさん:2012/01/12(木) 21:42:14.04 ID:???
CMSを使うかフレームワークを使うかっていう質問はここじゃねぇと思うが
713nobodyさん:2012/01/12(木) 21:43:04.05 ID:???
質問するスレすらわからん馬鹿はポータルサイトなんか作れんよ
714nobodyさん:2012/01/12(木) 22:20:03.29 ID:???
PHPのフレームワークスレって確かあったよな
715679:2012/01/12(木) 22:21:38.91 ID:???
ギブ・・・
俺には自力では無理でした

>>699の言うようにアホですな
プログラム板にでも行ってきます
716nobodyさん:2012/01/12(木) 22:29:06.06 ID:???
>>697
なんで人の質問を俺がやってるのか分からんが、それが出来たら楽に処理できるような事も
出てくるかなと思ってやってみたんだけど

>>698
いや、だって引数とって一気に別ファイルのスクリプト実行するんでしょ?
system()じゃないの?

>>700
ごめんどういうこと?
$php fork-test.php > /dev/null
とかってこと?
同時に実行されていくということは
c1:0
c2:0
c1:1
c2:1
のように出てくるのかなとか思ってたんだけど違うん?
717nobodyさん:2012/01/12(木) 22:31:19.98 ID:???
>>716
バックグラウンドプロセスの標準出力を捨てろってこと。
718nobodyさん:2012/01/12(木) 22:36:09.30 ID:???
>>716
一気に別ファイルのスクリプトを実行するのにforkではダメだと思った理由を書いてみ
719nobodyさん:2012/01/12(木) 22:48:45.79 ID:???
>>718
ごめん、分かりませんw
forkって子プロセスを作成->親プロセスは待機->子プロセス終了->親プロセス実行
って動作だよね?
で、子プロセスは親プロセスのコピーであると
だから元々親プロセスの時点で実行されていたり、格納していた変数の値とかは子プロセスも保持していると

ま、自分の分からない所は子プロセスを複数作成するにはPHPだとpcntl_fork()をその回数実行すると
ただ、自分がやったのでは
$pid1=pcntl_fork();
$pid2=pcntl_fork();
それぞれにて上記のようなfor()を使うと一緒に実行されるんじゃなくて、直列(逐次)処理になってて「う〜ん」と

別ファイルのスクリプトを実行するのにPCNTL関数内にそんな感じの関数もないし、
データベースなどから設定値を取得してきて、そこから得てきたそれぞれの設定値を渡すとなると
system()かなと考えて・・・

例えばどんな風に書けばいいんですかね?
720nobodyさん:2012/01/12(木) 22:50:08.98 ID:???
>>719
大前提がおかしい
>>667
721nobodyさん:2012/01/12(木) 22:54:57.73 ID:???
>>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出せよカス
722nobodyさん:2012/01/12(木) 23:11:37.74 ID:QxDXzJq0
タイムスライス放棄のみのコードって何だと思いググってました(苦笑
sleep(-1)ってのが出てきましたがこれの事ですかね?

俺は>>667のようにはならないんですが、OSは何ですか?
つまり、>>662のようなfor()文使った場合は、子プロセス->親プロセス->子プロセス->親プロセス->
という挙動をすると言うことですか?

しかし俺全然だめだなぁ・・・
723nobodyさん:2012/01/12(木) 23:45:38.66 ID:???
phpファイルで、以下のようにjava scriptのファイルを読み込んでいるのですが、
<script type="text/javascript" src="test.js">

test.jsを変更しても反映されないことがあります。
ブラウザがキャッシュか何かをしているのでしょうか?
回避策とかありましたらご教授お願いします。
724nobodyさん:2012/01/12(木) 23:49:13.05 ID:???
>>723
日付が変わってればキャッシュを破棄しそうなもんだけど。
プロキシ的なものが挟まってたりしない?
一応試せることとしては、たとえばIEならCtrl+F5ですべて再読み込みする
725nobodyさん:2012/01/12(木) 23:52:16.83 ID:???
>>723
ブラウザ特有の現象かもしれないから後でちゃんと自分で調べるとして
とりあえずそういう時は応急処置にファイル名に適当な文字列を追加するもんだ

echo '<script type="text/javascript" src="test.js?' . md5(microtime(true)) . '">';
726nobodyさん:2012/01/13(金) 00:05:03.08 ID:???
なんでmd5かけるの?
727nobodyさん:2012/01/13(金) 00:11:52.36 ID:???
バカだからに決まってるじゃん
728nobodyさん:2012/01/13(金) 00:29:29.21 ID:???
ドットが入るのが嫌だっただけ
かけたくないならかけなくていい
729nobodyさん:2012/01/13(金) 00:33:49.01 ID:???
ドット・・・?
730nobodyさん:2012/01/13(金) 00:36:37.67 ID:???
小数点
731nobodyさん:2012/01/13(金) 00:37:36.05 ID:???
くだらんとこに突っ込むなよバカども
732nobodyさん:2012/01/13(金) 01:00:13.01 ID:???
しかしまぁ俺プログラマーとか言って
>>725みたいなクソコード書いてるのもひどい話だな
733nobodyさん:2012/01/13(金) 01:16:41.96 ID:???
言ってることは間違ってないけどこれはないな
>echo '<script type="text/javascript" src="test.js?' . md5(microtime(true)) . '">';

time()とかuniqid()で事足りる
>md5(microtime(true))
ない
734 忍法帖【Lv=8,xxxP】 :2012/01/13(金) 01:22:37.06 ID:???
735nobodyさん:2012/01/13(金) 01:43:03.96 ID:???
>適当な文字列を追加する
これが実現できればなんでもいいだろ
何を拘ってるんだ?パフォーマンス?(笑)
そんなミジンコみたいなところでケチつけるなレスの無駄使い
736nobodyさん:2012/01/13(金) 01:48:42.10 ID:???
しょうがないだろミジンコしかいないんだから

http://stackoverflow.com/questions/637278/what-is-the-best-way-to-generate-a-random-key-within-php
737nobodyさん:2012/01/13(金) 02:15:09.35 ID:???
>>733
> time()とかuniqid()で事足りる
えっ

> >md5(microtime(true))
> ない
こっちの方がまだマシ
738nobodyさん:2012/01/13(金) 02:18:26.75 ID:???
必死だなw
739nobodyさん:2012/01/13(金) 02:22:50.77 ID:???
特定ユーザに対してユニークであればいいんだから、ミリセカンド精度で事足りると思うよ。

>>738みたいな意味のないレスをする人がどう考えてるのかさっぱりわからんけど。
740nobodyさん:2012/01/13(金) 02:28:45.64 ID:???
そんなに悔しかったか ごめんよw
741nobodyさん:2012/01/13(金) 02:30:22.51 ID:???
必死すぎw
742nobodyさん:2012/01/13(金) 02:31:28.69 ID:???
理解できる範囲の話になったとたん沸くやつってなんなの
743nobodyさん:2012/01/13(金) 02:34:35.61 ID:???
…ねないの?
744nobodyさん:2012/01/13(金) 02:43:41.18 ID:???
なんでPHPでするのか不思議。
745nobodyさん:2012/01/13(金) 02:45:27.34 ID:???
>>742
全くだな
自分につっこむ機会があると思うと頑張ってつっかかってきちゃうやつワロスwwww
上級者からすればそんなこまけーこたぁどうでもいいんだよって感じだがな
746nobodyさん:2012/01/13(金) 02:47:04.65 ID:???
ニートのおっさんだろどうせ糞コード晒してんのは
上級者()
早く吊れよ
747nobodyさん:2012/01/13(金) 02:51:11.50 ID:KkkOzRWt
NATポートマッピングを自動でやる方法を教えてください。
Bitcometみたいに。
748nobodyさん:2012/01/13(金) 03:12:53.61 ID:???
PHP使ってるって言ったら
ヴォエエエエエエ ブヒョー コーヒー吹かれた
749nobodyさん:2012/01/13(金) 03:14:54.14 ID:???
>>747
uPnPってわけでもなさそうにみえるが、NAPTを自動でやりたいってこと?
なら、ネットワーク越しに操作できるルータを手に入れる必要がありそう。
そんな話じゃないよ!ってことならBitcometの動作をもっとよく見ること。
750nobodyさん:2012/01/13(金) 03:15:41.52 ID:???
ニートのおっさんだろどうせ煽ってんのは
低級者乙
早く吊れよ
751nobodyさん:2012/01/13(金) 03:23:44.99 ID:???
おっさんだってPHPでできなさそうなことを考えるのに必死なんだよ
752nobodyさん:2012/01/13(金) 03:25:36.98 ID:???
forkの人はム板に行って静かになった。彼に説明する人が他にもっといればよかったのに
753nobodyさん:2012/01/13(金) 03:32:16.25 ID:???
PHPで並行処理wwwwwwwwwwwwwwwwwwwwwwwwwwww。
無理ぽ。
754nobodyさん:2012/01/13(金) 03:32:56.22 ID:???
最近あれだな>>747みたいなやつ多いな
同一人物だとは思うけど
俺が課題出してやるから解決してみろ的な
ほんと消えてくれないかな
755nobodyさん:2012/01/13(金) 03:37:04.13 ID:???
>>753
forkとストリームソケット使えばどうにかなるだろ
てか少し前にそれ系のレスあるから読んでみ
756755:2012/01/13(金) 03:40:02.10 ID:???
>>753
補足だけど、5.1系のセマフォがバグありだったから気をつけて。
いまさらあえて5.1使うこともないだろうけど、割と最近のRHELまでは5.1系だった気がするので遭遇することもあるかもしれない
757nobodyさん:2012/01/13(金) 03:52:09.82 ID:???
>>755
あなたの言うように、
forkとストリームソケット使えば「遊び程度」ではどうにかなるだろうね。

しかし、商売用には素直にマルチドレッド言語を使ったほうがいい。
デフォルトで並行できるので開発スピードとパフォーマンスが
「圧倒的に」優れる。forkくんの質問と回答のあまりの馬鹿馬鹿しさに
気持ち悪い。
758nobodyさん:2012/01/13(金) 04:15:10.88 ID:???
PHPで並行処理が無理だというから、それの返事だったんだが、並行処理はできるけど遊び程度だという風に話をずらされても困る

パフォーマンスについてはまったくもってそのとおり。ただ、それらを同じ土俵にあげること自体が間違えているよね。
開発スピードについては比較対象に依存する。マルチプロセス処理を記述する場合に圧倒的に開発スピードが優れる言語は何?
マルチスレッド言語とやらが何を指しているのかわからないが、たとえばCLRで提供されているワーカースレッドのようなものを指している?

ちょっと内容が漠然としているように思うよ。
759nobodyさん:2012/01/13(金) 09:09:47.21 ID:???
当たり前話を、ドヤ顔で言ってて恥ずかしくない上に、気持ち悪いとか言ってる人がいるよ。
760nobodyさん:2012/01/13(金) 09:19:15.93 ID:???
phpでできないこともあるんだね〜。
761nobodyさん:2012/01/13(金) 09:21:03.11 ID:1Ih2hdXs
新規にポータルサイトを開発しようと思ってます。
管理機能とかもついてます。
作成の仕方として以下の3つの方法が浮かびました。

フレームワークを使って作成する。(codeigniter)
CMSを使って作成する。(MT or WP)
フレームワークにCMSプラグインを入れて作成する。

どれがいいでしょうか?
762nobodyさん:2012/01/13(金) 09:21:55.46 ID:???
好きにしろ
763nobodyさん:2012/01/13(金) 11:33:36.37 ID:???
CMSは非プログラマ向けで、FWはプログラマ向けなだけなの。
悩むほどの話じゃないし、どれつかえばいいかえらべないならけんさくしていちばんうえつかえばいいだけ
764nobodyさん:2012/01/13(金) 13:32:56.37 ID:???
765587:2012/01/13(金) 16:04:33.77 ID:???
皆さんレス、本当にありがとうございます。
しばらく勉強して、なんとか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で表示させています。
766587:2012/01/13(金) 16:09:06.03 ID:???

すいません、よく確認したら、表示されている日付が20日ぐらい前になっていました(^^;
とりあえず$ptimeはUNIXTIMEにすれば解決できるのかと思います。
度々すいませんが、よろしくお願いします。。
767nobodyさん:2012/01/13(金) 16:20:08.93 ID:???
なんか面倒な事してるな
俺はこっち使ってる

strtotime("- 10 day",time())
768nobodyさん:2012/01/13(金) 16:32:32.90 ID:???
12日前のは12日前と表示されることになるだろうけど、それも含めて特殊な事情?
769765:2012/01/13(金) 17:03:53.19 ID:???
はい、特殊な事情で、13日以前は、そのままで大丈夫なんです。(^_^)
770765:2012/01/13(金) 17:05:44.03 ID:???
>>767
その記述だと、全体的にかわりますか??(^_^;)
771nobodyさん:2012/01/13(金) 17:16:23.09 ID:???
>>770
意味がよく解らん
772nobodyさん:2012/01/13(金) 17:16:32.15 ID:???

$_SERVER['REQUEST_TIME'] - $ptime じゃねーの?
んで、 $ptime -= 60 * 60 * 24 * 10;
$date = date(y/'m/d', $ptime);
773nobodyさん:2012/01/13(金) 18:13:51.83 ID: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行目だったりと
規則性が無くなぜこうなっているかわかりません。
すみませんが、よろしくお願いいたします。
774nobodyさん:2012/01/13(金) 20:50:42.78 ID:???
$Listをvar_dumpしてみれば?
775nobodyさん:2012/01/13(金) 21:03:38.69 ID:f/pZY+bx
>>774  レスありがとうございます。

var_dumpすると IDは通常の数字で int(5) 等です。
List.IDには特に問題ないようです。

あと、var_dumpしただけで問題の症状が10行目だったのが18行目に変わったりしてます。

なんでなんだろ・・・?
776nobodyさん:2012/01/13(金) 21:13:20.06 ID:???
また謎なこと言ってるな
foreachしてるその配列をdumpして問題ないか確認しろってことでしょ
IDは問題ないようです、とか意味がわからん

foreachから/foreachまでの記述に問題がないならそのループさせてる配列以外問題になる箇所ないじゃん
そして配列がおかしかったらその配列を作ってるロジックがおかしいって特定できるでしょ
777nobodyさん:2012/01/13(金) 21:16:34.52 ID:???
&を&と書いてみてくれ
778nobodyさん:2012/01/13(金) 21:17:17.58 ID:???
&を&&と書いてみてくれ
779nobodyさん:2012/01/13(金) 21:18:59.91 ID:???
&を&amp;(半角)と書いてみてくれ
780nobodyさん:2012/01/13(金) 21:19:28.62 ID:???
&amp;(半角)
781nobodyさん:2012/01/13(金) 21:19:36.98 ID:???
あ、まて
SESSION IDを自動的にリンクに付加するようになってるのか
それ、自動でやらせないでアプリケーション側で実装したほうがいいぞ
それが解決策になる
782nobodyさん:2012/01/13(金) 21:19:55.03 ID:???
あ、まて
SESSION IDを自動的にリンクに付加するようになってるのか
それ、自動でやらせないでアプリケーション側で実装したほうがいいぞ
それが解決策になる
783nobodyさん:2012/01/13(金) 21:33:35.56 ID:???
使用するデータの型は同じで特に問題はないのに
自動付加するにせよ特定の箇所だけおかしくなるってのは考えられないね
確率や回数で処理を変えるとか妙なことやってない限り

><a href="detail.php?ID=005"?PHPSESSID=○○○>
こうなるのも謎
最悪>の前に"が入るよね
{$row}"{ID}としてるわけじゃないし
784nobodyさん:2012/01/13(金) 21:40:01.56 ID:???
&amp;(半角)バカスw
785nobodyさん:2012/01/13(金) 21:52:49.63 ID:???
>>779
&を&amp;にしてくれっていいたいのか?
786nobodyさん:2012/01/13(金) 22:04:24.28 ID:???
みなまで言わんでいいです
787nobodyさん:2012/01/13(金) 22:51:52.05 ID:WYF6z6mt
PECLにmemcacheとmemcachedって2つあるようですが、
これらの違いはなんなんでしょうか?
Web上ではmemcacheの方が記述が多いので利用されているんだと思うのですが、
具体的な性能の違いとかあったら教えて頂きたいです
788nobodyさん:2012/01/13(金) 22:55:30.59 ID:???
http://ja.wikipedia.org/wiki/Memcached
これ見てわからないならわからなくていいと思う
789nobodyさん:2012/01/13(金) 23:10:15.21 ID:???
>>788
http://pecl.php.net/package/memcache
http://pecl.php.net/package/memcached
この違いがわからんって言ってることもわからないのに何でレスしたの?
790nobodyさん:2012/01/13(金) 23:15:11.59 ID:???
791nobodyさん:2012/01/13(金) 23:33:17.87 ID:???
>>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.
せめてここ貼ってやれよ。
792nobodyさん:2012/01/13(金) 23:34:47.49 ID:???
まぁユーザノートは主観だけどね
でも俺もその意見には同意する
793nobodyさん:2012/01/13(金) 23:39:13.44 ID:???
>>787
一般的に皆memcacheの方を使ってるはずだ
そうだろ?
794nobodyさん:2012/01/13(金) 23:44:36.38 ID:???
いや待て
memcachedよりAPCだろ
APCの方が高速だし
PHP使いはmemcachedよりAPCのはずだ
795nobodyさん:2012/01/13(金) 23:48:47.35 ID:???
なんでAPCと比較したんだろ
796nobodyさん:2012/01/13(金) 23:51:38.80 ID:???
KVSとしての側面ももってるから。
てかしらないならレスすんなよもう
797nobodyさん:2012/01/13(金) 23:52:14.87 ID:???
>>795
前俺も記事見たことあるよ
この2つを比較してるやつ

まぁ高速化の意味だと思うけど
798nobodyさん:2012/01/13(金) 23:53:58.78 ID:???
>>795
そりゃするっしょ
799nobodyさん:2012/01/14(土) 00:00:14.19 ID:???
>>752
答えたかったけど、俺知らないし
PHPerはその手の知識持ってる人は少ないんじゃない?
Webコンテンツは作れても、そういうこと作る機会ってないだろうから
800nobodyさん:2012/01/14(土) 00:04:38.50 ID:???
memcachedやAPCが必要なほどのシステムを組んでるのか?
一般人が使う分にはヒープでいいだろ
801nobodyさん:2012/01/14(土) 00:43:40.46 ID:???
APCのほうがお手軽だしAPCで十分だな
ロードバランサなんかでアプリケーションサーバを冗長化してる場合とか
どのマシンに振られるかわからない時はキャッシュサーバーとしてmemcachedだな
1回目のアクセスはAサーバ2回目のサクセスはBサーバとかなるとキャッシュ見失うからな
ほとんど場合は1台で動かしてるんだろうしAPCつことけばいいでしょ
802nobodyさん:2012/01/14(土) 03:22:42.53 ID:???
>>801
分散オブジェクトは使わないのですか?
「どのマシンに振られるかわからない」とか考える必要ないので
使ったほういいですよ。
803nobodyさん:2012/01/14(土) 03:36:04.89 ID:???
新キャラ 分散オブジェクト厨
804nobodyさん:2012/01/14(土) 03:42:32.66 ID:???
>>803
PHPにできないことはないよな?
805nobodyさん:2012/01/14(土) 03:44:32.87 ID:???
>>804
そうなの?
806nobodyさん:2012/01/14(土) 03:47:56.21 ID:???
>>801
性能の悪いアプリケーションサーバーですね。
キャッシュもできないのですか?
何を使ってらっしゃるのですか?
807nobodyさん:2012/01/14(土) 03:52:09.70 ID:???
おまえはいいから早く吊れよ
人生詰んでるのに往生際悪すぎだぞ
808nobodyさん:2012/01/14(土) 03:58:18.68 ID:???
朝までがんばれ
809nobodyさん:2012/01/14(土) 04:00:09.04 ID:???
>>805
そう。現在、PHPでC言語を実装するプロジェクトが
このスレで始まった。君も参加するかい?

>>807
負け犬みたいだね
810nobodyさん:2012/01/14(土) 04:01:20.83 ID:???
>>806
あおってるつもりの内容が的外れなのはわざとなの?それだけ教えてほしい
811nobodyさん:2012/01/14(土) 04:02:44.94 ID:???
>>809
JavaScriptで動くOSを参考にしてみたらどうだい
812nobodyさん:2012/01/14(土) 04:17:27.23 ID:???
>>810
あおるつもりもなく、本気だよ。

>>811
ありがとう。

最初の目標はPHPでC言語を実装すること。

2番目の目標はPHPで実装したC言語(最初の目標)でさらに
PHPを実装すること。

3番目の目標は、PHPで実装したC言語(最初)でさらに実装した
PHP(2番目)でさらにC言語を実装すること。

4番目の目標は3番目で実装あれたC言語でJava仮想マシンを作ること。
813nobodyさん:2012/01/14(土) 04:50:23.67 ID:???
かまってちゃんウザイ
ブログの宣伝1度だけ許してやるから消えてくれ
814nobodyさん:2012/01/14(土) 09:07:04.64 ID:???
>>812
コテハンつけてくれNGするから
815nobodyさん:2012/01/14(土) 10:46:42.03 ID:???
>>801
はぁ? ということは
phpって分散トランザクションもできないの?
終わっているね・・・
816nobodyさん:2012/01/14(土) 10:54:24.51 ID:???
さっさと吊れ
817nobodyさん:2012/01/14(土) 15:14:15.26 ID:???
まぁ端から静観してる俺にとっては最近の話題は面白いけどね
CMSかFWかどっちがいいかのようなものから、セッションがどうたらとかよりも
fork()だとかAPCとかやや上のレベルの話題だからね

CMSとかFWとかそこそこハックしてきたけど、まずfork()なんてお目にかからないからね
まぁ、当たり前ではあるけれど
memcachedは簡単な実装は見かけたけど、APCは見たことないと思う
818nobodyさん:2012/01/14(土) 16:43:56.71 ID:???
>>817
フレームワークを使ってバッチ処理を書くときに役立つかもよ
819587:2012/01/14(土) 17:30:34.28 ID:???
みなさんレスをありがとうございます。
根本的に私の説明不足すぎでした。
そのために度々スレを使ってしまい、すいませんでした。

▼大元の相談内容
掲示板等で、$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
820nobodyさん:2012/01/14(土) 17:52:08.46 ID:???
日付が14日よりも前かどうかの判断をしたい
10日前の日付を取得したい

というだけだと思うんだけど。
821nobodyさん:2012/01/14(土) 18:27:08.83 ID:???
どうせSEO対策だろ。
822nobodyさん:2012/01/14(土) 18:43:08.04 ID:???
1万人くらい使う掲示板を作りたいと思います
823nobodyさん:2012/01/14(土) 18:45:55.07 ID:???
10万犬くらい使う掲示板を作りたいと思います
824nobodyさん:2012/01/14(土) 18:47:59.92 ID:???
>>821
またおまえか
825nobodyさん:2012/01/15(日) 00:09:47.66 ID:0R9yJU6W
分散オブジェクトを作りたいと思います。
826819:2012/01/15(日) 04:06:00.99 ID:???
>>820
レスありがとうございます。
そうなんですよね。。
UNIXTIMEが、ごっちゃになってしまって、恥ずかしながら私の初歩的な知識では??になってしまいまして。
小さなお店のホームページをやっているのですが、写真をメールで載せるphpがありまして、
度々の更新ができない時にも日付だけフォローできるようにしたいのです。
827nobodyさん:2012/01/15(日) 04:25:58.50 ID:???
ID出せ
828nobodyさん:2012/01/15(日) 04:45:42.13 ID:???
要するに客を騙したいってことだな
829nobodyさん:2012/01/15(日) 11:18:33.29 ID:5+piCYsS
質問です。googleにphpプログラムでサインインするにはどうすればいいでしょう?
https://accounts.google.com/ServiceLogin?service=mail

phpプログラムにあらかじめEmail(ID)とパスをべた書きしておき、
submitボタンを押すだけでサインインできるようになるのが理想です
830nobodyさん:2012/01/15(日) 11:25:08.31 ID:5+piCYsS
>>829の続きですが、
クッキー「accounts.google.com」の「GALX」の値がクセモノで、
このアクセスするたびに変わる値がサインイン時に必要なのですが、
この値の制御という利用の仕方がうまくいかず、どうしてもサインイン
できません
831nobodyさん:2012/01/15(日) 11:32:23.84 ID:5+piCYsS
×この値の制御という利用の仕方がうまくいかず
○この値の制御というか利用の仕方がうまくいかず
832nobodyさん:2012/01/15(日) 12:06:48.67 ID:???
>submitボタンを押すだけでサインインできるようになるのが理想です
いろいろやばいだろ
クライアント(自分のPCにApache入れる)ならともかくサーバじゃやらんほうがいいぞ
でクライアントだと普通にブラウザのオートコンプリートでよくね?となるわけだが
もしサーバでやるとしたらフィッシング詐欺幇助になるので教えてあげない
833nobodyさん:2012/01/15(日) 12:08:42.54 ID:???
>>829
OAuth使え。登録してキーもらって
834nobodyさん:2012/01/15(日) 12:29:20.57 ID:???
クッキーが必要なんだったら普通にブラウザと同じように対話式でやり取りすりゃいいんじゃないの
方法はググったほうが確実に早い
835nobodyさん:2012/01/15(日) 12:34:59.06 ID:5+piCYsS
>>832
外部からはアクセスできない自分のPC+Apacheの環境で使います。
さすがにレン鯖等、インターネットで不特定多数に公開しているところには置きません。

>オートコンプリート
>OAuth
GMailのアカウントが5つぐらいあるんですよ。
本アド、サイトを2つ運営していてその連絡用アド、他、実家連絡用。
いちいちWebブラウザにID入れるの面倒だし、メーラー使うと
誰かがPCをいじった時に簡単に読まれてしまう。
だから(普通の人はまさかPCにApche+phpが入っているとは思わないだろうから)
自分だけわかるphpで簡単に複数アドにアクセスしたいな、と。
836nobodyさん:2012/01/15(日) 12:45:04.85 ID:5+piCYsS
phpプログラムは好きで初心者ながらちょくちょく作ってるんです。
ただ、クッキーが必要なプログラムは今までその必要がなかったから作ったことが無い。
だからクッキーは苦手・わからないんです。

で、ちょっと作ってみたのがこれです。急ごしらえで下手ですが。。
(作った当時はクッキーが必要だと思わなかったのでPOSTのみで作ろうとしていました)↓
837nobodyさん:2012/01/15(日) 12:47:26.29 ID:5+piCYsS
<?php

$a=file_get_contents("http://accounts.google.com/ServiceLogin?service=mail");
preg_match("/name=\"GALX\"[^v]+value=\"[^\"]+\"/is",$a,$match);
$match[0] = ereg_replace("name=\"GALX\"[^v]+value=\"", "", $match[0]);
$match[0] = ereg_replace("\"$", "", $match[0]);

$test='
<!DOCTYPE html>
<html lang="ja"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Google サインイン</title>
</head>
<body>
<form id="gaia_loginform" action="https://accounts.google.com/ServiceLoginAuth" method="post" name="a" id="a">
<input type="hidden" name="continue" id="continue" value="http://www.google.co.jp/">
<input type="hidden" name="hl" id="hl" value="ja">
<input type="hidden" name="GALX" value="'.$match[0].'">
<input type="hidden" id="pstMsg" name="pstMsg" value="1">
<input type="hidden" spellcheck="false" name="Email" id="Email" value="ここにID">
<input type="hidden" name="Passwd" id="Passwd" value="ここにパス">
<input type="submit" class="g-button g-button-submit" name="signIn" id="signIn" value="アカaサインイン">
<input type="checkbox" name="PersistentCookie" id="PersistentCookie" value="yes" checked="checked">
838nobodyさん:2012/01/15(日) 12:48:13.43 ID:???
5つのアドを一箇所でうければいいだけじゃね
gmailは複数アドを統合できるじゃん
839nobodyさん:2012/01/15(日) 12:48:23.76 ID:5+piCYsS
</form>

<form id="gaia_loginform" action="https://accounts.google.com/ServiceLoginAuth" method="post" name="b" id="b">
<input type="hidden" name="continue" id="continue" value="http://www.google.co.jp/">
<input type="hidden" name="hl" id="hl" value="ja">
<input type="hidden" name="GALX" value="'.$match[0].'">
<input type="hidden" id="pstMsg" name="pstMsg" value="1">
<input type="hidden" spellcheck="false" name="Email" id="Email" value="ここにID">
<input type="hidden" name="Passwd" id="Passwd" value="ここにパス">
<input type="submit" class="g-button g-button-submit" name="signIn" id="signIn" value="アカbサインイン">
<input type="checkbox" name="PersistentCookie" id="PersistentCookie" value="yes" checked="checked">
<input type="hidden" name="rmShown" value="1">
</form>

</body></html>
';

exit($test);
840nobodyさん:2012/01/15(日) 12:50:58.88 ID:???
>>838
>gmailは複数アドを統合できるじゃん
そういえばそうか!
わざわざphpでアクセスしないでそうすればいいのか(汗
841nobodyさん:2012/01/15(日) 12:51:08.49 ID:???
そもそも外部のフォームからのPOSTでログイン受け付けてくれるのか疑問
それを弾くくらいのセキュリティ対策はしてありそうだけど
842nobodyさん:2012/01/15(日) 12:59:11.49 ID:???
googleさんつよすぎわろた
843nobodyさん:2012/01/15(日) 12:59:28.34 ID:5+piCYsS
>>841
>外部のフォームからのPOSTでログイン受け付けてくれるのか疑問
自分は楽天でショッピングするのですが、楽天(https)だとPOSTで大丈夫なんですよ。
それ用のサインインphpプログラムも作りましたし・・・。
だからGMailサインインphpプログラムも楽天サインインphpプログラムと
同じindex.phpページにまとめて、1つのindex.phpページからなんにでもサインインできる、
そんな index.phpページを作ろうと思っていたのです
844nobodyさん:2012/01/15(日) 13:21:27.83 ID:5+piCYsS
ちなみに>>837,>>839の「class="g-button g-button-submit" 」は不要です。

Googleの元ページ( http://accounts.google.com/ServiceLogin?service=mail )
のソースから必要そうなタグをコピペして>>837,>>839のphpプログラムを作りましたら、
不要な部分を取り除き忘れているのです。
845nobodyさん:2012/01/15(日) 13:22:26.55 ID:???
楽天()とGoogleのセキュリティを同列に扱うとかw
846nobodyさん:2012/01/15(日) 13:43:50.83 ID:???
>>843
サーバー側から見ればクライアントがPHPだろうがブラウザだろうが関係ないさ
HTTP通信をトレースしてどんなものを送受信しているか確認して真似るのが近道よ
847nobodyさん:2012/01/15(日) 13:44:53.07 ID:???
なんのためにGoogleはAPI提供してんだよ
素直にそれ使えよ
848nobodyさん:2012/01/15(日) 13:59:17.35 ID:???
>>843
楽天なんて、セキュリティのセの字も無いサイトだぞ。
849nobodyさん:2012/01/15(日) 14:03:41.11 ID:???
>>ID:5+piCYsS
あぁ、なるほどね
そのフォームのページ見てみたけど、
その手のはおそらく無理だよ
自分もGoogleではないけど昔同じような事をしてね
理由はそのうち試行錯誤していく内に分かると思うけど、
そのGoogleのフォームじゃかなり難しい
ま、素直に諦めるべきだね

他の人の意見に従って俺は知らないけどAPIとか統合とか使った方がいい
今から1週間粘っても、ここで質問しても無理だと思う
850nobodyさん:2012/01/15(日) 14:05:55.91 ID:5+piCYsS
ぶっちゃけ楽天はアドレスバーに https://〜 ?u=ID&p=PASS を追加すればいいだけだからなぁw

で本題。
なんでクッキーGALXの値が必要だと判ったかというと、

準備としてWebブラウザを閉じてクッキー削除。
WebブラウザでGMail( https://accounts.google.com/ServiceLogin?service=mail )にアクセス。
ソースを見てGALXの値を調べる。
下記のphpプログラムにGALXの値とIDとPASSをべた書き。
同じWebブラウザでphp実行。

以上でサインインできるからです。
(WebブラウザのクッキーGALXの値とPOSTのGALXの値を比較しているみたいです。)
851nobodyさん:2012/01/15(日) 14:07:18.18 ID:5+piCYsS
<?php

$test='
<!DOCTYPE html>
<html lang="ja"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Google アカウント</title>
</head>
<body>
<form id="gaia_loginform" action="https://accounts.google.com/ServiceLoginAuth" method="post" name="a" id="a">
<input type="hidden" name="continue" id="continue" value="http://www.google.co.jp/">
<input type="hidden" name="hl" id="hl" value="ja">
<input type="hidden" name="GALX" value="ここにソースのGALXの値をコピペ">
<input type="hidden" id="pstMsg" name="pstMsg" value="1">
<input type="hidden" spellcheck="false" name="Email" id="Email" value="ここにID">
<input type="hidden" name="Passwd" id="Passwd" value="ここにPASS">
<input type="submit" id="signIn" value="ログイン">
<input type="checkbox" name="PersistentCookie" id="PersistentCookie" value="yes" checked="checked">
<input type="hidden" name="rmShown" value="1">
</form>
</body></html>
';

exit($test);
852nobodyさん:2012/01/15(日) 14:15:46.68 ID:5+piCYsS
>>850
×(WebブラウザのクッキーGALXの値とPOSTのGALXの値を比較しているみたいです。)
○(WebブラウザのクッキーGALXの値とPOSTのGALXの値が同一であるか比較しているみたいです。)

同一であればサインインできます
853nobodyさん:2012/01/15(日) 14:17:54.94 ID:???
おまえもういいよ
的確な回答は複数出たんだからブログでやってくれ
854nobodyさん:2012/01/15(日) 14:18:32.76 ID:???
おそらく俺が書いた記事を書いている最中に>>850-851を書いていたんだと思うけど、
マジでGoogleは不可能に近い
よほどのハッカー/クラッカーでなきゃ無理
フォームの構造からまず問題だけど、おそらくサーバ側にも細工してる
他のサイトならともかくGoogleはやっぱ一筋縄ではいかない

まぁ、もし君がそれでもやり遂げたときは堂々と公表してよ
尊敬する
855nobodyさん:2012/01/15(日) 14:25:47.11 ID:5+piCYsS
1ヶ月ぐらい悩むと、それまで不可能と思われたプログラムが
できてしまうものです。経験的にですが。
「PHP Google ログイン」で検索すると成功者もいるみたい?ですので、
チャレンジチャレンジでがんばってみます
856nobodyさん:2012/01/15(日) 17:56:13.63 ID:oiGEKKkd
stripslashes
「クォートされた文字列のクォート部分を取り除く」
とマニュアルにありましたが、これの意味はバックスラッシュを
取り除くってことですか?
クォートするとかがよく分かりません、教えてください。
857nobodyさん:2012/01/15(日) 18:11:38.75 ID:???
これなんかの犯罪に使おうとしてないか?
858nobodyさん:2012/01/15(日) 18:30:13.99 ID:???
>>856
指摘の通りクォート部分ではなくエスケープ部分とするべきだな
ちなみに
文字列 -> クォート -> "文字列"
859nobodyさん:2012/01/15(日) 18:40:06.41 ID:oiGEKKkd
>>858
ありがとうございました。
860nobodyさん:2012/01/15(日) 18:49:08.21 ID:???
犯罪と聞いて飛んできました
861nobodyさん:2012/01/15(日) 19:29:25.62 ID:???
>>860
ポリの方ですか?
このスレに怪しい人物がいるようです
862nobodyさん:2012/01/15(日) 19:35:32.17 ID:???
そいうや、オレの変態の友達が、php勉強して、児童の裸写真集める掲示板
作ってるが、未だに逮捕されてないぜ。
863nobodyさん:2012/01/15(日) 20:18:02.70 ID:???
「俺の友達が〜」という話の85%は、その人本人の話。

おまわりさん、この人です。
864nobodyさん:2012/01/15(日) 20:24:21.16 ID:???
するどすぎわろた
865nobodyさん:2012/01/15(日) 20:52:38.41 ID:???
おいポリ、こいつじゃ
866nobodyさん:2012/01/15(日) 23:22:19.42 ID:???
このスレから逮捕者が出るとはなあ
867nobodyさん:2012/01/15(日) 23:37:21.44 ID:???
とりえあず>>862自身じゃなかったとしても>>862から逮捕につながるように通報しといた
868862 :2012/01/15(日) 23:39:27.33 ID:???
オレのじゃねーよ、友人の話。
オレの変態の友人は未成年だから捕まっても実名報道されない
って強気な態度です。友人の口癖は「来いよアグネス」
869nobodyさん:2012/01/16(月) 00:34:32.88 ID:???
任意同行→事情聴取→家宅捜査→PC押収

まずは交友関係をじっくり説明することになるんだろうな
児童ポルノ禁止法違反で検挙とか恥ずかしすぎるw
870nobodyさん:2012/01/16(月) 01:42:52.98 ID:???
>>862本人だろうが、友人だろうが関係なく重要参考人として警察んとこ行くべきだな
871nobodyさん:2012/01/16(月) 02:01:53.33 ID:???
>>862が未成年なのはガチなようだな
この慌てようwwwww
872nobodyさん:2012/01/16(月) 02:23:06.43 ID:???
>>868
実名報道されなかったとしても家族にはばれるけどね。
学生なら学校にも、バイトしてるならバイト先にも。
873nobodyさん:2012/01/16(月) 02:25:18.83 ID:OeE4uuA7
<img src="thumbnail.php?image=1234&w=300&h=200" />
上記のようなリクエストを出すと、
DBに保存した画像テーブルからIDが1234のフィールドを参照し画像パスを取得して、
そのパスの画像を横幅300px、縦幅200pxで表示するというスクリプトがあるのですが、
毎回アクセスするたびに生成しては重いということで
1度リクエストがあった画像は所定のディレクトリへリクエストされたサイズで保存し、
そこに保存されている画像であれば生成せずに、それにアクセスさせることにしました。

この分岐(生成画像があるか?)をさせるにはどういった方法がありますでしょうか?

僕が思いつける範囲は以下のような処理です。
例えば、上記の例でいうと生成画像のファイル名は
image1234_w300_h200.jpg
というようにして、
1.<img src="http://example.com/img/image1234_w300_h200.jpg" />
として.htaccess でファイルが存在しなければ生成プログラムにリライトする
もしくは、
2.最初と同じく<img src="thumbnail.php?image=1234&w=300&h=200" />としてアクセスさせ、
PHP内で http://example.com/img/image1234_w300_h200.jpg が存在するか判断して、
存在すればそのままそれを返す、存在しなければ生成して表示させる、

上記のような方法が考えられますが、
他になにか良い方法などがあればご教示お願いできますでしょうか?
874nobodyさん:2012/01/16(月) 02:28:09.34 ID:???
どっちでも問題ないよ。好きなほうでやりんさい。
875nobodyさん:2012/01/16(月) 02:32:05.83 ID:???
>>873
前者の方が今風な感じがする
876873:2012/01/16(月) 02:35:01.56 ID:OeE4uuA7
ありがとうございます。

フレームワークを使っていて1アクセスでも負担が大きいので
なるべく画像に直接アクセスして完結させたいのですが、
1.の方法だと、生成画像があればPHPにアクセスせずに済むので
こっちのほうが軽いですよね?

それと、図々しいかもしれませんが、
1.の方法の.htaccess はどういう書き方をしたらいいか教えていただけませんでしょうか・・・。
877nobodyさん:2012/01/16(月) 02:45:10.11 ID:???
>>873
毎回同じ処理をするならPHPのようなインタプリタ言語をやめる。
画像へアクセスするたびにインタプリタが走るのは完全にムダで
ユーザーがかわいそう。
878nobodyさん:2012/01/16(月) 02:46:20.78 ID:???
>>876
RewriteCond %{REQUEST_FILENAME} !-f

PHPの質問じゃないけどね!
879nobodyさん:2012/01/16(月) 17:40:20.70 ID:l7Fd5fgU
880nobodyさん:2012/01/16(月) 20:49:09.11 ID:w74ctwP8
if (!$edit){
}

この式って$editがどんな値の時にtrueですか?
881nobodyさん:2012/01/16(月) 21:22:20.46 ID:???
>>880
マニュアルは見てみたかい?
882nobodyさん:2012/01/16(月) 21:27:09.05 ID:???
0かnullかfalseか''の時true
わかったかハゲ
883nobodyさん:2012/01/16(月) 21:45:06.81 ID:???
ツンデレめ
884nobodyさん:2012/01/16(月) 21:49:17.22 ID:???
>>882
それだけじゃないよ
885nobodyさん:2012/01/16(月) 21:51:58.51 ID:???
なんだとハゲが
じゃあこれも追加な
array()
あとは他のハゲどもに聞いてくれ
886nobodyさん:2012/01/16(月) 22:27:47.15 ID:9eZbuHu2
自分は今までApacheはデフォルトのpreforkしか使っていなかったのですが、workerに替えようと思い調べてみたところ、

http://blog.flatlabs.net/20110222_232623/

http://labs.unoh.net/2008/03/apache_mpm.html
にてphp-mbstring、PHPを動かすサーバでは、preforkの選択が無難と書かれてあります

皆さんはPHPの場合どちらを使用しているのでしょうか?
自分は並列的な感じからworkerの方が早いのだろうと期待して替えようと思っていたのですが
887nobodyさん:2012/01/16(月) 23:03:24.97 ID:guznNntQ
$lang[0] =$lang0;
$lang[1] =$lang1;
$lang[2] =$lang2;
を、
for ($i = 0; $i < 4; $i++) {
$lang[$i] =$lang.$i;
}
とするとうまくエラーがでます。どうすればいいのですか?
888nobodyさん:2012/01/16(月) 23:11:11.54 ID:???
>>887
上手く出るならそれでいいんじゃないの
889nobodyさん:2012/01/16(月) 23:12:27.38 ID:guznNntQ
間違えました、
for ($i = 0; $i < 4; $i++) {
$lang[$i] =$lang.$i;
}
でうまくいかず、エラーが出ます。どうすればいいのですか?
890nobodyさん:2012/01/16(月) 23:28:27.47 ID:???
>>887
$hoge = "lang" . $i;
$lang[$i] = $$hoge;
891nobodyさん:2012/01/16(月) 23:34:43.93 ID:???
ループの終了条件
892nobodyさん:2012/01/16(月) 23:41:38.95 ID:???
条件あるじゃん$i < 4だろ
つまり$iが4まできたら終了じゃん
893nobodyさん:2012/01/16(月) 23:41:54.01 ID:guznNntQ
>>890
ありがとうございました。
894nobodyさん:2012/01/17(火) 00:12:00.49 ID:EiaeWEuH
PHPで分散トランザクションはどのように行えばよろしいでしょうか?
895nobodyさん:2012/01/17(火) 02:14:09.51 ID:???
また発作か
896nobodyさん:2012/01/17(火) 02:49:14.01 ID:???
は、はっさく?
897nobodyさん:2012/01/17(火) 04:03:01.94 ID:BgcdxtCD
PHPでアプリケーションスコープはどのようにしたら実装できますか?
898nobodyさん:2012/01/17(火) 10:52:09.01 ID:46QLTXdT
2012年1月は、C#がC++を抜いて3位につけたことが特に注目される。C++は長期に渡って
緩やかな下落傾向にある一方で、C#は上昇傾向が続いており、特にここ数年は上昇傾
向が強くなっている。

今後しばらくは、C#とC++で順位の入れ替えを繰り返すものと見られるが、最終的には
C#が3位、C++が4位に落ち着く可能性が高い。また、Objective-Cも急成長を続けており、
この傾向が続いた場合には、C#、Objective-C、C++という順位に変わっていく可能性もある。

上記のほか20位以内に入ったプログラミング言語としては、Rが19位に、Luaが20位に
入った点が注目される。

特に、統計処理や統計データのグラフィック化などに利用されるRプログラミング言語は、
ここのところ注目が高まっている。Rの機能拡張が、Googleの支援によって実現したこと
などもその一因となっているものとみられる。

 1 Java       17.479 (-0.082) 18ヵ月連続1位
 2 C         16.976 (-0.081)
 3 C#         8.781 (+0.576) 3位へ浮上。上昇傾向
 4 C++.        8.063 (-0.189) 4位へ下落
 5 Objective-C   6.919 (+0.114) 上昇傾向
 6 PHP        5.710 (-0.291) 下落傾向
 7 (Visual)Basic  4.531 (-0.226)
 8 Python.      3.218 (-0.274)
 9 Perl.        2.773 (+0.301)
10 JavaScript    2.322 (+0.123)
11 Delphi       1.576 (+0.331)
12 Ruby.        1.441 (-0.053)

http://news.mynavi.jp/news/2012/01/12/058/
899nobodyさん:2012/01/17(火) 11:06:15.39 ID:???
でっていう
900nobodyさん:2012/01/17(火) 11:56:51.84 ID:5qimSQwE
PHPによるWebアプリケーションスーパーサンプル第二版で、PHPを勉強中のものです。
P.54 でPOST送信されたデータを受け取るという話の中で、$_POSTで受け取るほかに

 「$HTTP_POST_VARSという変数も使用できますが、PHP5の設定ファイルのテンプレートである
 php.ini-recommendedでは $HTTP_*_VARS 変数は無効(register_long_arrays=OFF)と
 なっているので注意しましょう。」

と書いてあります。この意味がわからないのですが、register_long_arrays=OFFの場合
$HTTP_POST_VARS は使えないということですか?
901nobodyさん:2012/01/17(火) 11:58:32.11 ID:???
重要でもないしそんな変数使わないから気にしないでいい
$_POST使いな
902900:2012/01/17(火) 11:59:30.14 ID:5qimSQwE
ちなみに、別な本についてきたxamppで一緒にPHPをインストールしたのですが
C:/xampp/php/php.ini-recommended をエディターで開いてみると
register_long_arrays = Off になっていますが、サンプルコードを書いてみると
$HTTP_POST_VARS でも、POST送信されたデータを受け取れています。
どこか、勘違いしているのでしょぅか。
903nobodyさん:2012/01/17(火) 12:00:19.53 ID:5qimSQwE
>>901
あっ、素早いお返事ありがとうございました。
おすすめのとおり、気にしないで進むことにします。ありがとうございました。
904nobodyさん:2012/01/17(火) 12:07:42.39 ID:???
$HTTP_POST_VARSでマニュアル見ればすごくわかりやすく書いてあるのになぜマニュアルを読もうとしない
しかも$HTTP_POST_VARS [非推奨]っておもっくそ書いてある

マニュアルマニュアルマニュアルマニュアルマニュアルマニュアルマニュアル
マニュアルマニュアルマニュアルマニュアルマニュアルマニュアルマニュアル
マニュアルマニュアルマニュアルマニュアルマニュアルマニュアルマニュアル
マニュアルマニュアルマニュアルマニュアルマニュアルマニュアルマニュアル
905900:2012/01/17(火) 16:54:57.24 ID:???
>>904
本家マニュアル(日本語ページで)検索したけど、英語のページになっちゃったんです。
それで挫折しました。
906nobodyさん:2012/01/17(火) 17:12:01.93 ID:???
こういうのとか、みつかりませんでした、とか
自分は検索がヘタクソですって公言すると何かいいことがあるのか?
907nobodyさん:2012/01/17(火) 17:17:15.71 ID:???
>>906
能力不足で見つけられなかったけど、努力はしたんです。
それでもわからないので、ここに質問にきたんです。できたら検索のコツなどを
ご教示いただけると、自分も含め、今後の参考になるのでぜひお願いします。
908nobodyさん:2012/01/17(火) 17:32:57.59 ID:???
まぁこのスレ的には>>905
位の手順踏んでたら質問して問題ないでしょ
くだらない質問スレ(=初心者スレなんだし)
909nobodyさん:2012/01/17(火) 17:42:55.79 ID:???
$HTTP_POST_VARSでググったら1ページ目に公式日本語マニュアル出てるんだが
どんだけ検索音痴なんだよ
910nobodyさん:2012/01/17(火) 17:50:45.68 ID:???
ページ上部に言語設定のフォームがあるのに…
あとはURLのenをjaに変えてみるとか。英文を機械翻訳にかけるとか。手は色々あるね
911nobodyさん:2012/01/17(火) 17:57:19.20 ID:???
英語が出てきた瞬間に頭が読むことをやめるんだろ
だから簡単な言語設定にすら気付けない
でも言い訳だけは一人前
>能力不足で見つけられなかったけど、努力はしたんです。
明らかにしてねーよ
912900:2012/01/17(火) 17:59:56.39 ID:???
みなさん、ありがとうございます。
googleでいきなり検索するというのは思いつきませんでした!
翻訳も考えてもみませんでした。 orz 次回もう少し高度な質問ができるようよにがんばります。
913nobodyさん:2012/01/17(火) 18:00:36.46 ID:???
>>911
あああ、すみません。英語ももっと勉強します・・・
914nobodyさん:2012/01/17(火) 18:13:12.41 ID:???
努力ってなにかね?
915nobodyさん:2012/01/17(火) 18:30:28.37 ID:???
ところで、 >>900、902  のそもそもの質問は、

「register_long_arrays=OFFの場合 $HTTP_POST_VARS は使えないということですか?
(受け取れているようですが) 」だったんですが

>>914さん、ご存知でしたら教えてください。
916nobodyさん:2012/01/17(火) 18:31:32.48 ID:???
>>1読めやハゲが
教えてやってもいいけどおまえあとで体育館の裏な
917nobodyさん:2012/01/17(火) 18:36:11.99 ID:???
なんだ、わかんないのか
918nobodyさん:2012/01/17(火) 18:38:39.75 ID:???
そしてこの態度である
919nobodyさん:2012/01/17(火) 18:51:30.30 ID:???
えっ、釣り?
920900:2012/01/17(火) 19:17:39.12 ID:RFWc5FPN
>>916
偽者がまざっているようですが、

【OS名】windowsXP
【PHPのバージョン】PHP Version 5.2.4
【連携ソフトウェア】なし
【質問内容】  >>900 と >>902に書いたとおり 

あと、どんな情報が必要ですか?
921nobodyさん:2012/01/17(火) 19:57:25.86 ID:???
>>920
答えてやろう

>「$HTTP_POST_VARSという変数も使用できますが、PHP5の設定ファイルのテンプレートである
> php.ini-recommendedでは $HTTP_*_VARS 変数は無効(register_long_arrays=OFF)と
> なっているので注意しましょう。」
この通りだろ

おまえの環境のregister_long_arraysはどんな値になってるのさ
いずれにしても$HTTP_POST_VARSは非推奨な上、スーパーグローバルではないとマニュアルにある
$_POSTとは別の変数とも書いてある

ちなみに
>PHPによるWebアプリケーションスーパーサンプル第二版
こんなもん窓から投げ捨てちまえ
コーディングのやり方だけ覚えたら本なんか足枷にしかならんぞ
ネットから情報を得てプログラミングしていく方法を身につけたほうが早く伸びる
922900:2012/01/17(火) 20:07:58.18 ID:RFWc5FPN
>>921
ありがとうございます。
register_long_arraysの値は、>>902に書いてあるとおり
register_long_arrays = Off です。 だから$HTTP_*_VARS 変数は無効だと
思ったのに、POST送信されたデータを$HTTP_POST_VARSで
受け取れてしまい、とても混乱しました。そこで質問させていただきました。
923900:2012/01/17(火) 20:10:11.06 ID:RFWc5FPN
PHPは今日から勉強しはじめたもので、不明な点がいろいろあり、これからもっと
勉強していこうと思います。ありがとうございました。
924nobodyさん:2012/01/17(火) 20:26:43.03 ID:???
え?解決したの?
てか君の環境のApacheはphp.ini-recommendedを読み込んでるの?
925nobodyさん:2012/01/17(火) 20:37:22.68 ID:???
>register_long_arraysの値は、>>902に書いてあるとおり
>register_long_arrays = Off です。

本当かよ
ini_get()してみろよ
926900:2012/01/17(火) 21:08:57.26 ID:RFWc5FPN
>>924
読んでくれてるつもりだったんですが・・・

>>925
echo 'register_long_arrays = ' . ini_get('register_long_arrays')

で、register_long_arrays = 1 と表示されます。
1 ってことは true?つまり on ってことですか?
927nobodyさん:2012/01/17(火) 21:09:35.25 ID:???
>>926
つもりというと?どこでどう設定したの?
928nobodyさん:2012/01/17(火) 21:16:11.03 ID:RFWc5FPN
>>927
あああああああ、そういうことかーーー!
やっとわかりました!もう一度読み直してやってみます!
929nobodyさん:2012/01/17(火) 21:18:55.06 ID:???
いや、聞いてるんだけど
930nobodyさん:2012/01/17(火) 21:42:05.49 ID:???
>>902のすぐあとに>>924のようなレスがつかないこのスレは一体なんなんだ。
931900=928:2012/01/17(火) 22:05:54.75 ID:RFWc5FPN
わかったつもりで、c:/xampp/apache/bin/php.ini の
register_long_arraysを確認してきたら、onになっていました

で、それをoffに変更して保存したのですが、
echo 'register_long_arrays = ' . ini_get('register_long_arrays')
は、まだ、register_long_arrays = 1 と表示されます。  orz
932nobodyさん:2012/01/17(火) 22:06:46.79 ID:???
>>931
もしかして : 再起動してない
933nobodyさん:2012/01/17(火) 22:08:14.72 ID:???
Phalanger 3.0 (2012年1月) をリリースしました。
http://awabi.2ch.net/test/read.cgi/poverty/1326781620/
934900=928:2012/01/17(火) 22:10:15.34 ID:RFWc5FPN
明日、もうすこし頭を冷やして、やり直してみます。
みなさん、ありがとうございました。
935nobodyさん:2012/01/17(火) 22:14:34.38 ID:???
とりあえずそんなの放置でもかまわんよ
使わなきゃいいだけ
936nobodyさん:2012/01/17(火) 22:14:59.64 ID:???
いいってことよ
937nobodyさん:2012/01/17(火) 22:15:33.02 ID:???
>>934
>>932が言うように、apacheの再起動はした?
938nobodyさん:2012/01/18(水) 01:52:47.82 ID:???
>>934
server.xmlは設定したか?
939nobodyさん:2012/01/18(水) 06:55:41.17 ID:???
いつもの人の釣りでしょ
940昨日の900です
>>932-938
あれこれ、ちょっとずつ変えてつつテストしていたので、再起動したつもりでしたが
再起動していなかったのかもしれません。

今日テストしたら register_long_arrays = 1 にならなくなりました(null?)
そして、$HTTP_POST_VARS の値も取れなくなりました!(希望していた結果)
結局設定の間違いだったんですね。みなさん、ありがとうございました!