【PHP】下らねぇ質問はID出して書き込みやがれ 114
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2012/01/02(月) 02:03:25.50ID:???過去スレ、関連スレ、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:???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:???→ 確認すべきは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:???0008nobodyさん
2012/01/02(月) 04:10:13.34ID:Vsxd7/Vo本当ですか?
0009nobodyさん
2012/01/02(月) 06:47:39.02ID:l3XFfeoy0011nobodyさん
2012/01/02(月) 09:29:15.27ID:???アクセスごとに処理されるわけだし
例えば全部のアクセスをメモリ上に置いたシングルトンなインスタンスで処理できるようなものになれば話が違ってくるけど
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:???PHPの書籍スレでベテランを装った素人が「PHPでシングルトンは出来ない」とか言ってるのを真に受けた?
デザインパターンを全く理解してない人のたわごとだから無視していい。
0015nobodyさん
2012/01/02(月) 09:53:32.11ID:???0018nobodyさん
2012/01/02(月) 11:02:52.10ID:???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
0023nobodyさん
2012/01/02(月) 16:10:22.97ID:???公式サイトにもPHPでは意味ないかもって書いてあるじゃん。
まったく無意味ではないけど複数プロセス・複数メモリ空間のPHPでは
本来の意味は無いって。
0025nobodyさん
2012/01/02(月) 17:10:05.14ID:???0026nobodyさん
2012/01/02(月) 17:18:55.87ID:jFXHaYiBクラス名でもAという名前をつけるとエラーが出たのですが
インターフェースとクラスでも名前がかぶるといけないのでしょうか?
0027nobodyさん
2012/01/02(月) 17:23:24.40ID:???それはオブジェクト設計がおかしい
0028nobodyさん
2012/01/02(月) 17:25:38.11ID:???どこがわかっていないか説明してあげてね。
>>25
おっしゃるとおり。1プロセスで1インスタンス生成。
PHPの場合は複数のプロセスで動くのでサイト内で
唯一のインスタンスにはならないね。
0029nobodyさん
2012/01/02(月) 17:43:31.44ID:???0030nobodyさん
2012/01/02(月) 17:46:06.37ID:jFXHaYiB設計がおかしいということはやはり、
同じ名前はつけられないことになってるんですね
ありがとうございます
0031nobodyさん
2012/01/02(月) 18:03:00.77ID:Vsxd7/Voこういった場合どのようにするのが効率的ですか?
トップページにニュースを表示させます。
ニュースのデータはDBへ保存しています。
ニュースは誰が訪問しても同じデータですので、
ユーザーごとにDBへ取りに行くのは不効率です。
そのためDBから取り出したデータを
他のユーザーもDBへ再アクセスせずに利用できるようにしたいのですが
どのような方法がありますか?
それともやはりユーザーごとにDBへ取りに行く必要があるのでしょうか?
0032nobodyさん
2012/01/02(月) 18:10:28.67ID:???サーブレットのライフサイクルを知らないんでしょ
>>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ぐらいいきそうだな
0038nobodyさん
2012/01/02(月) 19:09:23.14ID:Lu/m0VMPサーバを再起動するとmemcachedに入っているデータは飛びますか?
0039nobodyさん
2012/01/02(月) 19:10:51.80ID:Vsxd7/Vo>>37
やっぱりそうなっちゃうんですね。
アプリケーション全体みたいなやつがあればいいんでしょうけど
PHPには無いのですね。わかりました。ありがとうございました。
0040nobodyさん
2012/01/02(月) 19:11:25.15ID:???APCなんかは無理だけど
つーかググれよ
0041nobodyさん
2012/01/02(月) 19:13:03.21ID:???おまえそもそもPHPをなんだと思ってるんだよ
トンチンカンすぎるだろ
ちなみにトンチンカンって言葉聞いたのすっげ久しぶりだ
0042nobodyさん
2012/01/02(月) 19:21:02.53ID:Vsxd7/VoPHPって今最も優れたサーバーサイド言語ですよね。
何かお気に障りましたか?
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お疲れさん。
今日の釣りはこれで終了する。
ごくろう。
0046nobodyさん
2012/01/02(月) 19:33:37.50ID:???0048nobodyさん
2012/01/02(月) 19:52:33.98ID:???すべてのユーザに同じデータならニュースサイトのRSSひっぱってくりゃいい
なんでもできる状態で”これしかできない”限定の質問が視野狭窄脳梗塞状態
周りにこーゆーヤツが多くてちょっとイラッ☆っときてしまった
反省はしてない
0050nobodyさん
2012/01/02(月) 20:41:19.53ID:???面倒くせえんだよ->ってうつの
0053nobodyさん
2012/01/02(月) 20:54:47.07ID:???低脳が自演すると、自分の間抜けさを補強しちゃうのが悲しいな
黒いものをいくら「白だ!」と自演してもみんなクスクス笑うだけ
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:???0061nobodyさん
2012/01/03(火) 00:37:02.85ID:5Pk6ggV8ドメインは同じです。
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の保存形式を変更することはできるのでしょうか?
0064nobodyさん
2012/01/03(火) 00:47:46.14ID:rKocSQ20PHPでマルチスレッドを実現する方法を教えて下さい。
0065nobodyさん
2012/01/03(火) 00:53:19.06ID:???>>63 apache
>>64 いくらでもあるがなggrks
0066nobodyさん
2012/01/03(火) 01:00:40.26ID:rKocSQ20すみません。
もっと詳しく教えてください。
どうやってマルチスレッドになるのでしょうか?
0067nobodyさん
2012/01/03(火) 01:19:51.05ID:rKocSQ20本当に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>>69
>>65の方が教えていただけませんので代わりに教えていただけませんでしょうか?
PHPをマルチな「スレッド」として動かす方法を。
0071nobodyさん
2012/01/03(火) 02:03:49.54ID:???>session_data: name|s:7:"1234567";id|s:9:"123456789";
s:7やs:9ってのはString(7) String(9)ってこと
つまり文字列型の変数で長さが7文字って書いてるだけ
>>70
PHPはマルチスレッド非対応
っぽいことはcURL使えばできる
0074nobodyさん
2012/01/03(火) 02:53:47.08ID:rKocSQ20あなたも嘘つきですか?
0076nobodyさん
2012/01/03(火) 03:48:48.69ID:???確認する暇がないんで嘘付いてたら悪いけど
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:???中身と何かしらユーザーと紐付けるユニークなIDだけを格納しておいて新しいSESSIONへ入れるという実装が現実的
0078nobodyさん
2012/01/03(火) 03:52:02.64ID:5Pk6ggV8ありがとうございます。
ちょっと自分で調べてみて、seliarizeという関数がセッションのキーバリューをこの形式に変換していることが分かりました。
0079nobodyさん
2012/01/03(火) 04:00:17.52ID:5Pk6ggV8やっぱりそういう方法になりますかね…
とりあえず
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:???0081nobodyさん
2012/01/03(火) 04:13:01.20ID:???0084nobodyさん
2012/01/03(火) 14:52:20.49ID:???で取得できるようですが、呼び出し元のローカル変数一覧を取得する方法は
ないのでしょうか?
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()
で取得できるようですが、呼び出し元のローカル変数一覧を取得する方法は
ないのでしょうか?
0088nobodyさん
2012/01/03(火) 17:16:36.40ID:u/AA2OwXわかりました。ありがとうございます。
0089nobodyさん
2012/01/03(火) 17:19:27.22ID:???俺はコードを載せてもらわないと答えられないから
サンプルコードを出してもらってどこの変数をどこから取得したいのかコードで書いてくれ
基本的に俺は日本語だけの質問は答えないけど
0090nobodyさん
2012/01/03(火) 17:20:04.63ID:???009186
2012/01/03(火) 18:08:55.19ID:u/AA2OwXfunction a() {
$a = 123;
b();
}
function b() {
// ここでa()のローカル変数を取得したい
// (array('a' => 123))
}
0092nobodyさん
2012/01/03(火) 18:19:55.30ID:???function a() {
$a = 123;
b(get_defined_vars());
}
function b($vars) {
var_dump($vars);
}
0093nobodyさん
2012/01/03(火) 18:25:22.21ID:???$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同じデザインで、色違いってのが3種類欲しいんだけど
0097nobodyさん
2012/01/03(火) 18:52:03.43ID:???こういう風にクラスに入れとくのは?
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();
0099nobodyさん
2012/01/03(火) 20:27:11.00ID:???あくまでも同じユーザがリソースを使いまわすためにあるもので
別のユーザが使ってたリソースを別ユーザが再利用するなんてことは出来ない
>>31のようなものは単にキャッシュの仕組みを作ればいい
0100nobodyさん
2012/01/03(火) 20:39:04.35ID:???0101nobodyさん
2012/01/03(火) 20:40:01.09ID:???0104nobodyさん
2012/01/03(火) 21:04:35.24ID:???0106nobodyさん
2012/01/03(火) 21:38:30.72ID:???0107nobodyさん
2012/01/03(火) 23:06:40.58ID:???>PHPはマルチスレッド非対応
公式では”非推奨”とされてるだけで、Apache MPM workerでマルチスレッドモードになる
http://php.net/manual/ja/function.zend-thread-id.php
0108nobodyさん
2012/01/03(火) 23:20:26.07ID:???非推奨は使い物にならないんだよ。
完全趣味ならともかくビジネスだったら非対応。
これだからPHPは馬鹿にされる。
0109nobodyさん
2012/01/03(火) 23:27:02.14ID:???馬鹿はそうやって最初からあきらめるが、頭が良い人間はこれでビジネスをする
http://www.phpclasses.org/blog/post/66-More-defensive-programming-practices-to-survive-Web-site-traffic-peaks.html
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:???0113nobodyさん
2012/01/03(火) 23:42:00.40ID:???英語でベタベタ貼る人ってだいたい理解してない
ごまかしてる感がするので日本語で説明して下さい
0114nobodyさん
2012/01/03(火) 23:44:14.54ID:???静的コンテンツをマルチスレッド化されたウェブサーバで運用するアイデア
>>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
0119nobodyさん
2012/01/04(水) 00:00:11.45ID:???0120nobodyさん
2012/01/04(水) 00:15:57.19ID:GubBHlXR0121nobodyさん
2012/01/04(水) 00:56:17.87ID:???0122nobodyさん
2012/01/04(水) 00:56:25.29ID:???0124nobodyさん
2012/01/04(水) 01:20:24.22ID:???0125nobodyさん
2012/01/04(水) 02:06:09.87ID:???将来Zend Thread SafetyてのはRubyやpythonみたいに使えるようになるのかねぇ
0126nobodyさん
2012/01/04(水) 02:48:24.12ID:???逆にC言語はPHPで実装できる。これ常識よ。
0127nobodyさん
2012/01/04(水) 03:25:48.26ID:???いい歳こいて恥ずかしくないのかね
PHPがクソ言語?そうかもね、そんな気もする
で?ってゆう
0128nobodyさん
2012/01/04(水) 03:48:18.28ID:zYHozA87セッションの格納時にデータシリアライズを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で保存されません。
どうしたらうまくいくでしょうか。
0130nobodyさん
2012/01/04(水) 03:54:18.43ID:???そんな処理をPHPですること自体に無理がある。
PHPのシリアライズはバグありで有名なので、
別言語で書き直すべき。
0131nobodyさん
2012/01/04(水) 04:04:27.07ID:???あのさ、ただの文字列'abc'とかの出し入れやってみた?
次にmemcachedに格納したそのセッションとやらを単純に取り出してdumpしてみた?
質問する以前の問題だと思うんだよね
0132nobodyさん
2012/01/04(水) 04:12:27.36ID:???まさかとは思うが session.save_handler を指定してないとかないよな
http://www.php.net/manual/ja/memcached.sessions.php
0133nobodyさん
2012/01/04(水) 04:30:44.93ID:zYHozA87http://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$m->setOption(Memcached::OPT_SERIALIZER, Memcached::SERIALIZER_JSON);
とmemcached.iniに memcached.serializer = "json" を入れることで、
シリアライズの指定ができるのではないかと思っていたのですが、結果のとおりだめでした。
セッションの情報自体は保存されるものの、保存形式はjsonではありません
0135nobodyさん
2012/01/04(水) 04:43:47.34ID:???オレにはjsonに見えるけどオレの目がおかしいの?
0136nobodyさん
2012/01/04(水) 05:02:08.10ID:???php.ini の session.serialize_handler でやらなきゃダメなんじゃないかな
ソースちら見したけど memcached 側で変換しているようには見えないんだが
>>135
眼科行け
0137nobodyさん
2012/01/04(水) 06:17:34.03ID:49ygosTBfopenのw+ってファイルサイズをゼロにするとあるのですがw+で開いてfseekせずに読むことってできますよね?
0138nobodyさん
2012/01/04(水) 06:28:40.45ID:???w+で読み込みって意味あるのかコレ・・
カウンタみたいな使い方の場合 r+じゃないと行けないのか
事前にファイルの存在調べてtouch()で作らなきゃいけないんですかね。。
0139nobodyさん
2012/01/04(水) 06:51:03.20ID:???'c' 書き込みのみでオープンします。ファイルが存在しない場合には新規作成を試みます。
'c+' 読み込み/書き出し用でオープンします。 それ以外のふるまいは 'c' と同じです。
0140nobodyさん
2012/01/04(水) 08:30:12.32ID:3Vpp07Ai違うのはMETA部と画面の幅とあと特別にあるのでしょうか?
0141nobodyさん
2012/01/04(水) 09:13:15.42ID:???HTMLレベルの話じゃん
0142nobodyさん
2012/01/04(水) 11:37:54.28ID:zsEsnx9y0145nobodyさん
2012/01/04(水) 13:05:02.27ID:???0146nobodyさん
2012/01/04(水) 14:23:10.70ID:???0148nobodyさん
2012/01/04(水) 14:42:27.81ID:???そうなんだけど、自動でやるにはどうすればいいでしょうか?
ぐぐったり調べてみたけどわかりませんでした
0149nobodyさん
2012/01/04(水) 15:06:30.61ID:gPY3Wdcl教えてください、英語サイトでもいいです。
0150nobodyさん
2012/01/04(水) 15:19:37.29ID:???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:???なんでそんなもんが必要なの?
if($hoge) {;
$fuga = 0;
} else {;
$fuga = 1;
};
こんなことになるけど
そもそも自動でセミコロン付加するエディタってほかにあるの?
0152nobodyさん
2012/01/04(水) 15:44:52.30ID:???ほかにってことは自動でそのように付加するエディタがあるってことか?
迷惑千万だけど、プラグインとか書きゃそうなるけど
0153nobodyさん
2012/01/04(水) 15:49:55.61ID:???いや、ここで求めているほかにそんなのあるのかと
聞いたことないし、そんなのあったら鬱陶しいことこの上ない
0154nobodyさん
2012/01/04(水) 15:56:40.16ID:???>なんでそんなもんが必要なの?
よく付け忘れたり、隣のコロンを付けちゃってエラーになるので
エディタが構文解析して必要な場所に自働で付けてくれれば便利だと思ったのですが
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:???0158nobodyさん
2012/01/04(水) 16:29:38.31ID:???エディタスレにでもいきやがれ
0161nobodyさん
2012/01/04(水) 17:03:25.32ID:???文脈判断して、付加してくれるってことかな。
$str = "hogehoge"
. "hogehoge"
;
こういうコード書こうとしたらどうなるの?
0163nobodyさん
2012/01/04(水) 17:26:11.66ID:???マクロ実装しだいでどうにでもなる
しかしPHPスレだからこれ以上はここで回答しない
秀丸使い始めてから秀丸スレ池
0164nobodyさん
2012/01/04(水) 17:30:34.60ID:???0166nobodyさん
2012/01/04(水) 17:47:51.62ID:1MDsVe6Gphpのファイルを拡張子なしで表示したいのですが、
レンタルサーバーで
option+Multiviewが使えませんでした。
どこかのサイトで
http://www.sample.com/abc
じゃなく
http://www.sample.com/abc/
ならば
割と簡単に出来ると書いてあったのですが、方法をご存知の方はいらっしゃいませんか」?
検索したのですがわからなかったので、
検索ワードも教えて頂けると嬉しいです。
0167nobodyさん
2012/01/04(水) 17:57:03.48ID:???普通はmod_rewrite
>どこかのサイトで
>http://www.sample.com/abc
>じゃなく
>http://www.sample.com/abc/
>ならば
>割と簡単に出来ると書いてあったのですが、方法をご存知の方はいらっしゃい>ませんか」?
これはディレクトリで分けてindex.phpを置くって意味じゃない
/abc/index.php
その場合はhttpd.confなり.htaccessなりで
DirectoryIndex index.php
になってればおk
0169nobodyさん
2012/01/04(水) 18:16:59.21ID:???0170nobodyさん
2012/01/04(水) 18:19:13.57ID:???0171nobodyさん
2012/01/04(水) 18:20:17.84ID:???0172nobodyさん
2012/01/04(水) 18:20:45.01ID:???0173nobodyさん
2012/01/04(水) 18:21:43.21ID:???0174nobodyさん
2012/01/04(水) 18:23:08.97ID:???わざわざ秀丸使うような人たちが欲するものを理解するのは無理
0175nobodyさん
2012/01/04(水) 18:32:27.15ID:???いちいち勝手にセミコロン置かれてたまるか;
0176nobodyさん
2012/01/04(水) 18:40:37.39ID:1MDsVe6Gありがとうございます。
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:???【Apache】mod_rewriteについて語るスレ
http://kohada.2ch.net/test/read.cgi/php/1023791370/
0178nobodyさん
2012/01/04(水) 18:43:46.89ID:???すごくちがいます
失礼ですが、これ以上説明しても理解できるレベルじゃないと誰もが思ってると思います
ですのでもう少し自分なりに学習してください
0179nobodyさん
2012/01/04(水) 18:47:20.75ID:???そして正月終わっても定着しちゃうんだよね┐(´д`)┌
0180nobodyさん
2012/01/04(水) 19:32:06.64ID:???0181nobodyさん
2012/01/04(水) 19:32:56.14ID:UqtcALC3PHPでフォームを作成しているのですが、データの受け渡し方法が分かりません。
「PHPの絵本」という本を見ながらやっているのですが、
<form action="実行するPHPのURL" method="post">と書かれてあります。
この「実行するPHPのURL」というのがよくわかりません。
あらかじめ「実行するPHPのURL」というものを用意しておくということでしょうか?
まだプロバイダー申し込み等していないのですが、それをしてからということでしょうか?
0182nobodyさん
2012/01/04(水) 19:40:16.39ID:???0183nobodyさん
2012/01/04(水) 19:44:24.86ID:???マジで初心者だな。
実行する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:???フォームを受け取る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:???<?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:???<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みなさん、ありがとうございます。
教えていただいた通りにやったらできました!!
0188nobodyさん
2012/01/04(水) 21:30:54.32ID:???0189nobodyさん
2012/01/04(水) 23:21:41.75ID:s9lYOiI40190nobodyさん
2012/01/04(水) 23:48:16.96ID:???クライアントサイドの仕事だからJavaScriptスレで聞いたほうがいいよ
0191nobodyさん
2012/01/05(木) 00:17:41.50ID:YvCiXMC9アプリケーションスコープ相当を実現することはできますか?
0192nobodyさん
2012/01/05(木) 00:39:35.64ID:???0194nobodyさん
2012/01/05(木) 00:59:15.22ID:YvCiXMC9具体的に方法はありますか?
0195nobodyさん
2012/01/05(木) 01:04:20.51ID:???0196nobodyさん
2012/01/05(木) 01:07:57.28ID:YvCiXMC9ケースバイケースになるくらい難しいことですか?
0197nobodyさん
2012/01/05(木) 01:10:10.17ID:YvCiXMC90198nobodyさん
2012/01/05(木) 01:16:29.08ID:YvCiXMC9他のサーバーサイド言語では主に3つのスコープがあります。
1.リクエスト
2.セッション
3.アプリケーション
私見だとPHPには1,2相当はありますが3がないので困っているのです。
どうしたらよろしいでしょうか?3がないとすると大幅にパフォーマンスが
変わりかねないので悩んでいるのです。
0199nobodyさん
2012/01/05(木) 01:20:01.65ID:???>大幅にパフォーマンスが 変わりかねないので悩んでいるのです。
ほう、それは具体的にどういうケースでパフォーマンスの低下が発生するの?
実装次第で回避出来るかもしれんよ。
0200nobodyさん
2012/01/05(木) 01:25:30.10ID:YvCiXMC9サイトへアクセスする全員が利用するデータがDBにあります。
0203nobodyさん
2012/01/05(木) 01:29:24.23ID:YvCiXMC9たとえば一定期間に1000人がアクセスしたとします。
最低1000回DBへのアクセスが発生します。
データは共通なのだから本来であればDBへのアクセスは1回で
よいはずです。
0204nobodyさん
2012/01/05(木) 01:32:17.91ID:YvCiXMC9基本的にPHPは重いしサーバーのメモリを食うのでできる限り
使用したくないのです。
そこで、jsonなどの静的ファイルに置き換えてjsで読むという方法は
取っていますが、結局サーバーサイドとクライアントサイドで書く必要
があるのでめんどくさいのです。
0207nobodyさん
2012/01/05(木) 01:35:26.23ID:???0208nobodyさん
2012/01/05(木) 01:42:34.82ID:YvCiXMC9使う側の利便性を考えるとやはりDBです。
やっぱり方法は無いんでしょうね。
memcachedと使うという手法は知っていますが、
PHPの仕組み上ではどうしてもサーバーに負荷がかかってしまう。
アプリケーションスコープがある言語にどうにかして切り替えます。
ありがとうございました。
0209nobodyさん
2012/01/05(木) 02:35:16.36ID:???0211nobodyさん
2012/01/05(木) 03:05:43.15ID:???悪いけど究極的にウンコみたいな設計だな。
根本的におかしい。
どうやったらそんな謎設計になってしまうのか詳しく聞きたい。
0215nobodyさん
2012/01/05(木) 03:23:45.71ID:???0218nobodyさん
2012/01/05(木) 03:25:37.26ID:???そうあわてんなって。
こんなウンコみたいな設計で動いてるサイトの詳細ってお前らも知りたくないか?
本人が来たら詳しく聞いてみようぜ。
0223nobodyさん
2012/01/05(木) 03:33:34.93ID:???レベル低すぎ。
0224nobodyさん
2012/01/05(木) 03:38:42.21ID:???「PHPはおかしなコードを助長する言語」
同意だよね。ヒヒヒwwww。
0228nobodyさん
2012/01/05(木) 03:46:05.91ID:???あらあらなるほど
ちゃっちゃと作る分にはPHPは楽だからな。
人が集まった時点で作り直せばよかったんだろうけどなぁ。
0229nobodyさん
2012/01/05(木) 03:47:09.77ID:???無知ですまんかった。
0230nobodyさん
2012/01/05(木) 03:50:18.84ID:???そんなわけがわからないものを作るよりは
初めからC++で作っとけば良かったんだ。
HipHopにしてもネイティブのC++に比べると
オーバヘッドがあるわけでムダだよね。
0232nobodyさん
2012/01/05(木) 03:58:28.05ID:???C++で作ったからといって、1000ユニークアクセスに対して1000DBアクセスが発生しなくなるわけじゃあないからな。
なんの工夫もなしにそれは変わることはない
0233nobodyさん
2012/01/05(木) 04:44:02.06ID:???0234nobodyさん
2012/01/05(木) 04:50:42.28ID:???HipHopはPHPの開発ツールとしての優位性が強まる、つまり「PHP最強だろ!」って話だからね
PHP憎しで完全に狂ってるけど、はたから見ると面白い
0235nobodyさん
2012/01/05(木) 08:46:23.61ID:???もういいから早く代替案を答えて。
0236nobodyさん
2012/01/05(木) 08:57:14.69ID:???C++で作ったからといって、1000ユニークアクセスに対して1000DBアクセスが発生しなくなるわけじゃあないのに、
なぜHipHopで「PHP最強だろ!」になるのですか?
0238nobodyさん
2012/01/05(木) 09:14:31.17ID:???よく死にたくならないなと感心するよ
0240nobodyさん
2012/01/05(木) 11:42:14.54ID:ACIe1UJA0241nobodyさん
2012/01/05(木) 11:48:53.94ID:???じゃなければmyTrim()とかmyPhpinfo()みたいにプレフィックスでも付けて差別化するしかない
0242nobodyさん
2012/01/05(木) 11:55:13.54ID:ACIe1UJAPHPコードからではできないですか。
諦めて別名でやってみます。
0243nobodyさん
2012/01/05(木) 12:05:52.58ID:???それはC/C++ソースをコンパイル時にアセンブラ出力して書き換えるようなもの。
無駄をなくすとすれば機械語、アセンブラにたどり着く。
しかし開発効率からそのあたりには手を出さず、PHPやC/C++のコードの範囲でできる事をした方が良い。
0244nobodyさん
2012/01/05(木) 12:15:28.46ID:???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:???どれだけPHPが高速化できたとしても、リソースの少なさ、速度の速さではネイティブ実行形式が上だろ。
0246nobodyさん
2012/01/05(木) 12:43:16.59ID:WqkweKyi0247nobodyさん
2012/01/05(木) 12:50:18.95ID:???0248nobodyさん
2012/01/05(木) 12:52:26.30ID:???0249nobodyさん
2012/01/05(木) 12:57:19.29ID:???シングルトン・マルチスレッド・アプリケーションスコープ、全部理解してないからな
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:FPSYlk7pclass 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:???0255nobodyさん
2012/01/05(木) 15:09:18.10ID:???0256nobodyさん
2012/01/05(木) 15:09:19.83ID:???0257nobodyさん
2012/01/05(木) 15:20:05.60ID:???0258nobodyさん
2012/01/05(木) 15:22:06.79ID:FPSYlk7pclass SQLの中にrecordというファンクションがなかったので
もともと用意されている何かだとおもったのですが
ググってもでてこなかったので聞いてみました。
まだよくわかっていないのでちょっとクラスについて調べてきます
0259nobodyさん
2012/01/05(木) 15:25:35.51ID:yQXwn+vlDB操作しやすいライブラリとかでおすすめないかな?
プログラム自体は大したことないのに、
テーブルやらカラムやらを大量に作らなきゃいけない予定なんで、
SQLで書くのめんどくさいから、
ソースコードだけで片付くものを探してるとこなんだけど
0260nobodyさん
2012/01/05(木) 15:26:13.26ID:???$this->recordが必ずしもファンクションとは限らないのにファンクションと決めつけてるだろ
そんなことだといつまでも謎のままだぞ
>if ($limit) return array_slice($this->record, $offset, $limit);
これ見たらあー配列なんだなってわかるし
つーことは、名前からしても$this->recordにはどこかでSELECTの結果かなにかを配列としてセットしてるメンバだとわかるだろう
0262252
2012/01/05(木) 15:29:33.28ID:FPSYlk7pprivate $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:???そーゆーことならフレームワークのスレへ
ただSQL書かないで最適なクエリを発行することはまず無理だと思う
DB抽象化ライブラリがインデックスまで把握して最適なクエリを発行してくれるものがあればオレも欲しい
0264252
2012/01/05(木) 15:31:28.29ID:FPSYlk7p5行目のprotected $record = null
で定義しているからしたで使えているということなんですか?;
0267252
2012/01/05(木) 15:35:46.96ID:FPSYlk7p$this->recordでrecordに$がついてなかったので
ファンクションだと思ってました。。
勉強してきます
0269nobodyさん
2012/01/05(木) 15:38:38.34ID:???使う機能だけを関数化すればよい。
SQLはコマンドラインでも動作する。難しければそこからやってみてそのあとPHPにするというのもある。
0271252
2012/01/05(木) 15:45:28.44ID:FPSYlk7p5行目のprotected $record = nullでは配列が入っていないとおもうんですが
recordには配列はどうやって入れているのでしょうか?
0272nobodyさん
2012/01/05(木) 15:50:04.64ID:???0273262
2012/01/05(木) 15:51:51.85ID:FPSYlk7p0274nobodyさん
2012/01/05(木) 16:09:56.66ID:???$recordという変数を探して、
名無しの変数なんてねえよ。とわめいたり、
素知らぬ顔で空データ返してくれるPHPを見てると
ちょっと萌えるよね。
こんな技法滅多に使わないけど。
0275nobodyさん
2012/01/05(木) 16:19:40.25ID:???/hoge/fugaというアクセスはclass hogeのfugaメソッドを実行とかね
どんな名前でアクセスしてくるかわからないものを一箇所で処理しようと思ったら便利でしょ
0276nobodyさん
2012/01/05(木) 16:26:11.82ID:???>if ($limit) return array_slice($this->record, $offset, $limit);
クエリ発行時点でoffsetとlimitつけとけよ…
これごっそりレコード取って後から切り出してるだろ
とりあえずこんなクソコード捨てちまえ
0278nobodyさん
2012/01/05(木) 19:29:38.66ID:m/6w1Ethそこでクエリごとに分けて別々に発行すればOKでした。
phpMyAdminでは;で区切ったクエリを実行できるのですが、
これはphpMyAdmin側で複数のクエリに分割して実行しているのでしょうか?
それともこちらのプログラムミスでしょうか?
0279nobodyさん
2012/01/05(木) 19:31:31.15ID:???0280nobodyさん
2012/01/05(木) 19:40:52.08ID:???今どきただの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:???適当にいうな
>>280
ありがとうございます
>>281
クエリのパースってmysql側でやるものだと思ってたのですが
そういうものなのですか
ありがとうございました
0283nobodyさん
2012/01/05(木) 19:46:47.22ID:???mysqliのmulti_queryはマルチクエリ実行できるよ
ただ得意気に
>そして○○_query系でsqlを実行するのは今すぐやめましょう
>これからは○○_prepareを使いましょう
とか言ってると笑われるから注意な
すべてケースによるから自分で最適なコーディングを探すこと
エスケープやアプリに合わせたサニタイズも考えながらやって
0284nobodyさん
2012/01/05(木) 19:47:41.25ID:???Sqlite2の古い関数使うからダメなんだ。
0286nobodyさん
2012/01/05(木) 19:53:46.88ID:???ボトルネックでないだったら直に送信した方がソースは短くて済む。
決定的な差になるのはトランザクション指定。
0287nobodyさん
2012/01/05(木) 19:54:50.31ID:???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_USE_RESULT
というのが、従来のmysqによる結果セットと同じなのかなと思うのですが
http://php.net/manual/ja/mysqli.use-result.php
クライアント側で 大量の処理を行う際は、mysqli_use_result() を 使用すべきではありません。
なぜなら、この関数はサーバとの接続を保持 し続け、取得しているデータに関連するテーブルについて、
他のスレッドから 更新ができなくなるからです。
と書いてありました。
これは接続が保持されている間はテーブルがロックされるということでしょうか?
結果セットはテーブルとは別の領域に作成されるのだから奇妙な処理に思えますが
どういうことなのでしょう
今までのmysql関数でも、接続が保持されている間はテーブルがロックされていたのでしょうか?
0291nobodyさん
2012/01/05(木) 21:17:34.84ID:???これ
>バッファに取得しないで結果オブジェクトを返します。 エラー時には FALSE を返します。
バッファに取得しないってことはなんらかの方法で現状をキープする必要があるでしょ
テーブルロックしてるかどうかしらんけど、してる可能性は高いよ
だからバッファリングしてから使うべき(このメソッドはあまり使うべきではない)ってことになるんじゃね
0292nobodyさん
2012/01/05(木) 21:19:13.82ID:???0293nobodyさん
2012/01/05(木) 21:29:46.87ID:???ちなみに
>二種類のモードのうちMYSQLI_USE_RESULT
>というのが、従来のmysqによる結果セットと同じなのかなと思うのですが
こういう変な固定概念的なものは取り払って素直にゼロから学習しなさいな
じゃないと自分の思うようにいかないことばかりでイライラすることになるよ
一応mysqliでSELECTを投げる場合の標準的な手順だけ
1. プリペアドステートメントセット
2. クエリ実行
3. 結果オブジェクト取得
4. オブジェクトから結果(レコード)取得
概ねこんな感じ
0294nobodyさん
2012/01/05(木) 21:32:31.52ID:???データ取得している間中ロックするとか
なんかありえない処理に思えるのですが・・・
同時に一人しか同一テーブルを読めないってことでしょう
いやありえない
mysqliがおかしいのか
今までも実はそうだったのか・・・
0295nobodyさん
2012/01/05(木) 21:35:54.28ID:???>>293読んでね
で、他にメソッド色々あるでしょ?マニュアル熟読してみてよ
しかも読めないとは書いてないじゃん、更新できないとは書いてあるけど
イロイロと勝手にわかったフリするのは学習の妨げになるよ
0296nobodyさん
2012/01/05(木) 21:43:24.56ID:???プリペアドステートメントを使う以外は従来と同じですね
あまり気にせず、
データが巨大な場合はmysqli_store_result
そうでない場合はmysqli_use_result
を使っておけばいいのかなぁ
0297nobodyさん
2012/01/05(木) 21:52:18.06ID:???バッファリングせずにデータを読みたい場合とバッファリングしてからデータを扱いたい場合で変わってくるでしょう
前者はクエリを投げた時の状態を固定したままにしておきたいような場合に使えるでしょう
後者は別にデータ取得直後に変更が加えられても問題ない場合に使える
通常どちらを使えば良いかは考えなくてもわかるよね
>データが巨大な場合はmysqli_store_result
>そうでない場合はmysqli_use_result
どうしてこういう考えに至ったのかオレにはわからんけど、マニュアルの読解力もしくは理解できるまで辛抱強く読む努力が必要だと思うよ
なんとなくわかった気になるのが一番マズイ
0298nobodyさん
2012/01/05(木) 22:42:32.96ID:???何でもかんでも使えばいいってもんでもないけど。
0299nobodyさん
2012/01/05(木) 22:48:03.29ID:???おまえわかりやすくていいけどいい加減うぜーよ
しかもおまえ上で暴れてたニートのおっさんじゃん
0302nobodyさん
2012/01/05(木) 23:00:39.07ID:???0303nobodyさん
2012/01/05(木) 23:10:21.50ID:???そういう意味ではおっさんの方が釣られる魚(>>289とか)より賢い。
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:YvCiXMC90311nobodyさん
2012/01/05(木) 23:28:08.68ID:YvCiXMC90313nobodyさん
2012/01/05(木) 23:37:21.48ID:???注意:
データのサイズがパケットサイズの最大値(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:???だからRubyやPythonにPHPはなめられるんだってwwwwwwwwwwwwwwwwwwwww
まあ止めはしねえよwwwwwwwwwwwwwwww
恥かくのはおめえらだからしらねwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0319nobodyさん
2012/01/06(金) 00:33:30.11ID:???0320nobodyさん
2012/01/06(金) 00:34:16.78ID:???それはない
0321nobodyさん
2012/01/06(金) 01:17:56.10ID:egPD7RrRコネクションプーリングはどうやればいいのですか?
0322nobodyさん
2012/01/06(金) 01:19:48.56ID:???0323nobodyさん
2012/01/06(金) 10:58:36.82ID:9fGZTwoM掲示板くらいならつくれるようになったんですが、もっと腕を上げたいです。
なにかいい勉強法はありませんか?
書店に並んでいるのはどれも入門書ばかりで物足りないです。
コードリーディングというのがいいらしいですが、おすすめはありますか?
0325nobodyさん
2012/01/06(金) 11:20:45.87ID:???使った方が簡単で生産性がいいなら使っても良い。
アセンブラよりC/C++を使うようなものだ。
0326nobodyさん
2012/01/06(金) 11:23:14.96ID:???それくらい慣れたと思ってる人を対象にした本って、
セキュリティメインに書いてる本くらい。
勿論読んでおくべきだけど、
他人のコードを解析するのが一番の勉強になる。
ZendFramework なんかは他のフレームワークと違って分解されることを前提としてるし、OOPな構造なんで、
解析もしやすいし、勉強にもなる。
ちいたんみたいな小さいフレームワークを解析するってのも、解析しやすいし、ためになる技法が結構集まる。
0328326
2012/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); }
}
0331nobodyさん
2012/01/06(金) 12:00:33.66ID:9fGZTwoMゆるゆるなCodeIgniterでならつくれます。
他のフレームワークも勉強してみます。
>>326
入門書かフレームワークの解説書かセキュリティの本という感じで
入門書クリアしたレベルの人の為の本が全くと言っていいほどないですよねorz
ちいたんなんて初めて知りました! これを読んで勉強してみようと思います。
>>328
なるほど。フレームワーク自作って面白そうですね。
やってみます。
ありがとうございます!
0334nobodyさん
2012/01/06(金) 12:24:59.33ID:DYaNhYpbサンクス。このようにできました。
$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:ZICr1WByWebPGて横に幅広い知識が必要だと思いますし、立派な技術職だと思います。
PHPの熟練者(例えばこのスレの回答者の方々)って職にこまらないですか?
0336nobodyさん
2012/01/06(金) 12:30:42.42ID:???0337nobodyさん
2012/01/06(金) 12:33:55.87ID:ZICr1WBywebPGのキャリアモデルて調べてもあまり出てこない(業界の歴史が浅いから当然ですが)
ので聞いてみました
0338334
2012/01/06(金) 12:36:08.09ID:DYaNhYpb0340nobodyさん
2012/01/06(金) 13:03:15.39ID:???0341nobodyさん
2012/01/06(金) 13:05:07.19ID:???モバゲーもスマホもSNSも結局大成功したじゃない。
で、そういうのに売れない時代から付き合ってたやつも、相当な利益出してるはずなんだ。
そういうこと。
0342nobodyさん
2012/01/06(金) 13:12:27.05ID:???0343nobodyさん
2012/01/06(金) 13:34:29.26ID:???先なんてどうなるかわかりきってることだし
それをやらずに人生折り返し地点まできちゃった人はざまぁとしか言いようがない
諦めて吊るか別の仕事で細々とやっていくしかないでしょ
0344nobodyさん
2012/01/06(金) 14:52:28.30ID:???0345nobodyさん
2012/01/06(金) 14:57:03.63ID:???0346nobodyさん
2012/01/06(金) 15:35:47.70ID:GMZDyuPm0348nobodyさん
2012/01/06(金) 19:01:56.16ID:???なんかのサービスを作ってると思うかで大分違う。
0349nobodyさん
2012/01/06(金) 19:59:49.95ID:ISncG55/【PHPのバージョン】5.3
【質問内容】
file_get_contents で任意のページを取得する際、
取得先のページがjavascriptの非同期通信でコンテンツを読みこんでいる場合に
その非同期通信が終わった状態を読みこむにはどうすればいいのでしょうか?
そのまま読み込むとコンテンツ内容が空のソースが返ってきてしまいます。
0350nobodyさん
2012/01/06(金) 20:09:24.54ID:???空のソースでもユーザ側のブラウザが勝手に取りに行ってくれるんでない?
phpで非同期通信コンテンツ読み込みたいなら対象のxml読み込めばいいんじゃない?
0351nobodyさん
2012/01/06(金) 20:19:12.10ID:???そもそもfile_get_contents()でjavascriptが実行できるわけないでしょう
どうしてもそれをやりたいならCentOSでブラウザを立ち上げてブラウザでソースを取得
方法はググったりググったりググッて
>>350
意味が分からないというか、あなたが理解していない
0352349
2012/01/06(金) 20:19:50.10ID:ISncG55/取得したソースをいじくってから表示させたいのです。
取得対象はxmlではなく(たぶんphpで吐き出した)htmlです。
0355nobodyさん
2012/01/06(金) 20:26:02.47ID:???0356nobodyさん
2012/01/06(金) 20:28:17.32ID:???そうですよね、言われてみれば。
ブラウザに組み込まれていない生のjavascriptっていうもんがあれば行けそうですが。
現状、方法はないということで了解しました。
0358349
2012/01/06(金) 20:36:54.90ID:???裏でブラウザを立ち上げるっていう方法しかない、それはいやだな、ということです。
あんまりカリカリしないでください。
0359nobodyさん
2012/01/06(金) 20:44:28.89ID:???じゃあ仕方ないな
どうせ人のフンドシでスモウを取るような事を考えてたんだろ
それ相応のスキルを身につけてから考えようぜ
0361nobodyさん
2012/01/06(金) 21:01:28.18ID:???0368nobodyさん
2012/01/06(金) 22:42:16.99ID:???0369nobodyさん
2012/01/06(金) 22:46:18.19ID:???0370nobodyさん
2012/01/06(金) 22:51:49.81ID:???なにこのなんともいえないキブンwww
0371nobodyさん
2012/01/06(金) 23:36:53.54ID:???0372nobodyさん
2012/01/06(金) 23:37:50.28ID:???いつものおっさんではない オレはまだ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:???0376nobodyさん
2012/01/06(金) 23:55:22.02ID:???おまえら 0x二十代の意味ばらすなよ
0377nobodyさん
2012/01/07(土) 00:00:22.48ID:CsZsKZfDちょっと難しくてお助けを・・・・。
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ちょっと難しくてお助けを・・・・。
0382nobodyさん
2012/01/07(土) 04:09:12.62ID:???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+YlP0384nobodyさん
2012/01/07(土) 05:13:49.57ID:???http://jp.php.net/manual/ja/reserved.variables.get.php
0385nobodyさん
2012/01/07(土) 10:13:48.06ID:???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:???その本とやらを窓から投げて1から学習したほうが身につきそうだな
0387nobodyさん
2012/01/07(土) 10:19:13.10ID:???質問よく読めよ
しかもなんでprototype限定なんだよキョウビprototypeなんか使ってるやつほとんどいねーよ
file_get_contents()でURL叩いてそのページにjavascriptの実行結果まで返して欲しいんだけどって質問だろうが
それに対して>>351がfile_get_contents()でjavascriptを実行できるわけないだろって返してるし
0388385
2012/01/07(土) 10:19:30.15ID:???コンテンツ内容が空って、〜.phpがfile_get_contentsで〜.htmlを取得
するから、この〜.phpを非同期ができてないからエラーじゃないの?
つまり、php側でなく、Javascript側でエラーが出てるはず。
0389387
2012/01/07(土) 10:21:33.27ID:???0391nobodyさん
2012/01/07(土) 10:37:47.48ID:???0392nobodyさん
2012/01/07(土) 10:42:39.51ID:???バックグラウンドでブラウザとPHPで連携するしかないでしょ
PHPでjavascriptをパースして実行結果を導き出すって方法もあるかもしれないけど出口の見えない途方も無い作業になるし
0393349
2012/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:???クロスドメインで簡単にゴニョゴニョできたらセキュリティ的にマズイでしょ
相当昔はできたけど今は簡単にはできないよ
0395nobodyさん
2012/01/07(土) 11:20:47.88ID:???「攻撃対象サイトのAjaxが取りに言ってるxmlをfile_get_contentsで取得してphpで加工して自分サイトに表示させたい」
ということ?
0396nobodyさん
2012/01/07(土) 11:21:10.64ID:???簡単にはできない、ということは、できるということですか?
iframeを入れ子にして孫から呼ぶみたいな説明も見かけたんですが理解できなかったです。
0397nobodyさん
2012/01/07(土) 11:23:45.08ID:???だからおまえはなんでxml限定なんだよ
おまえが一から学習してこい
レベルが低すぎておまえ会話になってねーんだよハゲ
0398349
2012/01/07(土) 11:24:00.96ID:???いえ、違います。あと攻撃でもないです。
取得対象のサイトは、コンテンツ部分を非同期で持って来ているんです。
普通にブラウザでアクセスすれば、loadingてきなのがクルクルしてて、1秒後くらいにコンテンツが表示されるっていうサイトです。
そのloadingが終わった状態をこちらで取得したいということです。
0399nobodyさん
2012/01/07(土) 11:29:03.85ID:???ブラウザを操るか、ブラウザ動作を再現しろよ。確実にやるならJavaScriptが動作させられないと無理。
0403nobodyさん
2012/01/07(土) 11:39:32.36ID:???馬鹿じゃないの
テキストでもHTMLでもなんでもあるだろが
おっさんもうおまえ人生詰んでるから吊ればいいと思うよ
0405nobodyさん
2012/01/07(土) 11:43:32.26ID:???ほんと頭悪すぎ
0406nobodyさん
2012/01/07(土) 11:45:38.12ID:???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:???とりあえずクロスドメインをハックするのは諦めろ
もしその読み込み先がおまえの所有だったら読み込み先に親フレームにソース渡すとか方法はあるし
おまえが人のサイトをハックしようとしてるのはわかりきってるから方法があったとしても教えないよ
0408349
2012/01/07(土) 11:54:37.20ID:???うお、これすげえ。
ブラウザ上の挙動を再現できそうですね、これはイケそうです。
敷居が高そうですがやってみます。
>>406
別に悪いことしようとなんて思ってないですよ。
そもそもfile_get_contentsという関数がphpに用意されているじゃないですか。
たまたま対象が非同期ページだっただけで。
0410nobodyさん
2012/01/07(土) 12:06:10.89ID:???0411nobodyさん
2012/01/07(土) 12:10:25.69ID:???おまえ自分がどんだけアホなこと言ってるか理解しておいたほうがいいぞ
人を殺して「だって包丁が売ってるじゃないですか、たまたま刺したのが人だっただけで」って言ってるようなもん
しねよ
0412349
2012/01/07(土) 12:16:16.48ID:???じゃあfile_get_contentsってどういう時に使うんですか?
自サイトから引っ張ってくるなら意味ないじゃないですか。
俺はその包丁で野菜を切ろうとしてるだけです。
0413nobodyさん
2012/01/07(土) 12:16:44.23ID:???0416nobodyさん
2012/01/07(土) 12:23:26.07ID:???0417nobodyさん
2012/01/07(土) 12:23:50.00ID:???0418nobodyさん
2012/01/07(土) 12:26:09.14ID:???0420349
2012/01/07(土) 12:31:05.88ID:???ブラウザでアクセスすれば普通に表示されるものをphpで取得することっておまわりさん呼ばれちゃうレベルなんですか?
ブラウザでも取得してますが。
ま、それを二次利用してこっちが儲けようとしてるんなら叩かれてもしょうがないですけど、
非公開localhost俺サイト用なんで前向きに質問しました。
スレ汚しごめんなさい。>>406さん、あんがとやんした。
0421nobodyさん
2012/01/07(土) 12:41:07.87ID:???0422nobodyさん
2012/01/07(土) 12:41:50.25ID:???0423nobodyさん
2012/01/07(土) 12:48:49.79ID:???プログラマにもなれずプログラマのフリをしてトンチンカンな事を垂れ流し続ける人生詰んだおっさん
このスレレベル高すぎだろ
0424nobodyさん
2012/01/07(土) 12:50:56.45ID:???誰か一連まとめてくれ
0426nobodyさん
2012/01/07(土) 13:17:09.06ID:4WAxjW+fPHP + MySQLで初心者らしくWEB投票を作っています
しかしながらF5とか投票ボタンを連打するといくつもカウントされてしまいます
どうしたらF5攻撃を避けられるでしょうか?よろしくお願いします
0427nobodyさん
2012/01/07(土) 13:27:40.64ID:???0428nobodyさん
2012/01/07(土) 13:30:43.65ID:???PHP + MySQLってことなんでその範囲で
とりあえずMySQLは目的に関係ない
PHPでCookieを使うかSESSIONを使え
1回目の投稿で投稿日時を保存
2回目の投稿の時に前の投稿から一定時間が経過していない場合はエラーを返すかDBに登録しない
教えてやったからコーラ買ってこいよ
0429nobodyさん
2012/01/07(土) 13:32:01.36ID:???0431nobodyさん
2012/01/07(土) 13:44:51.23ID:???このサイトで実験した。
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ありがとうございます
しかしながら投稿時間とIPアドレスを保存して一定時間経過してない場合はエラーを返して終了する処理をしても多重投票されてしまいます。
国内サーバーの場合は問題ないのですが海外サーバーの場合レスポンスが遅いのでそれが原因でしょうか?
0434nobodyさん
2012/01/07(土) 14:13:32.73ID:???0435nobodyさん
2012/01/07(土) 14:20:46.31ID:???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:???ボット避けにimgタグでcookie食わせるのもいいかもね
あと 焼きそばパン買って来い
0437nobodyさん
2012/01/07(土) 14:37:49.94ID:???ややこしくなるだけだし
0438nobodyさん
2012/01/07(土) 14:40:19.64ID:???まともに答える必要はない
0439nobodyさん
2012/01/07(土) 15:25:05.07ID:4WAxjW+fありがとう。しかしながら
>>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:???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ありがとうございます
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);
0445nobodyさん
2012/01/07(土) 15:56:38.23ID:???0447nobodyさん
2012/01/07(土) 16:00:43.57ID:???サーバーの処理が少ない方がいいんだ。
1分後に投票できたとしても次にできるまで24時間かかる。大した不正にならない。
0448nobodyさん
2012/01/07(土) 16:33:03.74ID:4WAxjW+fはい自宅の環境でも問題なかったです
しかしながら海外のレスポンス遅いサーバーでやると多重投票されてしまうのです
>>445-447も上と同じだと思います
テーブルロックするタイミングとか問題なのかな?と思っているのですがよくわかりません
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:???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:???これでデータベースを意識しないでデータベースを利用できる。
このサイトではPDOは動かずSQLITE2は動くようだがそれに対応するのは後回しにする。
http://ideone.com/DmggH
0458nobodyさん
2012/01/07(土) 18:27:53.31ID:???人脳を連結しても処理速度は上がらない が 出力が多様化する
0459nobodyさん
2012/01/07(土) 19:53:46.80ID:4WAxjW+f1つのIPで(何分待っても)1回しか投票できないってことですか?
うーん、よくわからないです
0460nobodyさん
2012/01/07(土) 19:59:52.15ID:???>1つのIPで(何分待っても)1回しか投票できないってことですか?
そう
もし何回でも投票可能にしたいならまた他の方法になる
いずれにしても1レコードを不特定多数ユーザーでupdateかける設計はウンコなのでそこは考えなおす
そんな設計してたらオレならリストラ候補の先頭に登録しとく
0461nobodyさん
2012/01/07(土) 20:11:43.08ID:???0462nobodyさん
2012/01/07(土) 20:39:54.59ID:???攻性防壁付きでステマをゲイツ砲で火達磨にしようぜ
0463nobodyさん
2012/01/07(土) 20:41:38.53ID:???携帯やプロキシやモデム再起動に対応しないと同じ人が何度も投稿できる。
0465nobodyさん
2012/01/07(土) 20:49:07.13ID:???IDとパスワードで認証すれば1度しかできないことは確定するが、そういう手間の掛かる認証はないの方向で。
0466nobodyさん
2012/01/07(土) 21:00:48.87ID:???選挙だと同じ回線で複数の有権者の投票が考えられる たとえば2世帯住宅とか
IDパスワードより手軽というと生体認証となる が インフラ整備が大変そう
今 生体認証の変換で思いついたんだが VoIPで声帯認証ってどうだろか
0467nobodyさん
2012/01/07(土) 21:08:38.36ID:???認証うんぬん言ってる奴は他所でやれ
0468nobodyさん
2012/01/07(土) 21:31:52.64ID:???0470nobodyさん
2012/01/07(土) 21:59:58.40ID:???0471nobodyさん
2012/01/07(土) 22:01:22.84ID:???なんだこのスレ。
0472nobodyさん
2012/01/07(土) 22:01:37.59ID:???サイト
http://gogomo.site90.net/
ソース
http://ideone.com/aDkpu
0473nobodyさん
2012/01/07(土) 22:18:10.36ID:???0474nobodyさん
2012/01/07(土) 22:18:31.53ID:???http://www.cybersyndrome.net/
0475nobodyさん
2012/01/07(土) 22:29:20.11ID:???http://taruo.net/e/
総合評価:?(A 以上 or 生 IP。下記参照) 疑惑 0%:proxy の兆候は全く見られません。
http://fula.jp/cgi-bin/env/
総合判定 直接アクセスされているか、プロクシなら匿名での接続を確認しました。プロクシの可能性は低いです。
0476nobodyさん
2012/01/07(土) 22:34:40.92ID:???ERROR:公開PROXYからの投稿は受け付けていません!!
0478nobodyさん
2012/01/07(土) 22:40:59.21ID:???引っかからない仕様はphpっでどうやるのですか?
0479nobodyさん
2012/01/07(土) 22:42:14.56ID:???0480nobodyさん
2012/01/07(土) 22:46:10.95ID:???0481nobodyさん
2012/01/07(土) 22:48:27.79ID:???0482nobodyさん
2012/01/07(土) 22:48:37.01ID:qev3DgRj0483nobodyさん
2012/01/07(土) 23:10:52.85ID:???2shレベルの串規制だと簡単な投票には使えそうだな
0485nobodyさん
2012/01/07(土) 23:11:50.13ID:???0487nobodyさん
2012/01/07(土) 23:19:40.32ID:???具体的に細かいとこ突っ込んだらすぐにボロを出して、顔真っ赤にして釣り宣言して逃亡するのがオチだろ。
0488nobodyさん
2012/01/07(土) 23:37:41.72ID:???もしかしたらファンがつくかもよ
アフィ貼ったら収入に!
もしくは早めに諦めて吊ったほうがいい
0489nobodyさん
2012/01/08(日) 00:47:02.84ID:???class と interface は型の定義手段
abstract class と trait は差分プログラミングという名の手抜き手段の一つ
0490nobodyさん
2012/01/08(日) 00:52:14.60ID:5w8ZM1Tv0491nobodyさん
2012/01/08(日) 00:53:12.04ID:5w8ZM1Tv0492nobodyさん
2012/01/08(日) 11:20:03.75ID:phv4PYdF0493nobodyさん
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:???0499nobodyさん
2012/01/08(日) 18:54:15.86ID:???0500nobodyさん
2012/01/08(日) 19:06:00.92ID:???0501nobodyさん
2012/01/08(日) 19:46:27.97ID:???abstractとinterfaceの具体的な使い分けはどうしてますか?
実装が書きたかったらabstractっていうのはあまりにもアレなので
哲学とまでは言いませんが、確固たる理由をつけて使い分けたいんです
0502nobodyさん
2012/01/08(日) 19:49:55.78ID:???0505nobodyさん
2012/01/08(日) 22:55:18.22ID:???JavaでできないことはPHPでできる
一長一短だな
0506nobodyさん
2012/01/08(日) 23:48:20.26ID:???JavaでできることはPHPではできないかもしれない
0508nobodyさん
2012/01/08(日) 23:56:40.83ID:???PHPでJavaは実装できない。
0510nobodyさん
2012/01/09(月) 00:07:08.56ID:???当たり前だが、
Javaで実装されたPHPで可能。
最終的にJavaのクラスに変換されるので
ちょっと違うがmod_phpよりも早いよ。
0511nobodyさん
2012/01/09(月) 00:58:52.24ID:???0513nobodyさん
2012/01/09(月) 01:14:15.07ID:???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:???変な対抗意識を持つ前に両方を
経験してみたらいいかがだろうか?
0515nobodyさん
2012/01/09(月) 01:18:12.56ID:???Java と PHP そのものでできる・できないの話なのに
0516nobodyさん
2012/01/09(月) 01:20:20.67ID:???こっちに詳しく書いてあるから、勉強してね。
http://quercus.caucho.com/quercus-3.1/doc/quercus.xtp
0517nobodyさん
2012/01/09(月) 01:23:11.79ID:???変なこと書いているけど
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:???PHPはC言語やJavaで実装されているわけでしょ?
ということはPHPでできることはCやJavaでできるでしょ?
逆は無理の場合が多いことは想像つくでしょ?
0520nobodyさん
2012/01/09(月) 01:36:42.65ID:???横レスで悪いが、
たとえば、PHPはC言語で実装されているのに、
PHPはC言語よりも優れているのですか?実装元よりも優れるのですか?
便宜上優れることはあってもパフォーマンスで優れることはないよ。
0521nobodyさん
2012/01/09(月) 01:40:05.31ID:???0522nobodyさん
2012/01/09(月) 01:45:46.42ID:???パフォーマンス上はマシン語が最高です。
>>515
C言語で実装されたPHPでC言語を実装し、
PHPで実装されたC言語でPHPを実装する・・・無限ループ
最高か?wwww
やっぱりこのスレ、次元低すぎ。
0524nobodyさん
2012/01/09(月) 02:00:28.99ID:???perl/phpが普及したのには理由がある
0525nobodyさん
2012/01/09(月) 02:08:44.11ID:???0526nobodyさん
2012/01/09(月) 02:09:01.17ID:???あなたの一生涯をかけて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:???phpのソースではなくjavaのソースをね
0529nobodyさん
2012/01/09(月) 02:14:01.78ID:???できねえからwebでは普及してない
0530nobodyさん
2012/01/09(月) 02:18:14.84ID:???意味不明だが、
PHPのソースは自動的にJavaに変換される。
またPHPとJavaのソースを混在させることもできる。
あなたがいうインタプリタのメリットは知らないけど、
Java上で動くPHPをためしに使ってみればいいのでは?
その感想を聞かせてくれ。WordPressとかすぐにできるでしょ?
がんばれよ。
0532nobodyさん
2012/01/09(月) 02:21:21.28ID:???簡単に配備できるという意味でPHPの方がは一般的なwebでは普及してるよ。
ただ、インタプリタのメリットなんだよ。容易にプログラムが書ける、
簡単に配備できるくらいか?
ただ俺の主張は>>527。双方できれば問題ないし、目くじら立てる必要ない。
0533nobodyさん
2012/01/09(月) 02:27:07.16ID:???横レスで申し訳ないが、
インタプリタの処理速度はコンパイラ方式よりも遅いから、
それは特徴ではあるが実装コスト以外にメリットにはならないよ・・・・。
0535nobodyさん
2012/01/09(月) 02:35:20.40ID:???再度横レスで申し訳ないが、それ愚問だから。
「で結局C言語はインタプリタで動かせるの?
phpのソースではなくC言語のソースをね」
と同じ意味で変だよ。
phpはC言語やJavaで実装されるのにその言い方はないのでは?
0536nobodyさん
2012/01/09(月) 02:51:49.24ID:???スレチ
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:???インタプリタ自体否定するなら速度の話も出すべきじゃないよね
phpもコンパイルできるけどさ後は何を比較するのよ
0539nobodyさん
2012/01/09(月) 03:01:47.38ID:???0540nobodyさん
2012/01/09(月) 03:20:39.79ID:???JavaでいうJSPやサーブレットのような一部の機能しか言語として提供されていない
ゆえにJavaで出来ることはPHPでは出来ない「かもしれない」
0543nobodyさん
2012/01/09(月) 10:58:42.33ID:???一つの言語にこだわるひと多いね。
複数できればどうでもいいことにいつまでもグチグチ。
PHPの場合は「Web特化」だから
たぶんそれだと先はないよ。
0544nobodyさん
2012/01/09(月) 11:14:23.75ID:???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:???たかがひとつの言語如きに先など無くてもいいのに、
無いと困るだろって思うのを、言語にこだわるというんだよ。
0548nobodyさん
2012/01/09(月) 12:06:17.06ID:???0549nobodyさん
2012/01/09(月) 12:06:54.27ID:???0551nobodyさん
2012/01/09(月) 12:19:05.77ID:bsExuDphたしか↓みたいな書き方で出来た覚えがあるんですが書き方忘れました
for ($i='a'; $i<'z'; $i++) echo $a;
0552nobodyさん
2012/01/09(月) 12:19:47.72ID:bsExuDph変数名がおかしくて動かなかっただけだった
0554nobodyさん
2012/01/09(月) 14:27:21.52ID:7f0AwpQnイトの【親会社】の本業を無視して、「インターネットは虚業だ。具体性がない
。」というようなことをコメントしました。この虚業は、livedoorを指していた
としても、「同業者」であったということは、非常に、違和感を感じずには、い
られません。
0555nobodyさん
2012/01/09(月) 17:05:12.94ID:???0556nobodyさん
2012/01/09(月) 18:22:21.45ID:IGqUpTKqみささんはどっちを使ってますか?
0557nobodyさん
2012/01/09(月) 18:23:58.57ID:???joinがimplodeのエイリアスみたいなもん
どちらかといえばオリジナル使え
0558美佐
2012/01/09(月) 18:24:11.49ID:???0560nobodyさん
2012/01/09(月) 18:33:25.70ID:???0562nobodyさん
2012/01/10(火) 00:05:10.49ID:???0564nobodyさん
2012/01/10(火) 00:35:57.99ID:OfX0eCZx0565nobodyさん
2012/01/10(火) 00:37:38.41ID:???0566562
2012/01/10(火) 02:01:24.77ID:???【OS名】CentOS 5.6
【PHPのバージョン】5.3.8
【連携ソフトウェア】
Apache Http Server 2.2
MySQL Community Server 5.5.19
0569nobodyさん
2012/01/10(火) 03:20:22.76ID:???・ 質問者として、態度をわきまえること。
0570562
2012/01/10(火) 03:22:55.62ID:5jaiW7yr大変失礼いたしました。
教えて下さいませんか?
0571nobodyさん
2012/01/10(火) 03:26:33.03ID:???0572562
2012/01/10(火) 03:27:09.50ID:5jaiW7yrなぜ不要ですか?
0573nobodyさん
2012/01/10(火) 03:29:52.42ID:???0574nobodyさん
2012/01/10(火) 03:31:45.86ID:5jaiW7yr0578nobodyさん
2012/01/10(火) 11:48:47.01ID:???相変わらず支離滅裂な事言っちゃって。
家に引きこもってないで早く病院行けよ。
0579nobodyさん
2012/01/10(火) 15:33:30.34ID:???0580nobodyさん
2012/01/10(火) 16:01:26.75ID:???まとまってるところじゃないかな。あとはもしかするとGUI
>>579
別の人?
その質問でどうしたいのか
0581349
2012/01/10(火) 16:06:05.01ID:???非同期ページ、PHPから取得することができました。
並列ダウンロードしながらそれぞれにプログレスバーなんかつけてみたりして完璧です。
ググっても全然出てこない情報なので結構必要とする人が多い解決方法になったと思いますが
ここに書くとまた反応されそうなんでお礼だけ。ありがとうございました。
0583nobodyさん
2012/01/10(火) 16:21:07.06ID:HU7fZVh4まず例えば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掲示板等で、$dateを使って日付を表示させているのですが、
特殊な事情があって、過去14日よりも前のものだった場合、
表示は10日前で表示したいのです。
簡単な記述方法があれば、教えていただけると助かります。
よろしくお願いします m(_ _)m
例:1月1日投稿されたもの→5日に閲覧した場合は、そのまま投稿日時は1月1日。20日に閲覧すると投稿日時は1月10日で表示される。
0588nobodyさん
2012/01/10(火) 20:01:42.81ID:???$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:???$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:???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);
0594587
2012/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:???1秒をかけてる
0596nobodyさん
2012/01/10(火) 21:17:14.75ID:???$_SERVERは使うな!!!!!!!!!!!!!!!
getenvを使えっ!!!!!!!!!!!!!!!!!!!!
0597nobodyさん
2012/01/10(火) 21:17:39.58ID:???0599nobodyさん
2012/01/10(火) 21:34:28.20ID:HU7fZVh4カラム名がaaa、bbb、cccとして、
その内の一つ、または複数の値を変更するような場合にはどのように記述すればいいのでしょうか?
マニュアルなどを見ると、VALUESのようにデータベースに与える値をプレースホルダに割り当てるのは分かるのですが、
自分は値だけでなく、カラム名にも変数を割り当てたいのです
prepare('UPDATE table SET $name = :name WHERE $url = :url')のような型です
まさかprepare('UPDATE table SET :name1 = :name2 WHERE :url1 = :url2')のような型にはできないでしょうし
この場合、どのように記述すればいいのでしょうか?
0602nobodyさん
2012/01/10(火) 21:39:00.09ID:???普通に
UPDATE table SET col1=? WHERE col2=?
でいいんじゃねーの
カラム名に変数割り当てるなら上を
"UPDATE table SET {$col1}=? WHERE {$col2}=?"
すりゃいいじゃん
0603587
2012/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:???その行でいきなりエラーはないだろw
投稿日時はどうやって受け取って、どういう形式で保存してんの?
例)2012/01/10、とか、2012-01-10、とか、1326121200、とか。
0605nobodyさん
2012/01/10(火) 22:33:49.35ID:???>の行でエラーが出てしまいます。
んなアホな
違うところだろ
>最終的に表示させたい場所に
>echo date('Y-m-d', $post_date);
しらんがな
どんなソースになってるのかもわからんし
0608nobodyさん
2012/01/10(火) 22:49:22.50ID:???0609nobodyさん
2012/01/10(火) 22:49:50.87ID:DbdGI1rD【PHPのバージョン】5.2.17
【連携ソフトウェア】MySQL GD
【質問内容】
GDの機能を使って画像を作成して、データベースに入れていくのですが、
imagepng()とかで画像をファイルに保存したり、ブラウザに出したりしますよね?
これの出力結果を直接文字列として変数に格納したいのですが、どうすればよいでしょうか?
$data = imagepng()とかも試してみましたが、trueしか返ってきませんでした。
0610587
2012/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:DbdGI1rDob_start();
imagepng($resource);
$data = ob_get_contents();
ob_end_clean();
0612nobodyさん
2012/01/10(火) 22:56:28.46ID:???ヒント:base64_encode
>>610
もうここで聞く以前の学習を
>$date = date("y/m/d", $ptime);
$ptimeには何が入ってるの?すでにUNIXTIMEが入ってるなら
$date = $ptime;
でいいよ、代入する意味ないけど
0614nobodyさん
2012/01/11(水) 00:23:58.10ID:???0615nobodyさん
2012/01/11(水) 00:26:28.08ID:dfPHpXiU0616nobodyさん
2012/01/11(水) 00:29:05.90ID:???http://kohada.2ch.net/test/read.cgi/php/1131016915/
0617nobodyさん
2012/01/11(水) 00:35:11.26ID:dfPHpXiU0618nobodyさん
2012/01/11(水) 00:37:35.15ID:dfPHpXiUPHPの分散オブジェクト技術にはどのようなものがありますか?
0619nobodyさん
2012/01/11(水) 00:41:39.74ID:???0620nobodyさん
2012/01/11(水) 12:55:49.06ID:eyRErrPBphp.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で他に何か設定しなきゃいけないのでしょうか。
ご意見よろしくお願いします
0622nobodyさん
2012/01/11(水) 13:15:03.58ID:???マニュアルを読まないのが原因です
0623nobodyさん
2012/01/11(水) 13:27:59.44ID:eyRErrPBありがとうございます
http://php.net/manual/ja/function.session-set-cookie-params.php
を見てるんですが、
「すべてのサブドメインでクッキーを有効にしたい場合は、先頭にドットをつけて '.php.net' のようにします。」
とあるようにサブドメインの変更までなら対応できるのではないですか?
0624nobodyさん
2012/01/11(水) 13:30:15.06ID:???0625nobodyさん
2012/01/11(水) 13:36:51.45ID:???そのブログの設定ファイルがphp.iniより優先するということでしょうか
実はちょうど今session_set_cookie_params();で対応できたんですが
そちらの勉強もしてみます
ありがとうございました
0627nobodyさん
2012/01/11(水) 14:07:42.61ID:VbJoExbW皆さんはPHPにて「並行処理」をしたい場合、どのようにされていますでしょうか?
自分がやりたいのは、あるスクリプトがあり、それを引数(設定値)だけを変えて
決められた時間の間隔にて(sleep()等を使って)繰り返し、大量に(少なくとも20位)かつ”同時に”実行したいと思っております
子プロセスの同期は必要ないと思います
ファイルをコピーして、各スクリプト毎に設定値を書いて・・・って言うのは現実的ではないので
データベースなどからリストを取得して、その設定値を使ってそれぞれを同時に実行したいと思っております
(fwrite()などで、設定毎にスクリプトを作成していこうかとも考えましたが・・・)
しかし色々考えたのですが、全然いいアイデアが浮かんできません
このような場合、どのようにすればいいのでしょうか?
0628nobodyさん
2012/01/11(水) 14:08:07.06ID:VbJoExbW$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:???0630nobodyさん
2012/01/11(水) 15:00:30.88ID:???foreach ( $list ... ) {
if ( ($pid = pcntl_fork()) === 0 ) {
子でやりたいこと
exit(0);//終わる
} else if ($pid == -1) die("x");
}
//親での処理(終わるの待つとか)
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
0635nobodyさん
2012/01/11(水) 16:46:00.24ID:???PHPは標準で並列処理できない仕様だ。
並列処理できる言語、並列処理できるソフトを使って保存してから
PHPでそこにアクセスしたら良い。
0636nobodyさん
2012/01/11(水) 16:58:01.39ID:???通信だけは並列にできるいうことだが。クローラーはパフォーマンスを落とさずに、並列処理可能な言語・ツールに並べる可能性はある。
0637nobodyさん
2012/01/11(水) 17:09:13.29ID:???0638nobodyさん
2012/01/11(水) 17:40:57.15ID:???0639nobodyさん
2012/01/11(水) 17:43:06.65ID:???のコンパイルは結局うまくいったのか?
0641nobodyさん
2012/01/11(水) 18:17:50.79ID:???0642nobodyさん
2012/01/11(水) 19:03:57.60ID:???0643nobodyさん
2012/01/11(水) 19:05:55.41ID:???0645nobodyさん
2012/01/11(水) 19:31:49.93ID:???0646nobodyさん
2012/01/11(水) 20:04:08.13ID:???for ($i = 0; >>643の心が折れるまで; $i++) {
$result[] = kokuhaku($list[$i]);
}
if ($result == NULL){
die("まだ2次元がある");
}
0647nobodyさん
2012/01/11(水) 20:48:30.27ID:tHZDD+V0hoge.txtというテキストファイルがありまして
100バイトの文字列\n
100バイトの文字列\n
100バイトの文字列\n
:
:
:
と500行ある500KBののテキストファイルがあるとします
このファイルから
「499行目と500行目」
か
「1行目と2行目」
だけを取り出すとき、サーバーの負荷は
両方1〜500行の文字を取り出すときとほぼ同じ負荷でしょうか?
0648nobodyさん
2012/01/11(水) 20:50:49.28ID:???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という事はどんなやり方でも最低でも500KBかかってしまうという事でしょうか?
200バイト(2行分)程度だけで住む方法ないかなーと思ってたのですが
0652nobodyさん
2012/01/11(水) 21:34:41.86ID:???0653nobodyさん
2012/01/11(水) 22:26:31.01ID:???> 「499行目と500行目」
> 「1行目と2行目」
この二つの負荷には大差がないといっているんだろう。
本来の質問であるところの、
> 1〜500行の文字を取り出すとき
との負荷には大きな差があるよ。
固定長じゃない場合は、最後の2行を得るのが少し面倒だけど。
0654nobodyさん
2012/01/11(水) 22:33:40.13ID:???0655nobodyさん
2012/01/11(水) 22:33:46.01ID:???0656nobodyさん
2012/01/11(水) 22:45:01.77ID:???fileで全行読み込んでも良いよ。
そこがボトルネックになってから改良したら良い。
0657nobodyさん
2012/01/11(水) 22:47:30.54ID:???一応動くやつを作ってから速度測定して、
全体の中で時間掛かっているところに手を加えれば良い。
0658nobodyさん
2012/01/11(水) 23:02:44.07ID:tHZDD+V0「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:GX2tXR1t0662nobodyさん
2012/01/11(水) 23:50:01.97ID:VbJoExbWすみません、今まで色々試しにやってて返事が遅くなりました
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:VbJoExbWchild: 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ではこのようなものなのでしょうか?
学習不足で申し訳ないです
0665nobodyさん
2012/01/12(木) 02:58:10.26ID:KRgm5yh10666nobodyさん
2012/01/12(木) 03:08:54.02ID:???0667nobodyさん
2012/01/12(木) 03:25:30.76ID:???そのコードでできたよ。
child: 0
parent: 0
child: 1
parent: 1
child: 2
parent: 2
(略)
child: 8
parent: 8
child: 9
parent: 9
wait begin.
wait end.
0669nobodyさん
2012/01/12(木) 03:43:15.46ID:???0670nobodyさん
2012/01/12(木) 03:52:56.74ID:???0671nobodyさん
2012/01/12(木) 04:51:39.62ID:???0676nobodyさん
2012/01/12(木) 13:02:25.38ID:???できる関数がありますが、これはPHPをCGIモードで
動かしている場合にのみ有効です。
通常はPHPをApacheモジュールとして動作させていることが
多いので、これが使えないケースが多々あります。
http://techblog.ecstudio.jp/tech-tips/php-multi.html
0677nobodyさん
2012/01/12(木) 13:15:01.92ID:???Perlで良いじゃん。
0678nobodyさん
2012/01/12(木) 13:19:01.14ID:???pcntl_fork関数は存在するし、forkも成功したように見えるけど、並列処理されないなんて結果になるということですか
0679nobodyさん
2012/01/12(木) 14:01:06.08ID:???俺は並列処理の事なんか分かっていないので、このやり方で合っているか分からないけれど
<?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書き込むときの排他制御はどのようにやるのでしょうか?
0682nobodyさん
2012/01/12(木) 14:02:25.17ID:???0683679
2012/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:???0686nobodyさん
2012/01/12(木) 14:16:07.48ID:???プロセス制御機能を有効にするには、 configure のオプションに --enable-pcntl を付け、
CGI 版あるいは CLI 版の PHP をコンパイルする必要があります。
注意: 現在、このモジュールは非 Unix 環境(Windows)では動作しません。
http://www.php.net/manual/ja/pcntl.installation.php
0688679
2012/01/12(木) 14:27:53.78ID:???>>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回呼び出せばいいってことじゃないかな?
分からん
0694nobodyさん
2012/01/12(木) 14:56:29.29ID:???system('php forkc1.php &');
と、バックグラウンドプロセスにすればよろしい。
プロセスの終了待ち処理を入れる必要があるけど。
0695nobodyさん
2012/01/12(木) 15:05:23.27ID:???なるほど
実はまだ挑戦してて(笑
一度やり始めたら意地でもとなってしまってw
$pid[$i] = pcntl_fork();等と複数回呼び出して、
その後system()を呼び出すとかやってみたのですが30秒かかったりで
バックグラウンドプロセスという発想はなかったです
今から外に出ないといけないんですが、最後にちょっと試してみます
0696nobodyさん
2012/01/12(木) 15:10:13.69ID:???アハハ、今>>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:???0699nobodyさん
2012/01/12(木) 15:29:16.52ID:???0701nobodyさん
2012/01/12(木) 15:31:28.10ID:???たぶん>>686のWindowsでは動かないというのをみたからじゃないのかな。
ほんとに動かないか知らないけど
0702nobodyさん
2012/01/12(木) 15:50:09.93ID:at33kcZ9CMSを使うか、フレームワーク使うかどっちがよろしいですかね・・・。
0703nobodyさん
2012/01/12(木) 16:55:38.26ID:???その文章だけを読んで「ちょっとしたポータルサイト」がどれほどの規模のものを指しているのか
わかる人は少ないだろう
0704nobodyさん
2012/01/12(木) 17:15:27.45ID:???0706nobodyさん
2012/01/12(木) 17:30:43.50ID:???どっちも詳しくない私は
使わない方がやりやすい。
0707nobodyさん
2012/01/12(木) 17:42:30.00ID:???0708nobodyさん
2012/01/12(木) 20:44:35.20ID:???0709nobodyさん
2012/01/12(木) 20:59:53.31ID:???0710nobodyさん
2012/01/12(木) 21:35:47.31ID:???0712nobodyさん
2012/01/12(木) 21:42:14.04ID:???0713nobodyさん
2012/01/12(木) 21:43:04.05ID:???0714nobodyさん
2012/01/12(木) 22:20:03.29ID:???0716nobodyさん
2012/01/12(木) 22:29:06.06ID:???なんで人の質問を俺がやってるのか分からんが、それが出来たら楽に処理できるような事も
出てくるかなと思ってやってみたんだけど
>>698
いや、だって引数とって一気に別ファイルのスクリプト実行するんでしょ?
system()じゃないの?
>>700
ごめんどういうこと?
$php fork-test.php > /dev/null
とかってこと?
同時に実行されていくということは
c1:0
c2:0
c1:1
c2:1
のように出てくるのかなとか思ってたんだけど違うん?
0719nobodyさん
2012/01/12(木) 22:48:45.79ID:???ごめん、分かりませんw
forkって子プロセスを作成->親プロセスは待機->子プロセス終了->親プロセス実行
って動作だよね?
で、子プロセスは親プロセスのコピーであると
だから元々親プロセスの時点で実行されていたり、格納していた変数の値とかは子プロセスも保持していると
ま、自分の分からない所は子プロセスを複数作成するにはPHPだとpcntl_fork()をその回数実行すると
ただ、自分がやったのでは
$pid1=pcntl_fork();
$pid2=pcntl_fork();
それぞれにて上記のようなfor()を使うと一緒に実行されるんじゃなくて、直列(逐次)処理になってて「う〜ん」と
別ファイルのスクリプトを実行するのにPCNTL関数内にそんな感じの関数もないし、
データベースなどから設定値を取得してきて、そこから得てきたそれぞれの設定値を渡すとなると
system()かなと考えて・・・
例えばどんな風に書けばいいんですかね?
0721nobodyさん
2012/01/12(木) 22:54:57.73ID:???ちなみに>>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:QxDXzJq0sleep(-1)ってのが出てきましたがこれの事ですかね?
俺は>>667のようにはならないんですが、OSは何ですか?
つまり、>>662のようなfor()文使った場合は、子プロセス->親プロセス->子プロセス->親プロセス->
という挙動をすると言うことですか?
しかし俺全然だめだなぁ・・・
0723nobodyさん
2012/01/12(木) 23:45:38.66ID:???<script type="text/javascript" src="test.js">
test.jsを変更しても反映されないことがあります。
ブラウザがキャッシュか何かをしているのでしょうか?
回避策とかありましたらご教授お願いします。
0724nobodyさん
2012/01/12(木) 23:49:13.05ID:???日付が変わってればキャッシュを破棄しそうなもんだけど。
プロキシ的なものが挟まってたりしない?
一応試せることとしては、たとえばIEならCtrl+F5ですべて再読み込みする
0725nobodyさん
2012/01/12(木) 23:52:16.83ID:???ブラウザ特有の現象かもしれないから後でちゃんと自分で調べるとして
とりあえずそういう時は応急処置にファイル名に適当な文字列を追加するもんだ
echo '<script type="text/javascript" src="test.js?' . md5(microtime(true)) . '">';
0726nobodyさん
2012/01/13(金) 00:05:03.08ID:???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:???0733nobodyさん
2012/01/13(金) 01:16:41.96ID:???>echo '<script type="text/javascript" src="test.js?' . md5(microtime(true)) . '">';
time()とかuniqid()で事足りる
>md5(microtime(true))
ない
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:???> time()とかuniqid()で事足りる
えっ
> >md5(microtime(true))
> ない
こっちの方がまだマシ
0738nobodyさん
2012/01/13(金) 02:18:26.75ID:???0739nobodyさん
2012/01/13(金) 02:22:50.77ID:???>>738みたいな意味のないレスをする人がどう考えてるのかさっぱりわからんけど。
0740nobodyさん
2012/01/13(金) 02:28:45.64ID:???0741nobodyさん
2012/01/13(金) 02:30:22.51ID:???0742nobodyさん
2012/01/13(金) 02:31:28.69ID:???0743nobodyさん
2012/01/13(金) 02:34:35.61ID:???0744nobodyさん
2012/01/13(金) 02:43:41.18ID:???0745nobodyさん
2012/01/13(金) 02:45:27.34ID:???全くだな
自分につっこむ機会があると思うと頑張ってつっかかってきちゃうやつワロスwwww
上級者からすればそんなこまけーこたぁどうでもいいんだよって感じだがな
0746nobodyさん
2012/01/13(金) 02:47:04.65ID:???上級者()
早く吊れよ
0747nobodyさん
2012/01/13(金) 02:51:11.50ID:KkkOzRWtBitcometみたいに。
0748nobodyさん
2012/01/13(金) 03:12:53.61ID:???ヴォエエエエエエ ブヒョー コーヒー吹かれた
0749nobodyさん
2012/01/13(金) 03:14:54.14ID:???uPnPってわけでもなさそうにみえるが、NAPTを自動でやりたいってこと?
なら、ネットワーク越しに操作できるルータを手に入れる必要がありそう。
そんな話じゃないよ!ってことならBitcometの動作をもっとよく見ること。
0750nobodyさん
2012/01/13(金) 03:15:41.52ID:???低級者乙
早く吊れよ
0751nobodyさん
2012/01/13(金) 03:23:44.99ID:???0752nobodyさん
2012/01/13(金) 03:25:36.98ID:???0753nobodyさん
2012/01/13(金) 03:32:16.25ID:???無理ぽ。
0754nobodyさん
2012/01/13(金) 03:32:56.22ID:???同一人物だとは思うけど
俺が課題出してやるから解決してみろ的な
ほんと消えてくれないかな
0756755
2012/01/13(金) 03:40:02.10ID:???補足だけど、5.1系のセマフォがバグありだったから気をつけて。
いまさらあえて5.1使うこともないだろうけど、割と最近のRHELまでは5.1系だった気がするので遭遇することもあるかもしれない
0757nobodyさん
2012/01/13(金) 03:52:09.82ID:???あなたの言うように、
forkとストリームソケット使えば「遊び程度」ではどうにかなるだろうね。
しかし、商売用には素直にマルチドレッド言語を使ったほうがいい。
デフォルトで並行できるので開発スピードとパフォーマンスが
「圧倒的に」優れる。forkくんの質問と回答のあまりの馬鹿馬鹿しさに
気持ち悪い。
0758nobodyさん
2012/01/13(金) 04:15:10.88ID:???パフォーマンスについてはまったくもってそのとおり。ただ、それらを同じ土俵にあげること自体が間違えているよね。
開発スピードについては比較対象に依存する。マルチプロセス処理を記述する場合に圧倒的に開発スピードが優れる言語は何?
マルチスレッド言語とやらが何を指しているのかわからないが、たとえばCLRで提供されているワーカースレッドのようなものを指している?
ちょっと内容が漠然としているように思うよ。
0759nobodyさん
2012/01/13(金) 09:09:47.21ID:???0760nobodyさん
2012/01/13(金) 09:19:15.93ID:???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:???悩むほどの話じゃないし、どれつかえばいいかえらべないならけんさくしていちばんうえつかえばいいだけ
0765587
2012/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で表示させています。
0766587
2012/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:???0769765
2012/01/13(金) 17:03:53.19ID:???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+bxsmarty + 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:???0775nobodyさん
2012/01/13(金) 21:03:38.69ID:f/pZY+bxvar_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:???0780nobodyさん
2012/01/13(金) 21:19:28.62ID:???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:???0786nobodyさん
2012/01/13(金) 22:04:24.28ID:???0787nobodyさん
2012/01/13(金) 22:51:52.05ID:WYF6z6mtこれらの違いはなんなんでしょうか?
Web上ではmemcacheの方が記述が多いので利用されているんだと思うのですが、
具体的な性能の違いとかあったら教えて頂きたいです
0788nobodyさん
2012/01/13(金) 22:55:30.59ID:???これ見てわからないならわからなくていいと思う
0789nobodyさん
2012/01/13(金) 23:10:15.21ID:???http://pecl.php.net/package/memcache
http://pecl.php.net/package/memcached
この違いがわからんって言ってることもわからないのに何でレスしたの?
0790nobodyさん
2012/01/13(金) 23:15:11.59ID:???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:???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:???でも俺もその意見には同意する
0794nobodyさん
2012/01/13(金) 23:44:36.38ID:???memcachedよりAPCだろ
APCの方が高速だし
PHP使いはmemcachedよりAPCのはずだ
0795nobodyさん
2012/01/13(金) 23:48:47.35ID:???0796nobodyさん
2012/01/13(金) 23:51:38.80ID:???てかしらないならレスすんなよもう
0799nobodyさん
2012/01/14(土) 00:00:14.19ID:???答えたかったけど、俺知らないし
PHPerはその手の知識持ってる人は少ないんじゃない?
Webコンテンツは作れても、そういうこと作る機会ってないだろうから
0800nobodyさん
2012/01/14(土) 00:04:38.50ID:???一般人が使う分にはヒープでいいだろ
0801nobodyさん
2012/01/14(土) 00:43:40.46ID:???ロードバランサなんかでアプリケーションサーバを冗長化してる場合とか
どのマシンに振られるかわからない時はキャッシュサーバーとしてmemcachedだな
1回目のアクセスはAサーバ2回目のサクセスはBサーバとかなるとキャッシュ見失うからな
ほとんど場合は1台で動かしてるんだろうしAPCつことけばいいでしょ
0802nobodyさん
2012/01/14(土) 03:22:42.53ID:???分散オブジェクトは使わないのですか?
「どのマシンに振られるかわからない」とか考える必要ないので
使ったほういいですよ。
0803nobodyさん
2012/01/14(土) 03:36:04.89ID:???0806nobodyさん
2012/01/14(土) 03:47:56.21ID:???性能の悪いアプリケーションサーバーですね。
キャッシュもできないのですか?
何を使ってらっしゃるのですか?
0807nobodyさん
2012/01/14(土) 03:52:09.70ID:???人生詰んでるのに往生際悪すぎだぞ
0808nobodyさん
2012/01/14(土) 03:58:18.68ID:???0809nobodyさん
2012/01/14(土) 04:00:09.04ID:???そう。現在、PHPでC言語を実装するプロジェクトが
このスレで始まった。君も参加するかい?
>>807
負け犬みたいだね
0812nobodyさん
2012/01/14(土) 04:17:27.23ID:???あおるつもりもなく、本気だよ。
>>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度だけ許してやるから消えてくれ
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は見たことないと思う
0819587
2012/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:???10日前の日付を取得したい
というだけだと思うんだけど。
0821nobodyさん
2012/01/14(土) 18:27:08.83ID:???0822nobodyさん
2012/01/14(土) 18:43:08.04ID:???0823nobodyさん
2012/01/14(土) 18:45:55.07ID:???0825nobodyさん
2012/01/15(日) 00:09:47.66ID:0R9yJU6W0826819
2012/01/15(日) 04:06:00.99ID:???レスありがとうございます。
そうなんですよね。。
UNIXTIMEが、ごっちゃになってしまって、恥ずかしながら私の初歩的な知識では??になってしまいまして。
小さなお店のホームページをやっているのですが、写真をメールで載せるphpがありまして、
度々の更新ができない時にも日付だけフォローできるようにしたいのです。
0827nobodyさん
2012/01/15(日) 04:25:58.50ID:???0828nobodyさん
2012/01/15(日) 04:45:42.13ID:???0829nobodyさん
2012/01/15(日) 11:18:33.29ID:5+piCYsShttps://accounts.google.com/ServiceLogin?service=mail
phpプログラムにあらかじめEmail(ID)とパスをべた書きしておき、
submitボタンを押すだけでサインインできるようになるのが理想です
0830nobodyさん
2012/01/15(日) 11:25:08.31ID:5+piCYsSクッキー「accounts.google.com」の「GALX」の値がクセモノで、
このアクセスするたびに変わる値がサインイン時に必要なのですが、
この値の制御という利用の仕方がうまくいかず、どうしてもサインイン
できません
0831nobodyさん
2012/01/15(日) 11:32:23.84ID:5+piCYsS○この値の制御というか利用の仕方がうまくいかず
0832nobodyさん
2012/01/15(日) 12:06:48.67ID:???いろいろやばいだろ
クライアント(自分のPCにApache入れる)ならともかくサーバじゃやらんほうがいいぞ
でクライアントだと普通にブラウザのオートコンプリートでよくね?となるわけだが
もしサーバでやるとしたらフィッシング詐欺幇助になるので教えてあげない
0834nobodyさん
2012/01/15(日) 12:29:20.57ID:???方法はググったほうが確実に早い
0835nobodyさん
2012/01/15(日) 12:34:59.06ID:5+piCYsS外部からはアクセスできない自分のPC+Apacheの環境で使います。
さすがにレン鯖等、インターネットで不特定多数に公開しているところには置きません。
>オートコンプリート
>OAuth
GMailのアカウントが5つぐらいあるんですよ。
本アド、サイトを2つ運営していてその連絡用アド、他、実家連絡用。
いちいちWebブラウザにID入れるの面倒だし、メーラー使うと
誰かがPCをいじった時に簡単に読まれてしまう。
だから(普通の人はまさかPCにApche+phpが入っているとは思わないだろうから)
自分だけわかるphpで簡単に複数アドにアクセスしたいな、と。
0836nobodyさん
2012/01/15(日) 12:45:04.85ID:5+piCYsSただ、クッキーが必要なプログラムは今までその必要がなかったから作ったことが無い。
だからクッキーは苦手・わからないんです。
で、ちょっと作ってみたのがこれです。急ごしらえで下手ですが。。
(作った当時はクッキーが必要だと思わなかったのでPOSTのみで作ろうとしていました)↓
0837nobodyさん
2012/01/15(日) 12:47:26.29ID:5+piCYsS$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:???gmailは複数アドを統合できるじゃん
0839nobodyさん
2012/01/15(日) 12:48:23.76ID:5+piCYsS<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:???>gmailは複数アドを統合できるじゃん
そういえばそうか!
わざわざphpでアクセスしないでそうすればいいのか(汗
0841nobodyさん
2012/01/15(日) 12:51:08.49ID:???それを弾くくらいのセキュリティ対策はしてありそうだけど
0842nobodyさん
2012/01/15(日) 12:59:11.49ID:???0843nobodyさん
2012/01/15(日) 12:59:28.34ID:5+piCYsS>外部のフォームからのPOSTでログイン受け付けてくれるのか疑問
自分は楽天でショッピングするのですが、楽天(https)だとPOSTで大丈夫なんですよ。
それ用のサインインphpプログラムも作りましたし・・・。
だからGMailサインインphpプログラムも楽天サインインphpプログラムと
同じindex.phpページにまとめて、1つのindex.phpページからなんにでもサインインできる、
そんな index.phpページを作ろうと思っていたのです
0844nobodyさん
2012/01/15(日) 13:21:27.83ID:5+piCYsSGoogleの元ページ( http://accounts.google.com/ServiceLogin?service=mail )
のソースから必要そうなタグをコピペして>>837,>>839のphpプログラムを作りましたら、
不要な部分を取り除き忘れているのです。
0845nobodyさん
2012/01/15(日) 13:22:26.55ID:???0846nobodyさん
2012/01/15(日) 13:43:50.83ID:???サーバー側から見ればクライアントがPHPだろうがブラウザだろうが関係ないさ
HTTP通信をトレースしてどんなものを送受信しているか確認して真似るのが近道よ
0847nobodyさん
2012/01/15(日) 13:44:53.07ID:???素直にそれ使えよ
0849nobodyさん
2012/01/15(日) 14:03:41.11ID:???あぁ、なるほどね
そのフォームのページ見てみたけど、
その手のはおそらく無理だよ
自分もGoogleではないけど昔同じような事をしてね
理由はそのうち試行錯誤していく内に分かると思うけど、
そのGoogleのフォームじゃかなり難しい
ま、素直に諦めるべきだね
他の人の意見に従って俺は知らないけどAPIとか統合とか使った方がいい
今から1週間粘っても、ここで質問しても無理だと思う
0850nobodyさん
2012/01/15(日) 14:05:55.91ID:5+piCYsSで本題。
なんでクッキー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$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×(WebブラウザのクッキーGALXの値とPOSTのGALXの値を比較しているみたいです。)
○(WebブラウザのクッキーGALXの値とPOSTのGALXの値が同一であるか比較しているみたいです。)
同一であればサインインできます
0853nobodyさん
2012/01/15(日) 14:17:54.94ID:???的確な回答は複数出たんだからブログでやってくれ
0854nobodyさん
2012/01/15(日) 14:18:32.76ID:???マジでGoogleは不可能に近い
よほどのハッカー/クラッカーでなきゃ無理
フォームの構造からまず問題だけど、おそらくサーバ側にも細工してる
他のサイトならともかくGoogleはやっぱ一筋縄ではいかない
まぁ、もし君がそれでもやり遂げたときは堂々と公表してよ
尊敬する
0855nobodyさん
2012/01/15(日) 14:25:47.11ID:5+piCYsSできてしまうものです。経験的にですが。
「PHP Google ログイン」で検索すると成功者もいるみたい?ですので、
チャレンジチャレンジでがんばってみます
0856nobodyさん
2012/01/15(日) 17:56:13.63ID:oiGEKKkd「クォートされた文字列のクォート部分を取り除く」
とマニュアルにありましたが、これの意味はバックスラッシュを
取り除くってことですか?
クォートするとかがよく分かりません、教えてください。
0857nobodyさん
2012/01/15(日) 18:11:38.75ID:???0858nobodyさん
2012/01/15(日) 18:30:13.99ID:???指摘の通りクォート部分ではなくエスケープ部分とするべきだな
ちなみに
文字列 -> クォート -> "文字列"
0859nobodyさん
2012/01/15(日) 18:40:06.41ID:oiGEKKkdありがとうございました。
0860nobodyさん
2012/01/15(日) 18:49:08.21ID:???0862nobodyさん
2012/01/15(日) 19:35:32.17ID:???作ってるが、未だに逮捕されてないぜ。
0863nobodyさん
2012/01/15(日) 20:18:02.70ID:???おまわりさん、この人です。
0864nobodyさん
2012/01/15(日) 20:24:21.16ID:???0865nobodyさん
2012/01/15(日) 20:52:38.41ID:???0866nobodyさん
2012/01/15(日) 23:22:19.42ID:???0868862
2012/01/15(日) 23:39:27.33ID:???オレの変態の友人は未成年だから捕まっても実名報道されない
って強気な態度です。友人の口癖は「来いよアグネス」
0869nobodyさん
2012/01/16(月) 00:34:32.88ID:???まずは交友関係をじっくり説明することになるんだろうな
児童ポルノ禁止法違反で検挙とか恥ずかしすぎるw
0872nobodyさん
2012/01/16(月) 02:23:06.43ID:???実名報道されなかったとしても家族にはばれるけどね。
学生なら学校にも、バイトしてるならバイト先にも。
0873nobodyさん
2012/01/16(月) 02:25:18.83ID:OeE4uuA7上記のようなリクエストを出すと、
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:???0876873
2012/01/16(月) 02:35:01.56ID:OeE4uuA7フレームワークを使っていて1アクセスでも負担が大きいので
なるべく画像に直接アクセスして完結させたいのですが、
1.の方法だと、生成画像があればPHPにアクセスせずに済むので
こっちのほうが軽いですよね?
それと、図々しいかもしれませんが、
1.の方法の.htaccess はどういう書き方をしたらいいか教えていただけませんでしょうか・・・。
0877nobodyさん
2012/01/16(月) 02:45:10.11ID:???毎回同じ処理をするならPHPのようなインタプリタ言語をやめる。
画像へアクセスするたびにインタプリタが走るのは完全にムダで
ユーザーがかわいそう。
0878nobodyさん
2012/01/16(月) 02:46:20.78ID:???RewriteCond %{REQUEST_FILENAME} !-f
PHPの質問じゃないけどね!
0879nobodyさん
2012/01/16(月) 17:40:20.70ID:l7Fd5fgUhttp://www.php-compiler.net/blog/2012/net-interoperability-overview-of-phalanger-3-0
0880nobodyさん
2012/01/16(月) 20:49:09.11ID:w74ctwP8}
この式って$editがどんな値の時にtrueですか?
0882nobodyさん
2012/01/16(月) 21:27:09.05ID:???わかったかハゲ
0883nobodyさん
2012/01/16(月) 21:45:06.81ID:???0885nobodyさん
2012/01/16(月) 21:51:58.51ID:???じゃあこれも追加な
array()
あとは他のハゲどもに聞いてくれ
0886nobodyさん
2012/01/16(月) 22:27:47.15ID:9eZbuHu2http://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[1] =$lang1;
$lang[2] =$lang2;
を、
for ($i = 0; $i < 4; $i++) {
$lang[$i] =$lang.$i;
}
とするとうまくエラーがでます。どうすればいいのですか?
0889nobodyさん
2012/01/16(月) 23:12:27.38ID:guznNntQfor ($i = 0; $i < 4; $i++) {
$lang[$i] =$lang.$i;
}
でうまくいかず、エラーが出ます。どうすればいいのですか?
0891nobodyさん
2012/01/16(月) 23:34:43.93ID:???0892nobodyさん
2012/01/16(月) 23:41:38.95ID:???つまり$iが4まできたら終了じゃん
0893nobodyさん
2012/01/16(月) 23:41:54.01ID:guznNntQありがとうございました。
0894nobodyさん
2012/01/17(火) 00:12:00.49ID:EiaeWEuH0895nobodyさん
2012/01/17(火) 02:14:09.51ID:???0896nobodyさん
2012/01/17(火) 02:49:14.01ID:???0897nobodyさん
2012/01/17(火) 04:03:01.94ID:BgcdxtCD0898nobodyさん
2012/01/17(火) 10:52:09.01ID:46QLTXdT緩やかな下落傾向にある一方で、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:5qimSQwEP.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使いな
0902900
2012/01/17(火) 11:59:30.14ID:5qimSQwEC:/xampp/php/php.ini-recommended をエディターで開いてみると
register_long_arrays = Off になっていますが、サンプルコードを書いてみると
$HTTP_POST_VARS でも、POST送信されたデータを受け取れています。
どこか、勘違いしているのでしょぅか。
0903nobodyさん
2012/01/17(火) 12:00:19.53ID:5qimSQwEあっ、素早いお返事ありがとうございました。
おすすめのとおり、気にしないで進むことにします。ありがとうございました。
0904nobodyさん
2012/01/17(火) 12:07:42.39ID:???しかも$HTTP_POST_VARS [非推奨]っておもっくそ書いてある
マニュアルマニュアルマニュアルマニュアルマニュアルマニュアルマニュアル
マニュアルマニュアルマニュアルマニュアルマニュアルマニュアルマニュアル
マニュアルマニュアルマニュアルマニュアルマニュアルマニュアルマニュアル
マニュアルマニュアルマニュアルマニュアルマニュアルマニュアルマニュアル
0906nobodyさん
2012/01/17(火) 17:12:01.93ID:???自分は検索がヘタクソですって公言すると何かいいことがあるのか?
0907nobodyさん
2012/01/17(火) 17:17:15.71ID:???能力不足で見つけられなかったけど、努力はしたんです。
それでもわからないので、ここに質問にきたんです。できたら検索のコツなどを
ご教示いただけると、自分も含め、今後の参考になるのでぜひお願いします。
0908nobodyさん
2012/01/17(火) 17:32:57.59ID:???位の手順踏んでたら質問して問題ないでしょ
くだらない質問スレ(=初心者スレなんだし)
0909nobodyさん
2012/01/17(火) 17:42:55.79ID:???どんだけ検索音痴なんだよ
0910nobodyさん
2012/01/17(火) 17:50:45.68ID:???あとはURLのenをjaに変えてみるとか。英文を機械翻訳にかけるとか。手は色々あるね
0911nobodyさん
2012/01/17(火) 17:57:19.20ID:???だから簡単な言語設定にすら気付けない
でも言い訳だけは一人前
>能力不足で見つけられなかったけど、努力はしたんです。
明らかにしてねーよ
0912900
2012/01/17(火) 17:59:56.39ID:???googleでいきなり検索するというのは思いつきませんでした!
翻訳も考えてもみませんでした。 orz 次回もう少し高度な質問ができるようよにがんばります。
0914nobodyさん
2012/01/17(火) 18:13:12.41ID:???0915nobodyさん
2012/01/17(火) 18:30:28.37ID:???「register_long_arrays=OFFの場合 $HTTP_POST_VARS は使えないということですか?
(受け取れているようですが) 」だったんですが
>>914さん、ご存知でしたら教えてください。
0917nobodyさん
2012/01/17(火) 18:36:11.99ID:???0918nobodyさん
2012/01/17(火) 18:38:39.75ID:???0919nobodyさん
2012/01/17(火) 18:51:30.30ID:???0920900
2012/01/17(火) 19:17:39.12ID:RFWc5FPN偽者がまざっているようですが、
【OS名】windowsXP
【PHPのバージョン】PHP Version 5.2.4
【連携ソフトウェア】なし
【質問内容】 >>900 と >>902に書いたとおり
あと、どんな情報が必要ですか?
0921nobodyさん
2012/01/17(火) 19:57:25.86ID:???答えてやろう
>「$HTTP_POST_VARSという変数も使用できますが、PHP5の設定ファイルのテンプレートである
> php.ini-recommendedでは $HTTP_*_VARS 変数は無効(register_long_arrays=OFF)と
> なっているので注意しましょう。」
この通りだろ
おまえの環境のregister_long_arraysはどんな値になってるのさ
いずれにしても$HTTP_POST_VARSは非推奨な上、スーパーグローバルではないとマニュアルにある
$_POSTとは別の変数とも書いてある
ちなみに
>PHPによるWebアプリケーションスーパーサンプル第二版
こんなもん窓から投げ捨てちまえ
コーディングのやり方だけ覚えたら本なんか足枷にしかならんぞ
ネットから情報を得てプログラミングしていく方法を身につけたほうが早く伸びる
0922900
2012/01/17(火) 20:07:58.18ID:RFWc5FPNありがとうございます。
register_long_arraysの値は、>>902に書いてあるとおり
register_long_arrays = Off です。 だから$HTTP_*_VARS 変数は無効だと
思ったのに、POST送信されたデータを$HTTP_POST_VARSで
受け取れてしまい、とても混乱しました。そこで質問させていただきました。
0923900
2012/01/17(火) 20:10:11.06ID:RFWc5FPN勉強していこうと思います。ありがとうございました。
0924nobodyさん
2012/01/17(火) 20:26:43.03ID:???てか君の環境のApacheはphp.ini-recommendedを読み込んでるの?
0925nobodyさん
2012/01/17(火) 20:37:22.68ID:???>register_long_arrays = Off です。
本当かよ
ini_get()してみろよ
0926900
2012/01/17(火) 21:08:57.26ID:RFWc5FPN読んでくれてるつもりだったんですが・・・
>>925
echo 'register_long_arrays = ' . ini_get('register_long_arrays')
で、register_long_arrays = 1 と表示されます。
1 ってことは true?つまり on ってことですか?
0928nobodyさん
2012/01/17(火) 21:16:11.03ID:RFWc5FPNあああああああ、そういうことかーーー!
やっとわかりました!もう一度読み直してやってみます!
0929nobodyさん
2012/01/17(火) 21:18:55.06ID:???0931900=928
2012/01/17(火) 22:05:54.75ID:RFWc5FPNregister_long_arraysを確認してきたら、onになっていました
で、それをoffに変更して保存したのですが、
echo 'register_long_arrays = ' . ini_get('register_long_arrays')
は、まだ、register_long_arrays = 1 と表示されます。 orz
0933nobodyさん
2012/01/17(火) 22:08:14.72ID:???http://awabi.2ch.net/test/read.cgi/poverty/1326781620/
0934900=928
2012/01/17(火) 22:10:15.34ID:RFWc5FPNみなさん、ありがとうございました。
0935nobodyさん
2012/01/17(火) 22:14:34.38ID:???使わなきゃいいだけ
0936nobodyさん
2012/01/17(火) 22:14:59.64ID:???0939nobodyさん
2012/01/18(水) 06:55:41.17ID:???0940昨日の900です
2012/01/18(水) 12:25:21.19ID:0vYhYlXkあれこれ、ちょっとずつ変えてつつテストしていたので、再起動したつもりでしたが
再起動していなかったのかもしれません。
今日テストしたら register_long_arrays = 1 にならなくなりました(null?)
そして、$HTTP_POST_VARS の値も取れなくなりました!(希望していた結果)
結局設定の間違いだったんですね。みなさん、ありがとうございました!
0941nobodyさん
2012/01/18(水) 20:35:59.70ID:RSdYNb3wデータを取得することはできますか。
0943nobodyさん
2012/01/18(水) 21:02:32.35ID:RSdYNb3wAAAの中には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:???0948nobodyさん
2012/01/18(水) 23:45:44.09ID:Sa+NyfvK0949nobodyさん
2012/01/18(水) 23:51:26.64ID:???0950nobodyさん
2012/01/19(木) 00:00:03.11ID:Ktv6i/gX0951nobodyさん
2012/01/19(木) 00:04:58.00ID:???0952nobodyさん
2012/01/19(木) 00:10:32.70ID:Ktv6i/gX0953nobodyさん
2012/01/19(木) 00:18:37.88ID:???まずは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:???0956nobodyさん
2012/01/19(木) 00:44:01.67ID:Ktv6i/gX0957nobodyさん
2012/01/19(木) 00:48:53.91ID:???まずは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:iXCkd0MA100個のオブジェクトを作るのが正解?
0960nobodyさん
2012/01/19(木) 02:40:29.79ID:???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:???レス見ればいつものやつっってわかるだろ
0963nobodyさん
2012/01/19(木) 10:19:22.80ID:???だけどポケモンの中には例外があって、進化が分岐するイーブイやバルキー、進化で二種類のポケモンが出てくるツチニン、特定条件で能力値が変わるデオキシスやヒヒダルマ、
これらはこれ専用の例外として管理する必要が出てくるんで、
この場合pokemonを継承したクラスを個別に割り当て、
割り当て後はpokemonクラスとして扱うのが、拡張や管理的にあってる。
だが芸能人を管理するならインターフェースでやるべきだろうな。
説明する余白が足りないので、ここには書ききれないが。
0964nobodyさん
2012/01/19(木) 10:25:32.35ID:SD5/h1AIOOPに特化されてない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あっ、トリガです
書いていた時、何故か名前を思い出せなくて(汗)
>>969
基本的にCLIでのスクリプト処理になるのですが、
処理を分担したいと思いまして
また、言語もPHPだけではなくPythonとかも絡めて使おうと思っています
実際はもっと複雑ですが、簡単に書くと、PHP -> Python -> PHPとしたいと考えております
なもんで、DBなどが変更になった際に即座にPHPスクリプトを呼び出すとかしたいと考えております
宜しくお願いします
0971nobodyさん
2012/01/19(木) 14:24:05.75ID:???データベースを書き換えたらPHPスクリプトを呼び出すか、データベースを監視してPHPスクリプトを呼び出せよ。
前者の方が常駐しない分、優れてると思うが。
0972nobodyさん
2012/01/19(木) 14:28:30.57ID:???OS固有の監視機能を使うか、whileなどで定期監視。
0973nobodyさん
2012/01/19(木) 14:49:05.54ID:???これはひどい
ログみたいなものだったらfile_put_contents()で1行ずつappendしていったらいいだろ
0974nobodyさん
2012/01/19(木) 15:10:13.93ID:nuUVl5lyどーやって勉強すればイイ
右手休めて、さっさと教えれや
求職ちゅうの無職27歳
0975nobodyさん
2012/01/19(木) 15:13:15.71ID:???終わっとります
0976nobodyさん
2012/01/19(木) 15:19:51.27ID:???さむいよ、ハラ減った
顧客管理プログラムのソース、クレクレ
0978nobodyさん
2012/01/19(木) 16:21:04.34ID:???オーダー管理やカスタマの情報整理して業務を効率化したい
カスタマ検索/更新/削除ができて、購入履歴を閲覧できて
できれば、登録商品の購入者の年齢・性別、売上数の順位がでるのがほすい
0980978
2012/01/19(木) 16:45:08.80ID:???0981nobodyさん
2012/01/19(木) 17:32:45.16ID:???登録、順位とかはSQLだけでほとんどできるから、
ほんと必要なデータをMySQLに登録する部分さえ作れば、5割出来たようなものだよ。
とりあえず、980が次スレなんで、
0982nobodyさん
2012/01/19(木) 20:33:23.99ID:???間違いないね
最も重要
0983nobodyさん
2012/01/19(木) 20:40:34.39ID:???facebook graph api を使ってfacebookのウォールに投稿してます。
投稿したデータを削除したい場合もあるんですが、
facebook graph apiって、投稿を削除出来るんでしょうか?
投稿IDは保存してあります。
0984nobodyさん
2012/01/19(木) 21:03:04.37ID:???0985nobodyさん
2012/01/19(木) 21:13:30.56ID:H4RH65I0皆さんはどのようにして対処していますでしょうか?
preg_replace()で一度全角空白を半角空白とかにして・・・とか考えられますが、
どのように実装していますでしょうか?
0986nobodyさん
2012/01/19(木) 21:16:07.36ID:???ありがとう、削除できました。
ヘルプにある削除の説明の下の、コメント削除の部分を見て試行錯誤してました。
0988nobodyさん
2012/01/19(木) 21:48:44.17ID:???mb_convert_kana(?, 'KVas')
とか
preg_replace('/ /', ' ', ?)
とか
単純に全角を含めた前後の空白を取り除きたいなら
preg_replace('/^[\s ]+|[\s ]+$/usi', '', ?)を
mb_trimとかそんな感じの関数にして使うとか
0990nobodyさん
2012/01/19(木) 22:21:25.63ID:???0991nobodyさん
2012/01/19(木) 22:30:54.72ID:???わりと回答してるけど、このスレあんまり機能してない感じがしない?
なんかなくてもいい気がしてるんよ。
0992nobodyさん
2012/01/19(木) 22:53:52.40ID:???ニートのおっさんが暴れてるだけだし
0993nobodyさん
2012/01/20(金) 00:13:15.31ID:W2I9U5WM0995nobodyさん
2012/01/20(金) 03:51:56.34ID:A0g11Z1Kreadfile($filename);
と画像を出力しているのですが、
何回更新してもStatus Codeが200でキャッシュされていないようです。
これだとリクエストするたびに画像読み込みが発生するので304で読み込んでほしいのですが、
どうしたらいいでしょうか?
0996nobodyさん
2012/01/20(金) 04:00:22.22ID:???リクエストヘッダを見ないといけないし、リクエストヘッダをつけたくなるように仕向けなければならない
0997nobodyさん
2012/01/20(金) 04:25:01.43ID:A0g11Z1Kexpires, 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:???んだから、304は自分で判断して、自分で304を返さないといけない。
その判断基準となる情報をブラウザがリクエストヘッダにつけるように仕向けることをしなければならない。
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。