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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2012/01/02(月) 02:03:25.50ID:???
質問者はまず>>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等)・フレームワークは各該当スレへ
0002nobodyさん2012/01/02(月) 02:04:06.84ID:???
■過去ログ
【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/
0003nobodyさん2012/01/02(月) 02:04:24.09ID:???
関連リンク
■本家マニュアル   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/
0004nobodyさん2012/01/02(月) 02:04:38.64ID:???
【簡易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プログラムとして実行された結果になる。
0005nobodyさん2012/01/02(月) 02:04:53.06ID:???
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に保存?
 → 好きにしてください
0006nobodyさん2012/01/02(月) 02:05:31.26ID:???
あけましてポポポポーン
0007nobodyさん2012/01/02(月) 03:54:44.69ID:???
>>1GJ
0008nobodyさん2012/01/02(月) 04:10:13.34ID:Vsxd7/Vo
PHPのシングルトンはあまり意味ないってよく聞くんですけど、
本当ですか?
0009nobodyさん2012/01/02(月) 06:47:39.02ID:l3XFfeoy
今年も夜露死苦
0010nobodyさん2012/01/02(月) 09:14:56.71ID:???
>>8
意味はあるんじゃない?
0011nobodyさん2012/01/02(月) 09:29:15.27ID:???
PHPに限らずウェブアプリ全体に言えることだけど消費リソースの低減って働きをシングルトンに求めるならそれはあまり意味ないと言える
アクセスごとに処理されるわけだし
例えば全部のアクセスをメモリ上に置いたシングルトンなインスタンスで処理できるようなものになれば話が違ってくるけど
0012nobodyさん2012/01/02(月) 09:31:14.28ID:???
シングルトンって消費リソースの低減のためにやるもんなの?
0013nobodyさん2012/01/02(月) 09:37:46.62ID:???
シングルトンなんてデザインパターンの中でもそれほど重要だないもんだし
一度の処理でオブジェクト1つに制限したいとか2つに制限したいとか好きなように使えばいいだろ
0014nobodyさん2012/01/02(月) 09:50:33.58ID:???
>>8
PHPの書籍スレでベテランを装った素人が「PHPでシングルトンは出来ない」とか言ってるのを真に受けた?
デザインパターンを全く理解してない人のたわごとだから無視していい。
0015nobodyさん2012/01/02(月) 09:53:32.11ID:???
PHPでDB接続以外にシングルトンなんて使うことあるの?
0016nobodyさん2012/01/02(月) 10:07:23.66ID:???
>>14
理解してない半端ものほどそういう宗教っぽいセリフ出すよね
何故出来ないのか理解したほうが良い
0017nobodyさん2012/01/02(月) 10:22:40.15ID:???
>>1
0018nobodyさん2012/01/02(月) 11:02:52.10ID:???
>>15
Pear Class: Net_UserAgent_Detect
PHP4でsingleton実装してる。
http://pear.php.net/package/Net_UserAgent_Detect/docs/latest/Net_UserAgent/Net_UserAgent_Detect.html#methodsingleton
0019nobodyさん2012/01/02(月) 12:14:22.05ID:???
どこで使うんだよ、目的と手段が入れ替わってないか?
0020nobodyさん2012/01/02(月) 12:20:49.99ID:???
目的の無い旅もいいもんだ (暇人に限る)
0021nobodyさん2012/01/02(月) 12:29:16.32ID:Vsxd7/Vo
シングルトンってやっぱりあんまり意味ないみたいですね。
公式サイトに書いてありました。
シェアードナッシングとはプロセスごとにメモリ空間バラバラに
なるからということか。
このへんはマルチスレッドな言語とは事情が違うわけですね。

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

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

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

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

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

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

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

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

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

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

釣りなのかはともかく>>31程度のことを創造性の問題にするとはw
0048nobodyさん2012/01/02(月) 19:52:33.98ID:???
DBに保存してるならジャンルごとに取り出すとかレコメンドして取り出すとかいろいろできるだろ
すべてのユーザに同じデータならニュースサイトのRSSひっぱってくりゃいい
なんでもできる状態で”これしかできない”限定の質問が視野狭窄脳梗塞状態
周りにこーゆーヤツが多くてちょっとイラッ☆っときてしまった
反省はしてない
0049nobodyさん2012/01/02(月) 20:32:24.66ID:???
しかし、>>31の釣り野郎はPHPの弱点をうまく突いているwww
0050nobodyさん2012/01/02(月) 20:41:19.53ID:???
あと->とかふざけんな.でメンバにアクセスできるようにしろ!
面倒くせえんだよ->ってうつの
0051nobodyさん2012/01/02(月) 20:42:23.22ID:???
>>31の言ってる意味がわからん。
0052nobodyさん2012/01/02(月) 20:44:30.99ID:???
>>39の言ってる意味もわからん。
0053nobodyさん2012/01/02(月) 20:54:47.07ID:???
>>47>>49
低脳が自演すると、自分の間抜けさを補強しちゃうのが悲しいな
黒いものをいくら「白だ!」と自演してもみんなクスクス笑うだけ
0054nobodyさん2012/01/02(月) 21:11:31.24ID:???
>>48の言ってる意味もわからん。
0055nobodyさん2012/01/02(月) 21:12:37.11ID:???
>>53
釣りにつられるなよw
0056nobodyさん2012/01/02(月) 21:17:10.64ID:???
ここまでひどい自演も最近あまりみないな
0057nobodyさん2012/01/02(月) 21:18:55.95ID:Vsxd7/Vo
このスレおもしろすぎる。
釣りって言ってるのに、入れ食い状態。
みんなに正月早々つきあってもらってごめんね。
またネタ用意してくるから待っててねwwwwwwww
0058nobodyさん2012/01/02(月) 21:21:12.46ID:???
                   ';';,..
                    '';;';';;,.,
                      ''';;';';;'';;;,.,                  ザッ
                       ''';;';'';';''';;'';;;,.,   ザッ
          ザッ            ;;''';;';'';';';;;'';;'';;;
                        ;;'';';';;'';;';'';';';;;'';;'';;;
                        vymyvwymyvymyvy     ザッ
               ザッ     MVvvMvyvMVvvMvyvMVvv、
                   Λ_ヘ^−^Λ_ヘ^−^Λ_ヘ^Λ_ヘ
     ザッ            ヘ__Λ ヘ__Λ ヘ__Λ ヘ__Λ
                __,/ヽ_ /ヽ__,.ヘ /ヽ__,.ヘ _,.ヘ ,.ヘ    ザッ
    /\___/ヽ   /\___ /\___/ヽ  _/ヽ /\___/ヽ
   /        \/      /         \  /        \
  . |           |       |           |  |           |
  |           |       |           |  |           |
.   |           |       |           |  |           |
   \        /\      \        /    \        /
   /`ー‐--‐‐―´\ /`ー‐-  /`ー‐--‐‐―´\   /`ー‐--‐‐―´
   「vipに帰ります」「vipに帰ります」「vipに帰ります」「vipに帰ります」
0059nobodyさん2012/01/02(月) 21:22:02.25ID:???
こんなくだらない事している間におまいらの知らないところでスキルを上げてる奴らがいる
0060nobodyさん2012/01/02(月) 21:57:14.73ID:???
とりあえず正月三が日ぐらい休めw
0061nobodyさん2012/01/03(火) 00:37:02.85ID: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の保存形式を変更することはできるのでしょうか?
0062nobodyさん2012/01/03(火) 00:40:23.42ID:???
>>28
プロセスを何だと思いこんでるんだ?コイツ
0063nobodyさん2012/01/03(火) 00:42:57.34ID:???
>>62
プロセスとは何か説明してあげて。
0064nobodyさん2012/01/03(火) 00:47:46.14ID:rKocSQ20
詳しい人、

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

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

>>70
PHPはマルチスレッド非対応
っぽいことはcURL使えばできる
0072nobodyさん2012/01/03(火) 02:38:05.01ID:rKocSQ20
>>71
やっぱりマルチスレッドはできないですよね。
>>65は嘘つきですね
0073nobodyさん2012/01/03(火) 02:53:05.42ID:???
>>71
おまえ構うなよ
0074nobodyさん2012/01/03(火) 02:53:47.08ID:rKocSQ20
>>73
あなたも嘘つきですか?
0075nobodyさん2012/01/03(火) 03:46:50.55ID:???
>>64 は、マルチスレッドっぽいことがしたいの?
0076nobodyさん2012/01/03(火) 03:48:48.69ID:???
>>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);
0077nobodyさん2012/01/03(火) 03:50:58.26ID:???
まぁjsonにするのが普通だけどSESSIONは再利用できないでしょ
中身と何かしらユーザーと紐付けるユニークなIDだけを格納しておいて新しいSESSIONへ入れるという実装が現実的
0078nobodyさん2012/01/03(火) 03:52:02.64ID:5Pk6ggV8
>>71
ありがとうございます。
ちょっと自分で調べてみて、seliarizeという関数がセッションのキーバリューをこの形式に変換していることが分かりました。
0079nobodyさん2012/01/03(火) 04:00:17.52ID: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関数的なものを実装しようかと思います。
ありがとうございます。
0080nobodyさん2012/01/03(火) 04:11:57.55ID:???
PHPのシリアライズのバグは治ったんでしょうか?
0081nobodyさん2012/01/03(火) 04:13:01.20ID:???
なんか厄介事やろうとしてるみたいだけど素直にajaxでPHPからjsonでもらったら?
0082nobodyさん2012/01/03(火) 04:17:24.79ID:???
>>61
>>76
そんなことするくらいならPHP以外の言語にしては?
0083nobodyさん2012/01/03(火) 10:51:44.23ID:???
いい加減な事いう>>65が答えられなくて誤魔化してきたことに笑った
0084nobodyさん2012/01/03(火) 14:52:20.49ID:???
関数の呼び出し元はdebug_backtrace()で、ローカル変数はget_defined_vars()
で取得できるようですが、呼び出し元のローカル変数一覧を取得する方法は
ないのでしょうか?
0085nobodyさん2012/01/03(火) 15:03:14.85ID:???
>>84
>>1
0086nobodyさん2012/01/03(火) 16:32:20.69ID:u/AA2OwX
すいません…

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

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

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

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

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

既に俺は渡した
0095nobodyさん2012/01/03(火) 18:49:51.05ID:Ccq7mdky
phpMyAdminのテーマって、公式から拾える分しかないのですか?
同じデザインで、色違いってのが3種類欲しいんだけど
0096nobodyさん2012/01/03(火) 18:51:12.87ID:???
>>95
他にもあるよ
0097nobodyさん2012/01/03(火) 18:52:03.43ID:???
>>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();
0098nobodyさん2012/01/03(火) 19:31:14.73ID:???
>>31

おいおいおい、

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

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

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

LAMP システムを調整する: 第 2 回 Apache と PHP を最適化する
http://www.ibm.com/developerworks/jp/linux/library/l-tune-lamp-2.html
0117nobodyさん2012/01/03(火) 23:52:26.89ID:???
>>109
頭の良い人はPHP以外の手段を使う。これ常識。
0118nobodyさん2012/01/03(火) 23:57:57.57ID:???
>>111
アパッチの動作モードの話をしてどうすんだっていう
0119nobodyさん2012/01/04(水) 00:00:11.45ID:???
PHPerはバカばっかり。
0120nobodyさん2012/01/04(水) 00:15:57.19ID:GubBHlXR
PHPでJavaを実装したいのですがどうしたらよいでしょうか?
0121nobodyさん2012/01/04(水) 00:56:17.87ID:???
このスレ程度低すぎ。
0122nobodyさん2012/01/04(水) 00:56:25.29ID:???
年明けてもココ相変わらずだなwwwwwwwwwwwwww
0123nobodyさん2012/01/04(水) 01:05:33.68ID:???
>>120
QuercusというJavaで実装されたPHPはあるが、
その逆はどうあがいても無理。
0124nobodyさん2012/01/04(水) 01:20:24.22ID:???
限定的なものなら作れるかもねw
0125nobodyさん2012/01/04(水) 02:06:09.87ID:???
>>107
将来Zend Thread SafetyてのはRubyやpythonみたいに使えるようになるのかねぇ
0126nobodyさん2012/01/04(水) 02:48:24.12ID:???
PHPはC言語で実装されている。
逆にC言語はPHPで実装できる。これ常識よ。
0127nobodyさん2012/01/04(水) 03:25:48.26ID:???
どーも年末からキチガイ中年が一人わいてるな
いい歳こいて恥ずかしくないのかね
PHPがクソ言語?そうかもね、そんな気もする
で?ってゆう
0128nobodyさん2012/01/04(水) 03:48:18.28ID: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で保存されません。
どうしたらうまくいくでしょうか。
0129nobodyさん2012/01/04(水) 03:48:18.88ID:???
>>127
このスレはレベル低すぎるよ・・・。
0130nobodyさん2012/01/04(水) 03:54:18.43ID:???
>>128
そんな処理をPHPですること自体に無理がある。
PHPのシリアライズはバグありで有名なので、
別言語で書き直すべき。
0131nobodyさん2012/01/04(水) 04:04:27.07ID:???
>>128
あのさ、ただの文字列'abc'とかの出し入れやってみた?
次にmemcachedに格納したそのセッションとやらを単純に取り出してdumpしてみた?
質問する以前の問題だと思うんだよね
0132nobodyさん2012/01/04(水) 04:12:27.36ID:???
>>128
まさかとは思うが session.save_handler を指定してないとかないよな
http://www.php.net/manual/ja/memcached.sessions.php
0133nobodyさん2012/01/04(水) 04:30:44.93ID: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で接続してみても問題はありません。
0134nobodyさん2012/01/04(水) 04:32:33.54ID:zYHozA87
>>131
$m->setOption(Memcached::OPT_SERIALIZER, Memcached::SERIALIZER_JSON);
とmemcached.iniに memcached.serializer = "json" を入れることで、
シリアライズの指定ができるのではないかと思っていたのですが、結果のとおりだめでした。
セッションの情報自体は保存されるものの、保存形式はjsonではありません

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

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

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

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

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

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

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

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

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

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

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

検索したのですがわからなかったので、
検索ワードも教えて頂けると嬉しいです。
0167nobodyさん2012/01/04(水) 17:57:03.48ID:???
>>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
0168nobodyさん2012/01/04(水) 18:12:06.36ID:???
>>163
え、自分でマクロ実装しろって話なの?この流れで?まさか?
0169nobodyさん2012/01/04(水) 18:16:59.21ID:???
え、マクロも書けない素人なの?だったら他の初心者向けエディタ使ってればいいと思うよ
0170nobodyさん2012/01/04(水) 18:19:13.57ID:???
へ?
0171nobodyさん2012/01/04(水) 18:20:17.84ID:???
PHPerはアホばかりw
0172nobodyさん2012/01/04(水) 18:20:45.01ID:???
秀丸erはアホばかりw
0173nobodyさん2012/01/04(水) 18:21:43.21ID:???
秀丸ならある、って書いてるくらいだから秀丸ユーザ的にはメジャーなそういうマクロとかがあるんだろうよ。
0174nobodyさん2012/01/04(水) 18:23:08.97ID:???
裏を返せば秀丸以外にはないかもね
わざわざ秀丸使うような人たちが欲するものを理解するのは無理
0175nobodyさん2012/01/04(水) 18:32:27.15ID:???
-l でlintかけりゃ済む話だろ;
いちいち勝手にセミコロン置かれてたまるか;
0176nobodyさん2012/01/04(水) 18:40:37.39ID:1MDsVe6G
>167
ありがとうございます。
mod_rewriteで検索したところそれっぽい感じでした!
ただ.htaccess自体もよく理解できていない状態なので、
じっくり勉強したいと思います!

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

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

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

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

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

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

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

ところで今はどうやってphpテストしてる?
コマンドラインならform.phpの最初の方で
$_POST['key'] = "値"; // <input name="key" value="値">
ってしとけばローカルサーバー不要でテストできるね
0185nobodyさん2012/01/04(水) 19:47:47.36ID:???
[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と出てきたら成功です
0186nobodyさん2012/01/04(水) 19:50:21.70ID:???
>>181
<form action="hello.php" method="post>
を書いてあるのがhello.htmlとして
http://localhost/hello.htmlにアクセスするんだよ。
たとえばxamppならC:\xampp\htdocsにhello.htmlとhello.phpを入れとく。
0187nobodyさん2012/01/04(水) 21:16:20.20ID:UqtcALC3
>>181です。
みなさん、ありがとうございます。
教えていただいた通りにやったらできました!!
0188nobodyさん2012/01/04(水) 21:30:54.32ID:???
いいってことよ
0189nobodyさん2012/01/04(水) 23:21:41.75ID:s9lYOiI4
現在のページの下位置って取得できる?javascriptでもいいけど
0190nobodyさん2012/01/04(水) 23:48:16.96ID:???
スクロール位置の事だったら(innerHeight + pageYOffsetとか)
クライアントサイドの仕事だからJavaScriptスレで聞いたほうがいいよ
0191nobodyさん2012/01/05(木) 00:17:41.50ID:YvCiXMC9
phpでmemcachedなど外部キャッシュを利用せずに
アプリケーションスコープ相当を実現することはできますか?
0192nobodyさん2012/01/05(木) 00:39:35.64ID:???
またお前か
0193nobodyさん2012/01/05(木) 00:52:10.76ID:???
>>191
PHPだけじゃ無理なんで、なんか工夫する
0194nobodyさん2012/01/05(木) 00:59:15.22ID:YvCiXMC9
>>193
具体的に方法はありますか?
0195nobodyさん2012/01/05(木) 01:04:20.51ID:???
具体的にどういう設計を考えてるのか説明してくれないとなんとも言えん
0196nobodyさん2012/01/05(木) 01:07:57.28ID:YvCiXMC9
>>195
ケースバイケースになるくらい難しいことですか?
0197nobodyさん2012/01/05(木) 01:10:10.17ID:YvCiXMC9
ちなみに静的ファイルを作るという手法は試しています。
0198nobodyさん2012/01/05(木) 01:16:29.08ID:YvCiXMC9
>>195
他のサーバーサイド言語では主に3つのスコープがあります。
1.リクエスト
2.セッション
3.アプリケーション

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

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

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

ヒヒヒwwww。

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

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

まあこっちのほうが遙かにわけわからないけどねw
>>203
>>204
>>208
0232nobodyさん2012/01/05(木) 03:58:28.05ID:???
>>230
C++で作ったからといって、1000ユニークアクセスに対して1000DBアクセスが発生しなくなるわけじゃあないからな。
なんの工夫もなしにそれは変わることはない
0233nobodyさん2012/01/05(木) 04:44:02.06ID:???
すげー自演だなw
0234nobodyさん2012/01/05(木) 04:50:42.28ID:???
自演としても成立してないよ
HipHopはPHPの開発ツールとしての優位性が強まる、つまり「PHP最強だろ!」って話だからね
PHP憎しで完全に狂ってるけど、はたから見ると面白い
0235nobodyさん2012/01/05(木) 08:46:23.61ID:???
>211
もういいから早く代替案を答えて。
0236nobodyさん2012/01/05(木) 08:57:14.69ID:???
>>234
C++で作ったからといって、1000ユニークアクセスに対して1000DBアクセスが発生しなくなるわけじゃあないのに、
なぜHipHopで「PHP最強だろ!」になるのですか?
0237nobodyさん2012/01/05(木) 09:06:53.72ID:???
>>232
PHPってそんなこともできないの?
0238nobodyさん2012/01/05(木) 09:14:31.17ID:???
一人で一生懸命ごくろうさん
よく死にたくならないなと感心するよ
0239nobodyさん2012/01/05(木) 09:22:13.73ID:???
>>238
もういいから早く代替案を答えて。
0240nobodyさん2012/01/05(木) 11:42:14.54ID:ACIe1UJA
標準関数を自分で定義したものに置き換える方法ありませんか。
0241nobodyさん2012/01/05(木) 11:48:53.94ID:???
PHPのソース書き換えてビルドかな
じゃなければmyTrim()とかmyPhpinfo()みたいにプレフィックスでも付けて差別化するしかない
0242nobodyさん2012/01/05(木) 11:55:13.54ID:ACIe1UJA
ソース書き換えなしで不具合の出る関数の動作を修正したかったのですが。
PHPコードからではできないですか。
諦めて別名でやってみます。
0243nobodyさん2012/01/05(木) 12:05:52.58ID:???
>>230
それはC/C++ソースをコンパイル時にアセンブラ出力して書き換えるようなもの。
無駄をなくすとすれば機械語、アセンブラにたどり着く。
しかし開発効率からそのあたりには手を出さず、PHPやC/C++のコードの範囲でできる事をした方が良い。
0244nobodyさん2012/01/05(木) 12:15:28.46ID:???
いま荒らしてる人って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
0245nobodyさん2012/01/05(木) 12:28:51.85ID:???
HIPHOPの実行ファイルはPHP上で動くんじゃないだろ。
どれだけPHPが高速化できたとしても、リソースの少なさ、速度の速さではネイティブ実行形式が上だろ。
0246nobodyさん2012/01/05(木) 12:43:16.59ID:WqkweKyi
結局のところ、アプリケーションスコープの代替ってみなさんどうされています?
0247nobodyさん2012/01/05(木) 12:50:18.95ID:???
ニートが目覚めたな
0248nobodyさん2012/01/05(木) 12:52:26.30ID:???
いい歳して可哀想なもんやで
0249nobodyさん2012/01/05(木) 12:57:19.29ID:???
Javaで挫折したニートのオッサンだろう
シングルトン・マルチスレッド・アプリケーションスコープ、全部理解してないからな
0250nobodyさん2012/01/05(木) 13:02:42.94ID:???
まぁプログラマーはここにいるおっさんのように池沼になるリスクをはらんでるよな
精神病むには最適な職種と言える
0251nobodyさん2012/01/05(木) 14:48:43.61ID:r8xFdMd/
配列のキー指定で
$ary[expr1 ? expr2 : expr3]ってしたとき
expr3の結果を$ary[]にする方法ってないよね

ちなみにnullや''は空文字列で[]とは違う
0252nobodyさん2012/01/05(木) 14:56:30.73ID: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に用意されているファンクションなんでしょうか?
0253nobodyさん2012/01/05(木) 14:57:37.19ID:???
だれか翻訳頼む
0254nobodyさん2012/01/05(木) 14:58:56.94ID:???
class SQLのメンバ
0255nobodyさん2012/01/05(木) 15:09:18.10ID:???
$this->の時点で気付こうよ
0256nobodyさん2012/01/05(木) 15:09:19.83ID:???
一回PHPのクラスで何が出来るか勉強してくるべき
0257nobodyさん2012/01/05(木) 15:20:05.60ID:???
クラスを知らないか、理解していない人の相談なんです。
0258nobodyさん2012/01/05(木) 15:22:06.79ID:FPSYlk7p
すみません。クラスをちゃんと理解していませんでした
class SQLの中にrecordというファンクションがなかったので
もともと用意されている何かだとおもったのですが
ググってもでてこなかったので聞いてみました。

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

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

>if ($limit) return array_slice($this->record, $offset, $limit);
これ見たらあー配列なんだなってわかるし
つーことは、名前からしても$this->recordにはどこかでSELECTの結果かなにかを配列としてセットしてるメンバだとわかるだろう
0261nobodyさん2012/01/05(木) 15:26:51.23ID:???
>>258
recordというデータメンバもないですか。
親クラスがあればそちらにも
02622522012/01/05(木) 15:29:33.28ID: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;
}
0263nobodyさん2012/01/05(木) 15:30:55.18ID:???
>>259
そーゆーことならフレームワークのスレへ
ただSQL書かないで最適なクエリを発行することはまず無理だと思う
DB抽象化ライブラリがインデックスまで把握して最適なクエリを発行してくれるものがあればオレも欲しい
02642522012/01/05(木) 15:31:28.29ID:FPSYlk7p
ソースは262なんですけど
5行目のprotected $record = null
で定義しているからしたで使えているということなんですか?;
0265nobodyさん2012/01/05(木) 15:31:53.77ID:???
>>262
>protected $record = null;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

宜しくお願いします。
0383nobodyさん2012/01/07(土) 04:09:55.44ID:WBJb+YlP
すいません。あげ忘れました。
0384nobodyさん2012/01/07(土) 05:13:49.57ID:???
>>382
http://jp.php.net/manual/ja/reserved.variables.get.php
0385nobodyさん2012/01/07(土) 10:13:48.06ID:???
>>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に範馬勇次郎って表示させる的なこと聞いてるの?
0386nobodyさん2012/01/07(土) 10:15:50.66ID:???
GETを理解してないのにAmazonのAPIが使えたところが謎だけど
その本とやらを窓から投げて1から学習したほうが身につきそうだな
0387nobodyさん2012/01/07(土) 10:19:13.10ID:???
>>385
質問よく読めよ
しかもなんでprototype限定なんだよキョウビprototypeなんか使ってるやつほとんどいねーよ

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

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

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

教えてやったからコーラ買ってこいよ
0429nobodyさん2012/01/07(土) 13:32:01.36ID:???
IPやクッキーや携帯固有番号とかつかえ
0430nobodyさん2012/01/07(土) 13:39:14.31ID:???
>>384
ありがとうございます。
0431nobodyさん2012/01/07(土) 13:44:51.23ID:???
この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";
?>
0432nobodyさん2012/01/07(土) 13:53:19.27ID:???
またおっさん頓珍漢なこと書いてるし
マジで頭おかしいんじゃねーの
0433nobodyさん2012/01/07(土) 14:06:41.50ID:4WAxjW+f
>>428-429
ありがとうございます
しかしながら投稿時間とIPアドレスを保存して一定時間経過してない場合はエラーを返して終了する処理をしても多重投票されてしまいます。
国内サーバーの場合は問題ないのですが海外サーバーの場合レスポンスが遅いのでそれが原因でしょうか?
0434nobodyさん2012/01/07(土) 14:13:32.73ID:???
ソース晒したら問題に答えるよ
0435nobodyさん2012/01/07(土) 14:20:46.31ID:???
ただのPC向けサイトだったら

session_start();

$delay = 120; // 120秒制限

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

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

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

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

>>438
恥ずかしながらソース晒します笑わないでください
0440nobodyさん2012/01/07(土) 15:27:18.81ID: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);
0441nobodyさん2012/01/07(土) 15:34:21.95ID:???
>>440
438じゃないけど
regtimeと$delayの比較が逆じゃない?

あとそのロジックだと1codeにregtimeとIPが1つずつしかないから
違うIPの人が交互に投票すれば制限なくなりそうだけど
0442nobodyさん2012/01/07(土) 15:36:45.34ID:???
あごめん、引っかかったらエラーだからいいのか。
0443nobodyさん2012/01/07(土) 15:47:58.06ID: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);
0444nobodyさん2012/01/07(土) 15:54:48.70ID:???
>>443
440のソースでやってみたらF5連打しても多重投票されなかったけど
0445nobodyさん2012/01/07(土) 15:56:38.23ID:???
ipだけ記録して24時間毎にデータベースを初期化すれば良い。
0446nobodyさん2012/01/07(土) 15:57:13.89ID:???
>>445
それだと初期化する1分前に投票して初期化後にまた投票できるぞ
0447nobodyさん2012/01/07(土) 16:00:43.57ID:???
いつ初期化されるのか確認するやつもいないだろ。
サーバーの処理が少ない方がいいんだ。
1分後に投票できたとしても次にできるまで24時間かかる。大した不正にならない。
0448nobodyさん2012/01/07(土) 16:33:03.74ID:4WAxjW+f
>>444
はい自宅の環境でも問題なかったです
しかしながら海外のレスポンス遅いサーバーでやると多重投票されてしまうのです

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

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

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

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

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

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

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

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


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

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

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

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

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


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


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


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

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

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

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

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

こっちに詳しく書いてあるから、勉強してね。
http://quercus.caucho.com/quercus-3.1/doc/quercus.xtp
0517nobodyさん2012/01/09(月) 01:23:11.79ID:???
>>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.

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

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

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

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



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

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

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

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

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

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

と同じ意味で変だよ。
phpはC言語やJavaで実装されるのにその言い方はないのでは?
0536nobodyさん2012/01/09(月) 02:51:49.24ID:???
>>505-536
スレチ

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

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

おもろい。
0554nobodyさん2012/01/09(月) 14:27:21.52ID:7f0AwpQn
安藤優子、木村太郎は、某プロパイダの社外取締役、かつ、安藤は、フジ社外の人間にもかかわらず、フジテレビジョンのM&Aの最中、フジのホワイトナ
イトの【親会社】の本業を無視して、「インターネットは虚業だ。具体性がない
。」というようなことをコメントしました。この虚業は、livedoorを指していた
としても、「同業者」であったということは、非常に、違和感を感じずには、い
られません。
0555nobodyさん2012/01/09(月) 17:05:12.94ID:???
さぁ冬休みも今日でおしまいですよ
0556nobodyさん2012/01/09(月) 18:22:21.45ID:IGqUpTKq
exitとdieって同じ働きってphpマニュアルに載ってました、
みささんはどっちを使ってますか?
0557nobodyさん2012/01/09(月) 18:23:58.57ID:???
dieはexitのエイリアス
joinがimplodeのエイリアスみたいなもん
どちらかといえばオリジナル使え
0558美佐2012/01/09(月) 18:24:11.49ID:???
あたしはexit派よ
0559nobodyさん2012/01/09(月) 18:31:34.53ID:???
>>476
2chのは、疑わしきは通さずで、公開proxyじゃなくても通さなかった。
0560nobodyさん2012/01/09(月) 18:33:25.70ID:???
無知は怖い。
0561nobodyさん2012/01/09(月) 19:41:08.39ID:???
>>559
そうだったとしても、2chのチェッカー通せば多くの広告やスパムをはじけて良いと思う。
0562nobodyさん2012/01/10(火) 00:05:10.49ID:???
アプリケーションサーバーはどんなもの使ってらっしゃいますか?
0563nobodyさん2012/01/10(火) 00:06:30.20ID:???
>>1
0564nobodyさん2012/01/10(火) 00:35:57.99ID:OfX0eCZx
sshってphpは関係あるのですか?
0565nobodyさん2012/01/10(火) 00:37:38.41ID:???
関係ありません
05665622012/01/10(火) 02:01:24.77ID:???
>>563
【OS名】CentOS 5.6
【PHPのバージョン】5.3.8
【連携ソフトウェア】
Apache Http Server 2.2
MySQL Community Server 5.5.19
0567nobodyさん2012/01/10(火) 02:25:09.67ID:???
>>1
05685622012/01/10(火) 03:15:44.30ID:5jaiW7yr
>>567


>>562
0569nobodyさん2012/01/10(火) 03:20:22.76ID:???
◆質問する時の注意
・ 質問者として、態度をわきまえること。
05705622012/01/10(火) 03:22:55.62ID:5jaiW7yr
>>569

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

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

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

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

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

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

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

で、ページ内に戻るボタンを設置して行き来させるならそのまま$_POSTを引き回せばいい
前のページの値はhiddenに入れておいてもいいしsessionが良ければsession使ってもいい
session使った場合に$_POSTと同期させる方法は代入なりなんなり好きなようにやればいい
0586nobodyさん2012/01/10(火) 19:10:58.95ID:???
もうこのスレでお世話にならなくても解決できる力が身に付きました
これも皆様のア辛口による熱血指導の賜物です
卒業式は3月にやりますのでよろしくお願いします
0587リボンちゃん2012/01/10(火) 19:45:37.78ID:cS2s7PkD
phpについて、困っています。

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

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

0588nobodyさん2012/01/10(火) 20:01:42.81ID:???
>>587
$date = 書き込んだ日;
$date = mktime($date);
$now = time();
$date = $now - $date > 60*60*24*10 ? 10 : $date;
0589nobodyさん2012/01/10(火) 20:02:28.76ID:???
あ、ごめん、最後の行読んでなかった
0590nobodyさん2012/01/10(火) 20:03:08.26ID:???
>>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);
0591nobodyさん2012/01/10(火) 20:03:29.35ID:???
あ、ごめん、よく読み直したら全然ちがったw
05925902012/01/10(火) 20:14:05.38ID:???
>>588,589591 は違う人
0593nobodyさん2012/01/10(火) 20:28:04.95ID:???
回答も含めて色々ひどいな

$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);
05945872012/01/10(火) 21:08:57.11ID:???
皆さん、レスありがとうございます!
すごい助かります!

60 * 60 * 24 * 10 の10は10日前という数字だとわかりますが、
他の数字60,60,24 の意味を教えていただけると勉強になります。
よろしくお願いしますm(_ _)m
0595nobodyさん2012/01/10(火) 21:16:12.68ID:???
60 * 60 * 24 = 1日
1秒をかけてる
0596nobodyさん2012/01/10(火) 21:17:14.75ID:???
>>593
$_SERVERは使うな!!!!!!!!!!!!!!!
getenvを使えっ!!!!!!!!!!!!!!!!!!!!
0597nobodyさん2012/01/10(火) 21:17:39.58ID:???
60秒 * 60分 * 24時間 = 1日
0598nobodyさん2012/01/10(火) 21:28:09.69ID:???
>>596
公開するプログラムでもあるまいに、
自分の環境チェックもしないやつになっちまうだろ。
0599nobodyさん2012/01/10(火) 21:34:28.20ID:HU7fZVh4
データベースをPDOにてプレースホルダを利用し、変更したいのですが、質問させてください
カラム名がaaa、bbb、cccとして、
その内の一つ、または複数の値を変更するような場合にはどのように記述すればいいのでしょうか?

マニュアルなどを見ると、VALUESのようにデータベースに与える値をプレースホルダに割り当てるのは分かるのですが、
自分は値だけでなく、カラム名にも変数を割り当てたいのです
prepare('UPDATE table SET $name = :name WHERE $url = :url')のような型です
まさかprepare('UPDATE table SET :name1 = :name2 WHERE :url1 = :url2')のような型にはできないでしょうし
この場合、どのように記述すればいいのでしょうか?
0600nobodyさん2012/01/10(火) 21:34:55.57ID:???
>>596
は?その根拠は?
おまえENVの意味もわかってないだろどうせ
0601nobodyさん2012/01/10(火) 21:37:15.54ID:???
>>599
SQLごとに作れ
0602nobodyさん2012/01/10(火) 21:39:00.09ID:???
>>599
普通に
UPDATE table SET col1=? WHERE col2=?
でいいんじゃねーの
カラム名に変数割り当てるなら上を
"UPDATE table SET {$col1}=? WHERE {$col2}=?"
すりゃいいじゃん
06035872012/01/10(火) 22:25:58.95ID:???
みなさんレスありがとうございます。
とても助かります!

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

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

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

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

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

しらんがな
どんなソースになってるのかもわからんし
0606nobodyさん2012/01/10(火) 22:40:12.89ID:???
>>600
ggrks
0607nobodyさん2012/01/10(火) 22:42:27.44ID:???
>>603
$dateの中身を書きなさい
0608nobodyさん2012/01/10(火) 22:49:22.50ID:???
素人相手に偉そうに語るのがこのスレです。
0609nobodyさん2012/01/10(火) 22:49:50.87ID:DbdGI1rD
【OS名】CentOS 5.5
【PHPのバージョン】5.2.17
【連携ソフトウェア】MySQL GD
【質問内容】
GDの機能を使って画像を作成して、データベースに入れていくのですが、
imagepng()とかで画像をファイルに保存したり、ブラウザに出したりしますよね?
これの出力結果を直接文字列として変数に格納したいのですが、どうすればよいでしょうか?
$data = imagepng()とかも試してみましたが、trueしか返ってきませんでした。
06105872012/01/10(火) 22:52:45.04ID:???
ありがとうございます。
すいません、違うところのエラーですか。(^^;


メールで投稿する形式の掲示板で、メールサーバーに
投稿記事を取りに行く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と書いたところに日時が表示されています。
0611nobodyさん2012/01/10(火) 22:54:19.13ID:DbdGI1rD
自己れす。下記で行けそうです。
ob_start();
imagepng($resource);
$data = ob_get_contents();
ob_end_clean();
0612nobodyさん2012/01/10(火) 22:56:28.46ID:???
>>609
ヒント:base64_encode

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

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

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

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


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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

学習不足で申し訳ないです
0664nobodyさん2012/01/12(木) 01:50:16.25ID:???
>>662
なぜPHPを使っているのですか?
0665nobodyさん2012/01/12(木) 02:58:10.26ID:KRgm5yh1
やっぱりphpでは並列無理ぽ。
0666nobodyさん2012/01/12(木) 03:08:54.02ID:???
ニートおっさんには無理
0667nobodyさん2012/01/12(木) 03:25:30.76ID:???
>>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.
0668nobodyさん2012/01/12(木) 03:39:54.92ID:???
>>667
できてない。
0669nobodyさん2012/01/12(木) 03:43:15.46ID:???
並列と分散はPHPの泣きどころ。
0670nobodyさん2012/01/12(木) 03:52:56.74ID:???
かろうじて並列できても実用性は全くないことに気づけよ
0671nobodyさん2012/01/12(木) 04:51:39.62ID:???
同じやつが同じ話題を繰り返してるんだな
0672nobodyさん2012/01/12(木) 05:35:36.73ID:???
>>668
どういうこと?
0673nobodyさん2012/01/12(木) 10:36:29.57ID:???
>>663
これって実行には何秒かかったんだろ。
0674nobodyさん2012/01/12(木) 12:24:55.33ID:???
>>664 >>665 >>668 >>669 >>670 は並列処理を理解できてない馬鹿。
0675nobodyさん2012/01/12(木) 12:27:31.97ID:???
>>667
>>663
実行環境(カーネル)の違いでプロセスの優先度が変わるのかな?
0676nobodyさん2012/01/12(木) 13:02:25.38ID:???
PHPにはpcntl_forkというプロセスをフォーク(複製)することが
できる関数がありますが、これはPHPをCGIモードで
動かしている場合にのみ有効です。
通常はPHPをApacheモジュールとして動作させていることが
多いので、これが使えないケースが多々あります。
http://techblog.ecstudio.jp/tech-tips/php-multi.html
0677nobodyさん2012/01/12(木) 13:15:01.92ID:???
っていうか、何でPHPで作ることにこだわってんだ?
Perlで良いじゃん。
0678nobodyさん2012/01/12(木) 13:19:01.14ID:???
>>676
pcntl_fork関数は存在するし、forkも成功したように見えるけど、並列処理されないなんて結果になるということですか
0679nobodyさん2012/01/12(木) 14:01:06.08ID:???
ちなみに俺も>>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です
0680nobodyさん2012/01/12(木) 14:01:29.80ID:QAUYYhrI
phpとmysqlでカウンターが作りたいのですが
書き込むときの排他制御はどのようにやるのでしょうか?
0681nobodyさん2012/01/12(木) 14:01:52.50ID:???
>>676
CLIでも使えるよね?
0682nobodyさん2012/01/12(木) 14:02:25.17ID:???
もういい加減ニートのおっさんは飽きた
06836792012/01/12(木) 14:02:52.80ID:???
書き忘れたけど、この出力結果みると並列処理ってされてない・・・んだよね?
0684nobodyさん2012/01/12(木) 14:10:41.80ID:???
基本的にはマルチスレッドはサポートされてないだろ。
レンタルサーバーとかでは。
自宅で一人で使う目的だったらマルチスレッドをONにしてコンパイルすればいい。
しかしソースコードに汎用性が無くなる。
Curlをつかっとけ。5.3か5.2から標準で並列に使える。
0685nobodyさん2012/01/12(木) 14:15:13.44ID:???
forkだからマルチスレッドの話ではないでしょ。
0686nobodyさん2012/01/12(木) 14:16:07.48ID:???
PHPがサポートするプロセス制御機能は、デフォルトでは有効となってい ません。
プロセス制御機能を有効にするには、 configure のオプションに --enable-pcntl を付け、
CGI 版あるいは CLI 版の PHP をコンパイルする必要があります。
注意: 現在、このモジュールは非 Unix 環境(Windows)では動作しません。
http://www.php.net/manual/ja/pcntl.installation.php
0687nobodyさん2012/01/12(木) 14:18:28.39ID:???
>>686
何が言いたいの。
06886792012/01/12(木) 14:27:53.78ID:???
>>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;
のように書いた
0689nobodyさん2012/01/12(木) 14:28:15.56ID:???
実行結果は
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秒後に表示された
これってどういうこと?
並列処理されていないってことだよね?
0690nobodyさん2012/01/12(木) 14:30:51.41ID:???
なんでそんなトンチンカンなことが平気で言えるのか
system('php forkc1.php');
system('php forkc2.php');

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

>>811
ありがとう。

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

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

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

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

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

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

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

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

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

で、ちょっと作ってみたのがこれです。急ごしらえで下手ですが。。
(作った当時はクッキーが必要だと思わなかったのでPOSTのみで作ろうとしていました)↓
0837nobodyさん2012/01/15(日) 12:47:26.29ID: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">
0838nobodyさん2012/01/15(日) 12:48:13.43ID:???
5つのアドを一箇所でうければいいだけじゃね
gmailは複数アドを統合できるじゃん
0839nobodyさん2012/01/15(日) 12:48:23.76ID: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);
0840nobodyさん2012/01/15(日) 12:50:58.88ID:???
>>838
>gmailは複数アドを統合できるじゃん
そういえばそうか!
わざわざphpでアクセスしないでそうすればいいのか(汗
0841nobodyさん2012/01/15(日) 12:51:08.49ID:???
そもそも外部のフォームからのPOSTでログイン受け付けてくれるのか疑問
それを弾くくらいのセキュリティ対策はしてありそうだけど
0842nobodyさん2012/01/15(日) 12:59:11.49ID:???
googleさんつよすぎわろた
0843nobodyさん2012/01/15(日) 12:59:28.34ID:5+piCYsS
>>841
>外部のフォームからのPOSTでログイン受け付けてくれるのか疑問
自分は楽天でショッピングするのですが、楽天(https)だとPOSTで大丈夫なんですよ。
それ用のサインインphpプログラムも作りましたし・・・。
だからGMailサインインphpプログラムも楽天サインインphpプログラムと
同じindex.phpページにまとめて、1つのindex.phpページからなんにでもサインインできる、
そんな index.phpページを作ろうと思っていたのです
0844nobodyさん2012/01/15(日) 13:21:27.83ID:5+piCYsS
ちなみに>>837,>>839の「class="g-button g-button-submit" 」は不要です。

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

他の人の意見に従って俺は知らないけどAPIとか統合とか使った方がいい
今から1週間粘っても、ここで質問しても無理だと思う
0850nobodyさん2012/01/15(日) 14:05:55.91ID: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の値を比較しているみたいです。)
0851nobodyさん2012/01/15(日) 14:07:18.18ID: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);
0852nobodyさん2012/01/15(日) 14:15:46.68ID:5+piCYsS
>>850
×(WebブラウザのクッキーGALXの値とPOSTのGALXの値を比較しているみたいです。)
○(WebブラウザのクッキーGALXの値とPOSTのGALXの値が同一であるか比較しているみたいです。)

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

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

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

まずは交友関係をじっくり説明することになるんだろうな
児童ポルノ禁止法違反で検挙とか恥ずかしすぎるw
0870nobodyさん2012/01/16(月) 01:42:52.98ID:???
>>862本人だろうが、友人だろうが関係なく重要参考人として警察んとこ行くべきだな
0871nobodyさん2012/01/16(月) 02:01:53.33ID:???
>>862が未成年なのはガチなようだな
この慌てようwwwww
0872nobodyさん2012/01/16(月) 02:23:06.43ID:???
>>868
実名報道されなかったとしても家族にはばれるけどね。
学生なら学校にも、バイトしてるならバイト先にも。
0873nobodyさん2012/01/16(月) 02:25:18.83ID: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 が存在するか判断して、
存在すればそのままそれを返す、存在しなければ生成して表示させる、

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

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

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

PHPの質問じゃないけどね!
0879nobodyさん2012/01/16(月) 17:40:20.70ID:l7Fd5fgU
.NET interoperability overview of Phalanger 3.0
http://www.php-compiler.net/blog/2012/net-interoperability-overview-of-phalanger-3-0
0880nobodyさん2012/01/16(月) 20:49:09.11ID:w74ctwP8
if (!$edit){
}

この式って$editがどんな値の時にtrueですか?
0881nobodyさん2012/01/16(月) 21:22:20.46ID:???
>>880
マニュアルは見てみたかい?
0882nobodyさん2012/01/16(月) 21:27:09.05ID:???
0かnullかfalseか''の時true
わかったかハゲ
0883nobodyさん2012/01/16(月) 21:45:06.81ID:???
ツンデレめ
0884nobodyさん2012/01/16(月) 21:49:17.22ID:???
>>882
それだけじゃないよ
0885nobodyさん2012/01/16(月) 21:51:58.51ID:???
なんだとハゲが
じゃあこれも追加な
array()
あとは他のハゲどもに聞いてくれ
0886nobodyさん2012/01/16(月) 22:27:47.15ID: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の方が早いのだろうと期待して替えようと思っていたのですが
0887nobodyさん2012/01/16(月) 23:03:24.97ID:guznNntQ
$lang[0] =$lang0;
$lang[1] =$lang1;
$lang[2] =$lang2;
を、
for ($i = 0; $i < 4; $i++) {
$lang[$i] =$lang.$i;
}
とするとうまくエラーがでます。どうすればいいのですか?
0888nobodyさん2012/01/16(月) 23:11:11.54ID:???
>>887
上手く出るならそれでいいんじゃないの
0889nobodyさん2012/01/16(月) 23:12:27.38ID:guznNntQ
間違えました、
for ($i = 0; $i < 4; $i++) {
$lang[$i] =$lang.$i;
}
でうまくいかず、エラーが出ます。どうすればいいのですか?
0890nobodyさん2012/01/16(月) 23:28:27.47ID:???
>>887
$hoge = "lang" . $i;
$lang[$i] = $$hoge;
0891nobodyさん2012/01/16(月) 23:34:43.93ID:???
ループの終了条件
0892nobodyさん2012/01/16(月) 23:41:38.95ID:???
条件あるじゃん$i < 4だろ
つまり$iが4まできたら終了じゃん
0893nobodyさん2012/01/16(月) 23:41:54.01ID:guznNntQ
>>890
ありがとうございました。
0894nobodyさん2012/01/17(火) 00:12:00.49ID:EiaeWEuH
PHPで分散トランザクションはどのように行えばよろしいでしょうか?
0895nobodyさん2012/01/17(火) 02:14:09.51ID:???
また発作か
0896nobodyさん2012/01/17(火) 02:49:14.01ID:???
は、はっさく?
0897nobodyさん2012/01/17(火) 04:03:01.94ID:BgcdxtCD
PHPでアプリケーションスコープはどのようにしたら実装できますか?
0898nobodyさん2012/01/17(火) 10:52:09.01ID: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/
0899nobodyさん2012/01/17(火) 11:06:15.39ID:???
でっていう
0900nobodyさん2012/01/17(火) 11:56:51.84ID: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 は使えないということですか?
0901nobodyさん2012/01/17(火) 11:58:32.11ID:???
重要でもないしそんな変数使わないから気にしないでいい
$_POST使いな
09029002012/01/17(火) 11:59:30.14ID:5qimSQwE
ちなみに、別な本についてきたxamppで一緒にPHPをインストールしたのですが
C:/xampp/php/php.ini-recommended をエディターで開いてみると
register_long_arrays = Off になっていますが、サンプルコードを書いてみると
$HTTP_POST_VARS でも、POST送信されたデータを受け取れています。
どこか、勘違いしているのでしょぅか。
0903nobodyさん2012/01/17(火) 12:00:19.53ID:5qimSQwE
>>901
あっ、素早いお返事ありがとうございました。
おすすめのとおり、気にしないで進むことにします。ありがとうございました。
0904nobodyさん2012/01/17(火) 12:07:42.39ID:???
$HTTP_POST_VARSでマニュアル見ればすごくわかりやすく書いてあるのになぜマニュアルを読もうとしない
しかも$HTTP_POST_VARS [非推奨]っておもっくそ書いてある

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

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

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

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

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

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

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

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

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

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

で、register_long_arrays = 1 と表示されます。
1 ってことは true?つまり on ってことですか?
0927nobodyさん2012/01/17(火) 21:09:35.25ID:???
>>926
つもりというと?どこでどう設定したの?
0928nobodyさん2012/01/17(火) 21:16:11.03ID:RFWc5FPN
>>927
あああああああ、そういうことかーーー!
やっとわかりました!もう一度読み直してやってみます!
0929nobodyさん2012/01/17(火) 21:18:55.06ID:???
いや、聞いてるんだけど
0930nobodyさん2012/01/17(火) 21:42:05.49ID:???
>>902のすぐあとに>>924のようなレスがつかないこのスレは一体なんなんだ。
0931900=9282012/01/17(火) 22:05:54.75ID: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
0932nobodyさん2012/01/17(火) 22:06:46.79ID:???
>>931
もしかして : 再起動してない
0933nobodyさん2012/01/17(火) 22:08:14.72ID:???
Phalanger 3.0 (2012年1月) をリリースしました。
http://awabi.2ch.net/test/read.cgi/poverty/1326781620/
0934900=9282012/01/17(火) 22:10:15.34ID:RFWc5FPN
明日、もうすこし頭を冷やして、やり直してみます。
みなさん、ありがとうございました。
0935nobodyさん2012/01/17(火) 22:14:34.38ID:???
とりあえずそんなの放置でもかまわんよ
使わなきゃいいだけ
0936nobodyさん2012/01/17(火) 22:14:59.64ID:???
いいってことよ
0937nobodyさん2012/01/17(火) 22:15:33.02ID:???
>>934
>>932が言うように、apacheの再起動はした?
0938nobodyさん2012/01/18(水) 01:52:47.82ID:???
>>934
server.xmlは設定したか?
0939nobodyさん2012/01/18(水) 06:55:41.17ID:???
いつもの人の釣りでしょ
0940昨日の900です2012/01/18(水) 12:25:21.19ID:0vYhYlXk
>>932-938
あれこれ、ちょっとずつ変えてつつテストしていたので、再起動したつもりでしたが
再起動していなかったのかもしれません。

今日テストしたら register_long_arrays = 1 にならなくなりました(null?)
そして、$HTTP_POST_VARS の値も取れなくなりました!(希望していた結果)
結局設定の間違いだったんですね。みなさん、ありがとうございました!
0941nobodyさん2012/01/18(水) 20:35:59.70ID:RSdYNb3w
phpで同じデータベース内の複数のテーブル(テーブルAAA,テーブルBBB)から
データを取得することはできますか。
0942nobodyさん2012/01/18(水) 20:43:03.50ID:???
>>941
質問の意味がわからないけどJOINしてってこと?
phpでDBを操作することは可能
0943nobodyさん2012/01/18(水) 21:02:32.35ID:RSdYNb3w
あ、sql文でしたね。
AAAの中には1,2,3、BBBにはa,b,cというデータが入っていて
select * from AAA;、select * from BBB;とやれば両方のデータを表示
させることはできますが、それを一文で行いたいです。

おそらく板違いですね。
すいません。
0944nobodyさん2012/01/18(水) 21:05:09.30ID:WXefSCFo
配列を検索し、その中の数字を抽出、その数字が添え字となっている配列に入れるにはどういった関数をどう使えばいいのでしょうか。
下の例の場合だと、配列$resを全て検索し
$res[1]の内容である ">>6 あいうえお"の中の6を抽出して添え字とし、$naiyo[6]に入れたいです。

例)
$res[0]=php; $res[1]=>>6 あいうえお; $res[2]=かきく;
echo $naiyo[6];

実行結果
>>6 あいうえお
0945nobodyさん2012/01/18(水) 22:26:58.74ID:???
やりたいことがそのまま書かれているんだけど、それを一発でやる関数を探してんの?
まとめツールとかあるらしいからそっち使いなよ。
0946nobodyさん2012/01/18(水) 22:32:46.84ID:???
その程度のスキルで2chレスまとめ機能を作ろうなんて100年早い
0947nobodyさん2012/01/18(水) 22:41:43.55ID:???
>>944
簡単だけど、
>>6がダブったらどうする?
0948nobodyさん2012/01/18(水) 23:45:44.09ID:Sa+NyfvK
掲示板作るときSQLで作るメリットデメリットとテキストに保存するメリットデメリットを教えてください
0949nobodyさん2012/01/18(水) 23:51:26.64ID:???
宿題?
0950nobodyさん2012/01/19(木) 00:00:03.11ID:Ktv6i/gX
今から作るので
0951nobodyさん2012/01/19(木) 00:04:58.00ID:???
PHP関係あんの?
0952nobodyさん2012/01/19(木) 00:10:32.70ID:Ktv6i/gX
phpでつくるので
0953nobodyさん2012/01/19(木) 00:18:37.88ID:???
データ層の実装方式をどうするかという話だからPHP関係ないよ
まずはWeb3層モデルから勉強するのがおすすめ
0954nobodyさん2012/01/19(木) 00:29:15.94ID:Ktv6i/gX
なるほど、階層分離しておけばデータ層の実装は入れ替え可能なわけですね

実用的な話として1日100万pvぐらいのテキストメインのサイトだと
プレゼンテーション層をphp、
データ層ををmysqlにして10万ぐらいのサーバーで耐えれるもの
でしょうか?
0955nobodyさん2012/01/19(木) 00:42:25.32ID:???
プレゼンテーション層がPHP・・・?
0956nobodyさん2012/01/19(木) 00:44:01.67ID:Ktv6i/gX
ユーザーインターフェースという意味です。
0957nobodyさん2012/01/19(木) 00:48:53.91ID:???
>ユーザーインターフェースがPHP
まずはWeb3層モデルから勉強するのがおすすめ
0958nobodyさん2012/01/19(木) 01:25:44.80ID:BlJkb0zk
ログ書き込み処理なんです・・・これが最高の方法でしょうか?
$fp = fopen($logfile , "r+");
       stream_set_write_buffer($fp, 0);
       flock($fp ,LOCK_EX);
$lines = array();
while(!feof($fp)){
$arr = fgets($fp,1024);
array_push($lines,$arr);
for($i = 0; $i < count($lines); $i++)
fputs($fp, $lines[$i]);
reset($lines);
fclose ($fp);

0959nobodyさん2012/01/19(木) 02:35:11.87ID:iXCkd0MA
芸能人クラスがあって、100人の芸能人を処理するとき、
100個のオブジェクトを作るのが正解?
0960nobodyさん2012/01/19(木) 02:40:29.79ID:???
7. アプリケーション層HTTP ? DHCP ? SMTP ? SNMP ? FTP ? Telnet ? AFP ? X.500

6. プレゼンテーション層SMTP ? SNMP ? FTP ? Telnet ? AFP

5. セッション層TLS ? NetBIOS ? NWLink ? DSI ? ADSP ? ZIP ? ASP ? PAP ? 名前付きパイプ

4. トランスポート層TCP ? UDP ? SCTP ? SPX ? NetBEUI ? RTMP ? AURP ? NBP ? ATP ? AEP

3. ネットワーク層IP ? ARP ? RARP ? ICMP ? IPX ? NetBEUI ? DDP ? AARP

2. データリンク層イーサネット ? トークンリング ? アークネット ? PPP ? フレームリレー
OSI参照モデル - Wikipedia
0961nobodyさん2012/01/19(木) 03:46:47.66ID:???
お前ら構うなよ
レス見ればいつものやつっってわかるだろ
0962nobodyさん2012/01/19(木) 04:05:15.24ID:???
>>959
他にどう考えてるかを書けばレスがつく
0963nobodyさん2012/01/19(木) 10:19:22.80ID:???
pokemonというクラスを作ればピカチュウもフシギダネもそこで管理できる。
だけどポケモンの中には例外があって、進化が分岐するイーブイやバルキー、進化で二種類のポケモンが出てくるツチニン、特定条件で能力値が変わるデオキシスやヒヒダルマ、
これらはこれ専用の例外として管理する必要が出てくるんで、
この場合pokemonを継承したクラスを個別に割り当て、
割り当て後はpokemonクラスとして扱うのが、拡張や管理的にあってる。

だが芸能人を管理するならインターフェースでやるべきだろうな。
説明する余白が足りないので、ここには書ききれないが。
0964nobodyさん2012/01/19(木) 10:25:32.35ID:SD5/h1AI
>>963
OOPに特化されてないPHPで処理するデータ全部をオブジェクトにしていいもんですか?
100個もオブジェクトを作ってアホかとか言われそうなもんで
0965nobodyさん2012/01/19(木) 10:34:40.81ID:???
ここで聞くより上司に聞いたら?
仕事じゃないならそんなのあなたの勝手よ。
0966nobodyさん2012/01/19(木) 11:13:56.61ID:???
特化してないけど、極端に遅くなるわけじゃない。
必要であればたかだか100個くらい作ればいい。
0967nobodyさん2012/01/19(木) 13:31:03.44ID:H4RH65I0
例えば、データベースなどを監視していて
(変更を知らせさえできれば常時監視していなくてもいいのですが)、
変更や新規追加などがあった場合に即座にそれに(その部分に)対応するスクリプトが呼ばれるようにしたいと
思うのですが、このような実装にはどのようにすればいいのでしょうか?

イメージが簡単だと思うので、ここではデータベースを例にとりますが、
DB変更 -> 成功時にDBやメモリにフラグを立てる
-> そのフラグを一定時間毎に確認に行くスクリプト -> TRUEなら処理を始める
のようなものは考え付くのですが、
変更もないのにフラグを一定時間毎に確認に行くスクリプトが実行されたり、
リアルタイム性を求められる場合にそれでは時間差が致命的になったりします。

DB変更成功時にsystem()を使ってフラグ確認スクリプトの実行とかも考えたのですが、
何かいい方法はないものでしょうか?
アドバイス頂けたらと思います。
0968nobodyさん2012/01/19(木) 13:36:57.41ID:???
トリガじゃなくて?
0969nobodyさん2012/01/19(木) 13:47:12.23ID:???
変更したときに処理すればいいだろ。
0970nobodyさん2012/01/19(木) 13:56:19.37ID:H4RH65I0
>>968
あっ、トリガです
書いていた時、何故か名前を思い出せなくて(汗)

>>969
基本的にCLIでのスクリプト処理になるのですが、
処理を分担したいと思いまして
また、言語もPHPだけではなくPythonとかも絡めて使おうと思っています
実際はもっと複雑ですが、簡単に書くと、PHP -> Python -> PHPとしたいと考えております
なもんで、DBなどが変更になった際に即座にPHPスクリプトを呼び出すとかしたいと考えております

宜しくお願いします
0971nobodyさん2012/01/19(木) 14:24:05.75ID:???
PHPと関係ないだろ。
データベースを書き換えたらPHPスクリプトを呼び出すか、データベースを監視してPHPスクリプトを呼び出せよ。
前者の方が常駐しない分、優れてると思うが。
0972nobodyさん2012/01/19(木) 14:28:30.57ID:???
後者はデータバックアップソフトで、更新があったらバックアップをとるようなソフトの仕組みと同じ事だろ。
OS固有の監視機能を使うか、whileなどで定期監視。
0973nobodyさん2012/01/19(木) 14:49:05.54ID:???
>>958
これはひどい

ログみたいなものだったらfile_put_contents()で1行ずつappendしていったらいいだろ
0974nobodyさん2012/01/19(木) 15:10:13.93ID:nuUVl5ly
教えてエロイ人

どーやって勉強すればイイ
右手休めて、さっさと教えれや

求職ちゅうの無職27歳
0975nobodyさん2012/01/19(木) 15:13:15.71ID:???
27無職はもう
終わっとります
0976nobodyさん2012/01/19(木) 15:19:51.27ID:???
教えてエロイ人

さむいよ、ハラ減った
顧客管理プログラムのソース、クレクレ

    
0977nobodyさん2012/01/19(木) 15:50:56.98ID:???
>>976
要件をどーぞ。
0978nobodyさん2012/01/19(木) 16:21:04.34ID:???
顧客登録や商品登録して
オーダー管理やカスタマの情報整理して業務を効率化したい
カスタマ検索/更新/削除ができて、購入履歴を閲覧できて
できれば、登録商品の購入者の年齢・性別、売上数の順位がでるのがほすい
0979nobodyさん2012/01/19(木) 16:31:57.68ID:???
>>978
顧客とカスタマと購入者って同じ?別物?
PHP本のサンプルにまんまありそーだなw
09809782012/01/19(木) 16:45:08.80ID:???
おなじだよ、でも漏れのphp本には乗ってないorz
0981nobodyさん2012/01/19(木) 17:32:45.16ID:???
結構基本的な構造っぽい。
登録、順位とかはSQLだけでほとんどできるから、
ほんと必要なデータをMySQLに登録する部分さえ作れば、5割出来たようなものだよ。

とりあえず、980が次スレなんで、
0982nobodyさん2012/01/19(木) 20:33:23.99ID:???
PHPの肝は配列だ
間違いないね
最も重要
0983nobodyさん2012/01/19(木) 20:40:34.39ID:???
cronで定期的に集めたデータを、
facebook graph api を使ってfacebookのウォールに投稿してます。
投稿したデータを削除したい場合もあるんですが、
facebook graph apiって、投稿を削除出来るんでしょうか?
投稿IDは保存してあります。
0984nobodyさん2012/01/19(木) 21:03:04.37ID:???
PHPと関係ない。Facebookのヘルプよめ。
0985nobodyさん2012/01/19(木) 21:13:30.56ID:H4RH65I0
trim()とかでは全角空白などは取り除いてくれませんが、
皆さんはどのようにして対処していますでしょうか?
preg_replace()で一度全角空白を半角空白とかにして・・・とか考えられますが、
どのように実装していますでしょうか?
0986nobodyさん2012/01/19(木) 21:16:07.36ID:???
>>984
ありがとう、削除できました。
ヘルプにある削除の説明の下の、コメント削除の部分を見て試行錯誤してました。
0987nobodyさん2012/01/19(木) 21:42:54.00ID:???
>>980
はよ次スレ立てろやクズ
0988nobodyさん2012/01/19(木) 21:48:44.17ID:???
>>985
mb_convert_kana(?, 'KVas')
とか
preg_replace('/ /', ' ', ?)
とか
単純に全角を含めた前後の空白を取り除きたいなら
preg_replace('/^[\s ]+|[\s ]+$/usi', '', ?)を
mb_trimとかそんな感じの関数にして使うとか
0989nobodyさん2012/01/19(木) 22:09:10.57ID:???
>>987
そう思うならスレ立てようか?って聞くのが普通だが。
0990nobodyさん2012/01/19(木) 22:21:25.63ID:???
じゃあ立てれば
0991nobodyさん2012/01/19(木) 22:30:54.72ID:???
>>990
わりと回答してるけど、このスレあんまり機能してない感じがしない?
なんかなくてもいい気がしてるんよ。
0992nobodyさん2012/01/19(木) 22:53:52.40ID:???
まぁいらんわな
ニートのおっさんが暴れてるだけだし
0993nobodyさん2012/01/20(金) 00:13:15.31ID:W2I9U5WM
phpには分散オブジェクトを実装した人いますか?グクッても情報がなく困っています。
0994nobodyさん2012/01/20(金) 00:14:06.19ID:???
>>985
第二引数に指定すればいいんでは?
0995nobodyさん2012/01/20(金) 03:51:56.34ID:A0g11Z1K
header("Content-type:image/jpeg");
readfile($filename);
と画像を出力しているのですが、
何回更新してもStatus Codeが200でキャッシュされていないようです。
これだとリクエストするたびに画像読み込みが発生するので304で読み込んでほしいのですが、
どうしたらいいでしょうか?
0996nobodyさん2012/01/20(金) 04:00:22.22ID:???
動的コンテンツに対して勝手にはしてくれないよ。
リクエストヘッダを見ないといけないし、リクエストヘッダをつけたくなるように仕向けなければならない
0997nobodyさん2012/01/20(金) 04:25:01.43ID:A0g11Z1K
>>996
expires, Etag, Cache-Controll
といろいろ試してみましたが304にならなかったです・・・
0998nobodyさん2012/01/20(金) 05:42:24.68ID:???
しょうがねえから俺たてるよ
0999nobodyさん2012/01/20(金) 05:45:14.41ID:???

http://kohada.2ch.net/test/read.cgi/php/1327005803/
1000nobodyさん2012/01/20(金) 06:27:40.12ID:???
>>997
んだから、304は自分で判断して、自分で304を返さないといけない。
その判断基準となる情報をブラウザがリクエストヘッダにつけるように仕向けることをしなければならない。
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。