5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :nobodyさん:2011/11/29(火) 19:55:27.17 ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

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

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

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

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

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

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

2 :nobodyさん:2011/11/29(火) 19:56:30.82 ID:???
■過去ログ
【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/
【PHP】下らねぇ質問はID出して書き込みやがれ 101
http://hibari.2ch.net/test/read.cgi/php/1289793607/

3 :nobodyさん:2011/11/29(火) 19:56:52.17 ID:???
関連リンク
■本家マニュアル   http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル  http://pear.php.net/manual/ja/
■メーリングリスト   http://ns1.php.gr.jp/mailman/listinfo/
■ZFマニュアル    http://framework.zend.com/manual/ja/
■Smartyマニュアル  http://www.smarty.net/manual/ja/

(以下英語)
■Zend本家      http://www.zend.com/
■Zend Framework  http://framework.zend.com/
■php | architect   http://www.phparch.com/
■Smarty       http://www.smarty.net
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/

4 :nobodyさん:2011/11/29(火) 19:57:12.80 ID:???
【簡易FAQ】
1.文字コードは何を使えばいいの?
 →1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
 → http://example.com/が例文などのために予約されている。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
 → Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
 → 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
  「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
 → {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
 → cronかタスクスケジューラを使え。
7.extractって危険なの?
 →変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
 → URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
 → .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。

5 :nobodyさん:2011/11/29(火) 19:57:33.71 ID:???
10. そもそもインストールの時点でうまくいかない
 → 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
  Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
 → データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
 → ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
 → 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
 → よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
  http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
15. クッキーの情報をユーザから隠したい
 → セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
 → strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
 → まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
 → C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
  参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(http://〜とか)を扱う際の限界
 → fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
  必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
 →19.を参照
21. 画像処理一般 or GDの限界
 → ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
 → 好きにしてください

6 :nobodyさん:2011/11/29(火) 21:15:16.97 ID:LGqBs4Ty
Perl忍者の顔が晒されてる
http://img.pics.livedoor.com/011/7/b/7b93db5444cf92f7cc91-LL.JPG
http://img.pics.livedoor.com/011/3/7/37af7e092c96cad7b14f-LL.JPG
http://img.pics.livedoor.com/012/5/1/51bc3004b6b4ec99063a-LL.JPG
http://img.pics.livedoor.com/012/a/6/a6cf04c9fe815ad28228-LL.JPG

7 :nobodyさん:2011/11/29(火) 22:25:53.70 ID:???
バロンのエクストラハイバックか
机が普通だと違和感あるねw

8 :nobodyさん:2011/11/30(水) 00:01:28.45 ID:???
http://hibari.2ch.net/test/read.cgi/php/1320005469/997

if (!isset($param)) $param = ''; // caseに出てこない文字列
switch($param){
case 'a':break;
case 'b':break;
default:break;
}

9 :nobodyさん:2011/11/30(水) 10:17:38.58 ID:gvpuZTLB
PHPファイルの中のコメントを全て削除したいのですが、上手い方法が思いつきません
全体を読み込んで、正規表現にて除去とかは分かるのですが、コメントの場合分けが難しいです
例えば、//とか/* */とか
今回は特に気にしませんが、/* */はDocblock コメントの場合は除くとか
//に関しては文字列中の//は対象としないとか
どのようにすればいいのでしょうか?
正規表現の指定法または、参考になるサイト、ライブラリなどもしご存知でしたらアドバイスいただけないでしょうか?

10 :nobodyさん:2011/11/30(水) 10:26:16.60 ID:???
http://www.php.net/manual/ja/tokenizer.examples.php

11 :nobodyさん:2011/11/30(水) 10:33:04.34 ID:gvpuZTLB
>>10
あわっ、ありがとうございます

12 :nobodyさん:2011/11/30(水) 12:37:33.71 ID:???
windows7です

ちょっとしたバッチ処理をphpで書いているのですが
そのphpのフルパスに日本語が入っていても正常に動かないのでしょうか

例えば"C:\ソ" にutf-8で"test.php"を作って
その中身が
<?php
error_log("あいうえお",3,"errorLog.txt");
?>
の場合でも、「Could not open input file: C:\ソ\test.php」というエラーが出ます。
典型的なダメ文字の症状ですけど。

$p="errorLog.txt";
$p=realpath($p);
$p=mb_convert_encoding($p,"SJIS-win","utf-8");
error_log("あいうえお",3,$p);

で絶対パスを取って、sjis-winに変換しても変化なしでした。

13 :nobodyさん:2011/11/30(水) 19:52:05.02 ID:kRVuJcbm
すみません
ものすごく初歩的な質問なのですが
CSVファイルから、特定の文字列が存在する行のみhtmlに書き込むには
どのようにすればいいのでしょうか?

14 :nobodyさん:2011/11/30(水) 19:57:11.40 ID:???
初歩的っていうか丸投げですねとっても
まずどうやってみたのかのコードを出してください

15 :nobodyさん:2011/11/30(水) 20:05:19.23 ID:???
>>13
ものすごく初歩的ですので、PHPを使う必要はないと思います。
以下のコマンドでどうでしょうか

grep 特定の文字列 > 出力ファイル.html

16 :nobodyさん:2011/11/30(水) 20:06:34.47 ID:???
ごめんなさい
grep 特定の文字列 CSVファイル.csv > 出力ファイル.html
の間違いでした。

17 :nobodyさん:2011/11/30(水) 20:18:44.92 ID:???
>>12
PHPが対応するまでムリです。

>>13
echo join("<br />", preg_grep("/pattern/", file("example.csv")));

18 :nobodyさん:2011/11/30(水) 20:50:36.50 ID:???
>>14>>15>>16>>17
非常に親切な返答をありがとうございます
grepナニソレのレベルなので
まずは自分で調べてみます
お粗末な質問で失礼いたしまた。

19 :nobodyさん:2011/11/30(水) 21:07:55.47 ID:???
>>17
エスパー乙
でも、joinつかうならimplodeで。

20 :nobodyさん:2011/11/30(水) 22:51:41.16 ID:CyKoUyyW
ZOZOTOWNの商品画像ってリクエスト時にサムネイルを生成しているようなんですが、
これと同じように実装すると、1ページに数十画像表示すると
PHPへのリクエストも数十になって、その都度サムネイルを生成するのでとても重くなってしまいます。

http://imgc.zozo.jp/goodsimages/2163901/2163901_14_D.jpg?w=500&h=600
これがサンプル画像です
http://imgc.zozo.jp/goodsimages/2163901/2163901_14_D.jpg?w=50
このようにw,hの数字を変えるとその大きさの画像が生成されます。
zozoのコード見なければわからないのは承知ですが、エスパーというか予想して助言くださいませんでしょうか。

最初に自分で思いついた実装が
1度生成されたサムネイルはそのままサーバに保存して、次回同じサイズのものがリクエストされると、
生成せずに保存した画像を静的に取りに行く、というような方法です。
何かもっと良いアイデアがあれば教えてください。

21 :nobodyさん:2011/11/30(水) 23:34:18.43 ID:???
>>20
wの制限は500まで(1000といれても500の画像が返ってくる)
元画像の比率を保ってるのでhは無意味(いらんパラメータ)

・元画像が500*600でw<500の時元画像を縮小して表示している
・レスポンスが遅すぎることから毎回画像を生成している可能性は高い(キャッシュしてる可能性は低い)

22 :nobodyさん:2011/11/30(水) 23:54:34.74 ID:???
>>20
<img width="50" height="60">でいいんじゃない?

23 :nobodyさん:2011/11/30(水) 23:55:56.82 ID:CyKoUyyW
>>21
>・レスポンスが遅すぎることから毎回画像を生成している可能性は高い(キャッシュしてる可能性は低い)
最初は遅いんですが、もう1度同じサイズをリクエストするとすぐ返ってきません?
>>20で予想したように、1度生成したサイズは保存してるんじゃないかなぁと思ってるんですが・・・

24 :nobodyさん:2011/11/30(水) 23:58:48.04 ID:CyKoUyyW
>>22
それだと、元画像分のサイズを全ての画像が読み込まれるので
通信量がものすごいことになりそうです
利用者側からしてもかなり遅くなるかと

25 :nobodyさん:2011/11/30(水) 23:59:23.36 ID:???
>>24
光回線が当たり前の時代にそんなの微々たる問題

26 :nobodyさん:2011/12/01(木) 00:15:29.49 ID:???
昔の2chみたいにCPUより通信量ネックという事情もあるかもしれない。
縮小とキャッシュのとこは、自分で答えが出てるんだからそうすればいいだけ。

27 :nobodyさん:2011/12/01(木) 00:16:44.84 ID:???
>>25
携帯のこととか考えると必ずしもそうとは言えない

28 :nobodyさん:2011/12/01(木) 00:29:16.50 ID:???
だがよく考えて見てほしい
あの狭い画面でPCと同じ画像のページを開くことは考えにくいということを。

普通にリサイズして別途用意するなり
したほうが早いんじゃないかと。

3キャリアの端末もまだまだ大石蔵之介…

29 :nobodyさん:2011/12/01(木) 00:32:42.87 ID:???
>最初は遅いんですが、もう1度同じサイズをリクエストするとすぐ返ってきません?
そらブラウザがキャッシュしてるだけだろjk
サーバ側じゃキャッシュされてないよどうみても

30 :nobodyさん:2011/12/01(木) 01:27:59.24 ID:yrVuSQr5
phpファイルを読み込んで出力するのはrequireだと思うんですが、
phpファイルの部分的に(functionなどでわけられていないもの)使いたい場合どうしたらいいでしょうか?
file関数で配列にいれて、必要な部分だけechoしたら、phpとして動作せずそのままhtmlに吐き出してしまってうまくいきませんでした

31 :nobodyさん:2011/12/01(木) 01:41:23.65 ID:???
>>30
http://jp.php.net/manual/ja/function.eval.php

まぁそんなおかしな使い方はやめたほうがいいと思う

32 :nobodyさん:2011/12/01(木) 01:46:04.10 ID:xxc60IvZ
>>28
必要な画像サイズを洗い出して
その種類分用意するのもありですね
zozoのような方法がメンテの面などでも一番フレキシブルに対応できるので良いんですが・・・

>>29
ブラウザのキャッシュを忘れていました・・!
ただこの時間にリクエストすると待ち時間無しですぐ生成されますね

33 :nobodyさん:2011/12/01(木) 02:06:06.55 ID:???
>>31
どうもです。
やめときます

34 :nobodyさん:2011/12/01(木) 10:56:09.73 ID:a+GODL7E
【OS名】Win7 32-bit
【PHPのバージョン】5.3.8
【連携ソフトウェア】特になし
【質問内容】
NetBeans IDEというのをダウンロードして入れてみました。
各言語版がありますが、英語版だとショートカットの
操作がやりやすいなどの利点はありますか?

35 :nobodyさん:2011/12/01(木) 11:08:51.39 ID:???
http://hibari.2ch.net/test/read.cgi/tech/1273665879/

36 :nobodyさん:2011/12/01(木) 11:10:40.00 ID:a+GODL7E
>>35
ありがとうございます。移動します。

37 :nobodyさん:2011/12/01(木) 17:48:01.42 ID:JnuQSJ9i
ある配列で、A,B,C,D,EがA,B,E,C,Dとかに変わったとき
今、なにがどこの位置に入ったかを知りたいんですが
どうにかして、知る方法ってありますか?

foreachで頭からまわしても、違う場所は取れるけど
A,B,C,D,E → A,B,D,E,CとCを一番下に持ってきたときに
Cが一番下に行ったと判断ができません。

ドラッグ&ドロップで要素をもってきてこの間に入れるみたいなイメージしていただくと
わかりやすいですでしょうか?
A,B,C,D,E → E,A,B,C,D(Eを一番上にもってきた、Aの上にもってきた)
A,B,C,D,E → A,C,D,B,E(BをDとEの間に入れた)

よろしくお願いします。

38 :nobodyさん:2011/12/01(木) 18:05:14.95 ID:???
>>37
単にどれが何番目に入ってるか知るだけなら、はじめに
array("A"=>1,"B"=>2,"C"=>3,"D"=>4,"E"=>5) とか基準配列を作って
変化後の配列の中身をforeachで調べればいい。
結果としてどういうデータが欲しいんだろう?期待する結果データ例が欲しいね。

39 :nobodyさん:2011/12/01(木) 18:15:02.96 ID:JnuQSJ9i
>>38
ありがとうございます。
基準配列と、実行後配列はもってるんですよね。

結果データとしては、この配列の値がココに移動したよってのを
スクリプト内で知りたいんですよ。

iGoogleとかMyYahooとかのでのモジュールをD&Dしたりできますよね。
結果を取得してデータをインサートしてるんですが
その移動の解析用に、どこの位置にあったものがどの位置にいったかをしりたいんですよね。

この説明わかりづらいですかね?w

40 :nobodyさん:2011/12/01(木) 18:25:00.51 ID:???
移動したものだけがほしくって、その操作によって位置をずらされたものはほしくないってことだろうか

41 :nobodyさん:2011/12/01(木) 18:35:30.45 ID:???
>>39
具体例を書けって言ってるのに。
例えばCが三番目から最後に移動したら C => "3-5" みたいなデータが欲しいってこと?

42 :nobodyさん:2011/12/01(木) 18:38:18.50 ID:JnuQSJ9i
>>40
なんどもすいませんw
そうですね。ズレたものが、どの位置に入ったかってだけですが、
ずらされたもの全ても、必要っちゃ必要かもしれません。
そこは、チョット仕様見直します。

今のところの結果としては()内が結果の配列イメージです。
実際はいろんな値が組み合わさっているので、少し違いますが、純粋に直すとこんな感じです。
A,B,C,D,E → E,A,B,C,D(null,E,A)
A,B,C,D,E → A,C,D,B,E(B,E,D)
A,B,C,D,E → B,C,D,E,A(E,A,null)

みたいな感じですかね。

一応、歴は長いんですが、全然閃かなくって・・・
バイトで外注請けおったものなんで、周りに聞きづらくw
もし、スレチでしたら、違う所で聞くようにします。

43 :nobodyさん:2011/12/01(木) 18:46:48.41 ID:???
>>42
考えすぎなのでは。
From:A,B,C,D,E → To:A,B,D,E,C としたら、
何が:最初から見て行って違うところのFromの文字
どこに:上の文字のTo内の位置

カッコ内の配列の意味は分かりませんので無視しました。


44 :nobodyさん:2011/12/01(木) 18:50:25.39 ID:JnuQSJ9i
>>43
確かに考えすぎかもしれませんww
昼過ぎから頭パンク状態ですw

何が動いたかってのが、分からないんですよ。
現状、前と結果の配列だけしか返ってきてないので、
Cが動いたんだけど、その位置調べたら的なことができません。。
そこは、設計ミスか。。。w

45 :nobodyさん:2011/12/01(木) 18:51:40.91 ID:???
>>42
結果の配列がよく分かんないけど、移動したデータとその前後かな?
という前提で、入れ替え操作はJSでやってるとして、
入れ替えたタイミングでJSで前後取得してAjaxで送ればいいんじゃないの。
ただやっぱり値そのものと別に順番の数値データを記録したほうがいいと思うけど。

46 :45:2011/12/01(木) 18:53:30.92 ID:???
リロードしてなかった。言いたいことは43とだいたい同じです。

47 :nobodyさん:2011/12/01(木) 18:54:47.74 ID:JnuQSJ9i
>>45
そうですね。移動したデータとその前後です。
ちょっと事情があって、JSの実装が現状できない状態なんですよ。。。スイマセン。
サーバーサイドだけでなんとかできないかなと悩んでいるんです。

48 :nobodyさん:2011/12/01(木) 18:56:41.74 ID:JnuQSJ9i
チョット整理します。
>>43のは、下記の様なEが上に動いた場合、ひっかかってしまうのかなと。
A,B,C,D,E → E,A,B,C,D(null,E,A)

ん。。いいけるか?・・・

49 :nobodyさん:2011/12/01(木) 19:02:26.68 ID:???
みんな配列の意味がわからんといっているのに。
その配列が、ほしいものを表現しているはずで、それの意味がわからない限り、ほしいものを理解できないんよ。

ちなみに歴どのくらいですか。

50 :nobodyさん:2011/12/01(木) 19:07:25.17 ID:???
>>49
(移動後の前のデータ,移動したデータ,移動後の後ろのデータ)
nullは先頭か末尾 でしょ。
順番数値を記録したほうがいいと思うけどねぇ。

51 :nobodyさん:2011/12/01(木) 19:08:34.14 ID:JnuQSJ9i
>>49
配列の意味は、>>45さんの言った通り、移動したデータとその前後です
A,B,C,D,Eがあったとして
先頭にEを移動した場合は、 null , E , A
BとCの間にEを移動した場合は、 B,E,C
Aを一番後ろに持ってきた場合は、E,A,nullという感じです。

歴はサイト作り始めてからだと、10年くらいですかね。
主にC,C++,perl,phpで作ってます。

52 :nobodyさん:2011/12/01(木) 19:14:29.96 ID:c0/6kWvj
データソース取得したデータをスケジュールカレンダーみたいに表示するには
どのようなプログラミング方法が考えられるでしょうか。
データソースを繰り返させて、そのなかでifで 何月の時は、こう 何もなかったら、 こう
とさせるのが、ベターなかんじですか ?

データソース

1月, ほげほげ
1月, なんちゃら
2月, あらあら
3月, おらおら
3月, きゃんきゃん
3月, にゃんにゃん
5月, ぱっぱら
 表示
 ↓
1月
 ほげほげ祭り
 なんちゃら祭り
2月
 あらあら祭り
3月
 おらおら祭り
 きゃんきゃん祭り
 にゃんにゃん祭り
4月
 無し
5月
 ぱっぱら祭り

53 :nobodyさん:2011/12/01(木) 19:39:23.19 ID:JnuQSJ9i
やっぱり、JSで動かしたやつの値を入れてもらったほうがいいですかね。

明日にでもチョット相談もしてみます。

54 :nobodyさん:2011/12/01(木) 19:43:44.88 ID:???
>>48
動いたのがAなのかEなのかチェックできれば終わりだね。
方法はいろいろあるけど、貴方が判断してる方法でやればいいだけ。

55 :nobodyさん:2011/12/01(木) 19:52:00.67 ID:iRQfyLtk
すいません、他のスレに誤爆してました。

OSはcentos5.5
apache2モジュールphp5

nobody権限なんですが、sell_exec()からmysqlを実行したいのです。
セキュリティに問題なく実現する方法はないでしょうか。


56 :nobodyさん:2011/12/01(木) 19:52:25.19 ID:JnuQSJ9i
>>54
配列同士を比べて、どれがどの位置に入ったかって判断するのは
多分可能なんでしょうけど、すごいめんどくさそうですしねw
久しぶりに頭フル回転しました。。。ありがとうございます。

57 :nobodyさん:2011/12/01(木) 20:46:25.15 ID:???
>>51
> A,B,C,D,E → A,C,D,B,E(B,E,D)
は、
A,B,C,D,E → A,C,D,B,E(D,B,E)
だったってことか。
読み取れなくてごめんな

58 :nobodyさん:2011/12/01(木) 20:49:11.20 ID:???
>>56
もしかしてなんだけど、1個しか動かない前提なの?

59 :nobodyさん:2011/12/01(木) 21:06:04.20 ID:???
>>56
ABCEDの場合はEとDのどちらが動いたと判定するの?

60 :nobodyさん:2011/12/01(木) 21:07:29.47 ID:???
読んでないが{元の位置、内容}の配列でいいだろ。

61 :nobodyさん:2011/12/01(木) 21:09:17.83 ID:Uf/kHM0d
>>58
えっと、D&DでJSからのAPIが投げられるので基本ひとつしか動かないです。
まとめても出来なく無いですけど、実装してないですね。
でも、まとめてもありかもw

>>59
あ、なるほど。。。
ABCEDだと、確かにどっちが動いたか判断できないですね。。。orz
だめかwwwwww

トドメをありがとうございます!ww

62 :nobodyさん:2011/12/01(木) 21:38:08.39 ID:???
1個しか動かないんなら、どれが動いたかをhiddenにもっておけばいいような。
どこにってのも、動いた先の前要素(または後要素)のいずれかを持っておけばよいような。
ってやれば結果配列を持つ必要なくね?

63 :nobodyさん:2011/12/01(木) 21:39:50.86 ID:???
あと、どれが動いたのかを知る必要性が今のところ見当たらなくて。
操作履歴みたいなのを保存したいのか、状態の変化を保存したいのかで変わってくるんだけども。

64 :nobodyさん:2011/12/01(木) 22:02:39.65 ID:Uf/kHM0d
>>62,63
いや、hiddenとかHTMLをいじれる状況じゃなかったので
配列2つの比較で、出来るかなぁと思って相談してみたのですが、
>>59でトドメになっただけです。

HTMLをいじれるなら、簡単なことなんで。
複雑なものなので、短絡化して相談しただけです。

65 :nobodyさん:2011/12/01(木) 22:19:48.63 ID:???
APIもいじれない状況なのね。
なんかしんどそうだけどがんばってw

66 :nobodyさん:2011/12/02(金) 00:17:56.21 ID:+5TRrPlW
日本語、改行、タブ文字の混ざった文章を日本語を維持しつつ、一行に変換&復元したいです。

具体的に言うと、json_encode()の様に
\→\\、改行→\n、タブ→\t ・・と変換して与えられた文字を1行のテキストに変換したいです。
json_encode()でいいかと思ったのですが、json_encode()だと日本語が\u3042 の様に変換されてしまいます

\→\\、改行→\n、タブ→\t の変換だけなら自力でやればいいかと思って
$b=str_replace("\\\\",'\\\\',$a);
$b=str_replace("\n",'\n',$b);
の様な処理を書いてみたのですが、どうも上手く変換&復元が出来ません。
特に\\nを復元する時、\\→\を先にやると\\n→\n→改行 となってしまい
\n→改行を先にやると、\\n→\改行 となってしまい
期待している\\n→\nという復元が出来ません。

json_encode()で日本語を\u3042のように変換させない手段、又は\\n→\nが出来る処理。
手段は問いませんので
日本語、改行、タブ文字の混ざった文章を日本語を維持しつつ、一行のテキストに変換&復元する方法を教えて下さい。

67 :nobodyさん:2011/12/02(金) 00:27:15.22 ID:???
>>66
\\nは\\とnなんだから \という文字とnになるのであってそれは 改行ではないよ?

68 :nobodyさん:2011/12/02(金) 00:31:00.03 ID:???
諦めてbase64やjsonやURLエンコード使っとけ。
PHPで希望の変換かけばコストが掛かかってしまう。
それができると既存エンコードよりどの位いいんだよ。

69 :nobodyさん:2011/12/02(金) 00:36:52.94 ID:???
"\\\\"でexplodeして、それぞれの要素でで\n,\tの変換後、"\\"でimplode

70 :nobodyさん:2011/12/02(金) 00:55:44.16 ID:???
>>66
また地味に難しいことやってるな…
変換は
after = "".join(split("\n", before)) みたいに http://codepad.org/JNgpgisa

できても after -> before と戻すのは至難だと思うんだが…

71 :nobodyさん:2011/12/02(金) 00:57:35.23 ID:???

2バイト目が5C等になりうることによる問題
Shift_JISでは、「ソ」「噂」など一部の字の2バイト目に、5C16(Shift_JISでは¥記号、ASCIIなどではバックスラッシュ)を使用している。
Shift_JIS - Wikipedia


72 :nobodyさん:2011/12/02(金) 02:38:39.13 ID:???
>>67
それはわかってそうじゃん
>>69
それでいいと思う
>>70
改行コードを消そうとはしてないようだよ
>>71
それに出くわしてはなさそうだね

73 :nobodyさん:2011/12/02(金) 02:49:22.79 ID:???
>>72
お前誰だよw

74 :52:2011/12/02(金) 08:05:15.26 ID:sTn2jPiz
>>52

75 :nobodyさん:2011/12/02(金) 08:30:20.12 ID:???
>>52
何に困ってるのか全くわからん。

76 :nobodyさん:2011/12/02(金) 12:51:07.78 ID:???
PHP覚えたら就職できますか?
44才魔法使いです

77 :nobodyさん:2011/12/02(金) 13:36:01.28 ID:???
>>76
魔法が使えるなら、どこでも就職できると思うんですが

78 :nobodyさん:2011/12/02(金) 14:50:32.81 ID:???
>>52
年間行事の表示方法なんて、PHPと関係ないだろ。好きな様に表示しろよ。

79 :nobodyさん:2011/12/03(土) 03:28:44.39 ID:???
>>76
>>1

80 :nobodyさん:2011/12/03(土) 09:45:28.38 ID:FACCXriu
55ですが、どう足掻いてもセキュリティ上無理っぽいのでwebのphp(nobody)では登録ファイル書くだけにして、予め予約しておくcronでチェックしてdb登録することにしました。


81 :nobodyさん:2011/12/03(土) 12:29:45.93 ID:???
>>80
Mysqlは頻繁に起動したり止めたりするものではないだろうけど
sudo とかでできないの?

82 :nobodyさん:2011/12/03(土) 15:33:03.81 ID:50KGadHw
/** clean a string from the diacritics
function _cleanString($string) {
$diac =
/* A */ chr(192).chr(193).chr(194).chr(195).chr(196).chr(197).
/* a */ chr(224).chr(225).chr(226).chr(227).chr(228).chr(229).
/* O */ chr(210).chr(211).chr(212).chr(213).chr(214).chr(216).
/* o */ chr(242).chr(243).chr(244).chr(245).chr(246).chr(248).
/* E */ chr(200).chr(201).chr(202).chr(203).
/* e */ chr(232).chr(233).chr(234).chr(235).
/* Cc */ chr(199).chr(231).
/* I */ chr(204).chr(205).chr(206).chr(207).
/* i */ chr(236).chr(237).chr(238).chr(239).
/* U */ chr(217).chr(218).chr(219).chr(220).
/* u */ chr(249).chr(250).chr(251).chr(252).
/* yNn */ chr(255).chr(209).chr(241);
return strtolower(strtr($string, $diac, 'AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn'));
}
}
というのが外国のライブラリの中にあったのですが、何をやっているのか意味が分かりません
最後のAAA〜は何を意味しているのでしょうか?


83 :66:2011/12/03(土) 17:05:05.70 ID:???
>>67-71
どうにも難しいみたいですね。
\を\自体と\xの2パターンあるのが難しい理由みたいです。

結局、最初にAAの様なキーを作って
改行→AA1、タブ→AA2・・としました。
もちろん、最初に変換対象の文字にAAは無い事を調べた上で。
全パターンのキーがあってキーの作成が出来なかったら破綻しますけど・・・

84 :nobodyさん:2011/12/03(土) 17:22:33.21 ID:???
>>82
$string 内にあるアクセント付きアルファベット($diac) を
アクセントの無いアルファベット('AAAAAA〜')に strtr して、strtolower してる

85 :nobodyさん:2011/12/03(土) 17:30:37.82 ID:UqIE+ehV

 =& ってどういう意味ですか?


86 :nobodyさん:2011/12/03(土) 18:18:59.34 ID:50KGadHw
>>84
これは自分たちのような日本語を使う場合でも必要な処理でしょうか?
外国だから必要なのかなと思いまして
見たことがなかったので

87 :nobodyさん:2011/12/03(土) 21:52:27.47 ID:AR407ZHO
phpをfastcgiのように、常に起動させる為のコマンドオプションとか
知っていらっしゃる方がいたら教えてほしいです。




88 :nobodyさん:2011/12/03(土) 21:59:06.19 ID:zvnHXPsG
1024サイズのモニタで作成したHPは27インチワイドとかの
モニタではどのように表示されるのでしょうか?


89 :nobodyさん:2011/12/03(土) 23:36:02.97 ID:???
>>88
作り方次第。PHP関係ない

>>87
検索して調べられないなら知らなくていいんだと思う。

>>86
いらない

>>85
http://jp2.php.net/manual/ja/language.references.whatdo.php

>>83
えー

90 :66:2011/12/03(土) 23:53:42.79 ID:???
ファイルロックに関してです。
2つのプロセスを走らせて、プロセスAで
$fp=fopen("A.txt","r+");
flock($fp,LOCK_SH);
ftruncate($fp,0);//←ここでファイルサイズが0になる
fseek($fp,0);
fwrite($fp,"あいうえお");
fclose($fp);
と言う処理をusleep(200000);で0.2秒sleepさせながら実行し
もう片方のプロセスBは
$fp=fopen("A.txt","r+");
fgets($fp);
fclose($fp);
という普通のファイル読取処理を0.1秒間隔で実行し、fopenが成功したか、fgetsが成功したかを順次表示させています
clearstatcacheは毎回しています。

プロセスAだけであればあいうえおという文章が書き込まれるのですが
プロセスBを同時に走らせるとプロセスAのfwriteで0が返ってきて書き込みに失敗し、ファイルサイズが0になってしまいます。
この原因も知りたいのですが、ファイルロックについて詳しく知りたいです。

LOCK_SH、LOCK_EXそれぞれの場合、そのロックを行い
別プロセスでfopen、fgets、fclose、filesizeの様なファイルに関係有る処理を行った場合、どうなるのが仕様なのでしょうか。
ロックされているファイルに対してプロセスBでfopenを行った場合、プロセスAでロックが解除されるまでプロセスBは待機されるのかと思ったのですが
そうはなりませんでした。

91 :nobodyさん:2011/12/03(土) 23:54:04.67 ID:???
名前欄は特に関係ないです

92 :nobodyさん:2011/12/04(日) 00:03:25.67 ID:???
>>90
http://php.net/manual/ja/function.flock.php
まず、正しい使い方と注意事項読んでね。

でも、いろいろ検索するとこれじゃ駄目だって分かると思うよ。

93 :nobodyさん:2011/12/04(日) 00:59:35.07 ID:zQYW8hqE
PHPで数式を扱いたいのですが、教えて下さい
例えば、簡単な例で言えば高校数学の組み合わせで出てくるコンビネーション(C)等を表すPHP関数はマニュアルを見てもないようです
他にも、Σや微分・積分など(まぁ、微分・積分は自分は必要はないですが)

これらのような方程式などを扱うためのライブラリとか、アルゴリズムの載ったサイトとかありましたら教えていただきたいのですが

ある数式をPHPで・・・と思ったのですが、その最初の数式の方程式の所で分からなくなりまして

94 :nobodyさん:2011/12/04(日) 01:15:52.07 ID:???
Cなんか、自分で作っても一瞬でしょうに。
ここで聞くなら、その数式を書かなきゃ。

95 :nobodyさん:2011/12/04(日) 01:45:19.41 ID:???
>>94
同意
必要ななのか、CやらPやらの作り方を書くだけでも答えてくれるかもよ

96 :nobodyさん:2011/12/04(日) 01:48:20.62 ID:zQYW8hqE
>>94
まぁ、コンビネーションなどは確かにすぐではありますが、数式の例がパッと浮かびませんでして上記のようなものを適当に書いてみました
すみません

自分のやりたい数式は統計、分析系でしてΣ、条件付確率を多用します
一からそういった数式のアルゴリズムを学習して、何度の高いものに挑戦しようかと思いまして
ライブラリに関しましても、そのまま利用するよりも中身をハックしようと考えていました


単純ベイズとか、ピアソンの相関係数とかやってみたいと思っています


97 :nobodyさん:2011/12/04(日) 01:50:51.85 ID:???
>>92
なるほど、flockはflockにのみ影響を与えるのか。
つかめてきました。ありがとう

98 :nobodyさん:2011/12/04(日) 01:56:44.95 ID:???
>>96
PHPよりCのほうがいろいろ揃ってる気がする

99 :nobodyさん:2011/12/04(日) 02:39:44.21 ID:???
>>83
単に前からなめてけばいいだろ

100 :nobodyさん:2011/12/04(日) 02:41:43.64 ID:???
ぺろぺろ

101 :nobodyさん:2011/12/04(日) 03:05:45.07 ID:UvLgiAdt
【OS名】CentOS
【PHPのバージョン】5.2
Digest認証をしてるディレクトリ内にあるPHPスクリプトから、
同じディレクトリ内のページにfile_get_contentsすると失敗する。
file_get_contentsで認証できませんか?

102 :nobodyさん:2011/12/04(日) 11:16:41.58 ID:ZwuGc3Sg
【OS名】Linux系(詳細不明)
【PHPのバージョン】5.3.5
【連携ソフトウェア】MySQL
【質問内容】
海外サーバ(ローカルタイムは米国西海岸)を使っていて、
MySQLに時刻データ(日本時間)を保存するとき、どの方法がスマートですか?
データ更新時刻を保存します。

1. CURRENT_TIMESTAMPで西海岸時間を保存して、表示で日本時間を作る
2. time()でUNIX時間をINTで保存して、表示で日本時間をつくる
3. 日本時間を作ってDATETIME形式で保存
4. その他

今は3で日本時間を作ってDATETIME形式で保存するように書いてみたのですが、
UNIX時間の方が処理しやすいことが多いかと思います。
DATETIME形式だとSELECTすればそのまま読めるので便利なのは間違いないですが。
皆さんはどのようにしていますか?

103 :nobodyさん:2011/12/04(日) 14:00:17.69 ID:???
>>102
素直にサーバー内の時間変えたら?

104 :nobodyさん:2011/12/04(日) 14:00:18.40 ID:uNIlr6eZ
switch文についてですが、
case 1:
 処理
case 1:
case 2:
 処理
 break;
・・・

の処理で、下の処理を先にしなければならないとき、
case 1:
case 2:
 処理
case 1:
 処理
 break;
・・・

にすると、case2は最後まで条件文をたどることになりますよね?
回避策としては、
case 1:
case 2:
 処理
case 2:
 break;
case 1:
 処理
 break;
・・・

ぐらいしか思い浮かばないのですが、冗長な気もします。
何か良いアドバイスをください。

105 :nobodyさん:2011/12/04(日) 14:04:59.47 ID:???
>>104
???

106 :nobodyさん:2011/12/04(日) 14:26:45.63 ID:ZwuGc3Sg
>>103
MySQLに接続のたびにタイムゾーンを変更する必要があるので、
変更をし忘れると時刻の整合性がとれず、えらいことになるので
それは避けたいところです。

107 :nobodyさん:2011/12/04(日) 15:25:26.81 ID:DlY6x1ss
Y!ニュースのコメ欄を取得したいです。
↓JSON形式?がうまく変換できません、誰か教えて!

<?php

$url = "http://capi1.cpf.yahoo.co.jp/camp/v1/list/?prop=1&uri=http%3A%2F%2Fheadlines.yahoo.co.jp%2Fhl%3Fa%3D20111203-00000051-jij-soci";
$file = file_get_contents($url);
echo json_decode($file);

?>

108 :nobodyさん:2011/12/04(日) 15:30:49.25 ID:???
JSONPみたいだから
先頭の「listhandler(」と末尾の「)」を削ってからjson_decode()に渡してみては?

109 :nobodyさん:2011/12/04(日) 16:16:27.90 ID:DlY6x1ss
>>108 できました!ありがとうございます^^

110 :nobodyさん:2011/12/04(日) 16:20:58.73 ID:f63/zsl+
PDOでの接続に日本語を含むパスは使えませんか。
オープンできないんですが。Windowsです。

111 :nobodyさん:2011/12/04(日) 16:24:32.79 ID:f63/zsl+
こんなのみつけました。読み込み方法はありますか。



ぼくがPDOを採用しなかったわけ(Shift_JISによるSQLインジェクション)
PHPのデータベース・アクセス・ライブラリPDOは、DB接続時の文字エンコーディング指定ができないため、文字エンコーディングの選択によっては、プレースホルダを使っていてもSQLインジェクション脆弱性が発生します。
http://www.tokumaru.org/d/20100701.html


phpファイルはUTF-8で保存して、設置パスに日本語が含まれないように注意(DBファイルが開けない)。
http://www.tumblr.com/tagged/pdo?before=1321315724

112 :nobodyさん:2011/12/04(日) 16:47:23.36 ID:???
>>111
1個目は関係ないよ

113 :nobodyさん:2011/12/04(日) 17:12:55.32 ID:???
>>102
TIMESTAMPもDATEも現地時間で保存なんかしない
タイムゾーンを設定するのはクライアント側の仕事
接続する度に SET time_zone = '+9:00'; なり発行しなさい

114 :104:2011/12/04(日) 17:17:45.05 ID:???
PHPだけの話じゃないので他で聞いてきます
スレ汚しすみません

115 :nobodyさん:2011/12/04(日) 18:07:39.98 ID:???
>>114
いや、ここでもいいんだけど、何がしたいかがわからん

116 :nobodyさん:2011/12/04(日) 18:09:00.78 ID:???
各処理に処理A、処理Bとか書いてないからわけわからんね

117 :nobodyさん:2011/12/04(日) 22:01:35.78 ID:???
ほんと読解力ないな。

case 1:
 処理A
 処理B
 break;
case 2:
 処理A
 break;

を無理やりフォールスルーで何とかしたいって話だろ。
アドバイスとしては「やめてください」。

118 :nobodyさん:2011/12/04(日) 22:02:39.93 ID:???
やめてくださいで終わりだけどさ。
部下がこれどうしますって言ってきたらやめろで終わりだけどさ。

119 :nobodyさん:2011/12/04(日) 22:46:22.38 ID:???
処理をfunction化するか、switch文を分割するか、が妥当な方法だと思うけど
既存のコードをあまり変えたくないなら>>104でもいいんでないの

120 :nobodyさん:2011/12/05(月) 01:33:15.00 ID:???
>>114
【MySQL】下らねぇ質問はID出して書き込みやがれ 2
http://hibari.2ch.net/test/read.cgi/db/1322402682/

DB板にココをパクッたのがあったwww

121 :nobodyさん:2011/12/05(月) 02:49:55.96 ID:???
http://hibari.2ch.net/test/read.cgi/tech/1322981274/10-

122 :nobodyさん:2011/12/05(月) 03:36:31.20 ID:???
相手にされてなくてワロタ

123 :nobodyさん:2011/12/05(月) 04:13:37.79 ID:PhZ7RtX8
クラスに存在しないメソッドを呼び出された時の処理ですが、$this->obj->{$name}の引数を決め打ちにしてます。
これをエレガントにする方法ってありますか?

function __call( $name, $arguments ) {
if( method_exists( $this->obj, $name ) ){
return $this->obj->{$name}( @$arguments[0], @$arguments[1], @$arguments[2], @$arguments[3], @$arguments[4]);
}else{
parent::__call( $name, $arguments );
}
}

124 :nobodyさん:2011/12/05(月) 05:20:52.70 ID:???
>>123
呼び出すときにそのobjがどんなメソッドと引数を持っているか
推測しないといけない設計はあまり好まず…そこは素直にクラス作りんしゃいに一票。

125 :nobodyさん:2011/12/05(月) 05:52:43.56 ID:Df4UWWf4
質問です。
ネット上のオセロの対戦サイトっぽいの作ろうと思っています。
そこで、通信のやり方が分かりません。
不特定多数の人がそのサイトにログインするまではいいのですが、対戦は1対1なので、
対戦が始まったらその二人の間でのみ通信が行われないといけないのですが、
そのような通信は一体どうやればいいのでしょうか?
オセロのプログラム、描画はJavaScriptで書いています。

126 :nobodyさん:2011/12/05(月) 06:04:21.68 ID:???
対戦が始まってもサーバーのphp介さないとできないよ


127 :nobodyさん:2011/12/05(月) 06:08:30.42 ID:4I6BeXxu
PDOプリペアドステートメントについて質問です。

ソートに使用するorder byやdescやascを、
バインドしてもうまく働きません。

$sort_by = "hoge"; //実際は外部から取る値
$is_desc = true; //外部から指定

$stmt=$dbh->prepare("select * from t where 1 order by :sort :which");
$stmt->bindValue(":sort", $sort_by);
if ($is_desc) {
 $stmt->bindValue(":which", "desc");
} else {
 $stmt->bindValue(":which", "asc");
}
$stmt->execute();

これは内部で
select * from t where 1 order by hoge desc
ではなく、
select * from t where 1 order by "hoge" "desc"
となってるからなのは分かるのですが、
こういうケースの場合はどうしたらいいのでしょうか?

よろしくお願いします。

128 :nobodyさん:2011/12/05(月) 06:10:49.64 ID:???
>>126
はい、そこで、PHPで、どうやって対局者二人にだけ通信処理を行うようにするのか
知りたいのです。

129 :nobodyさん:2011/12/05(月) 06:25:04.96 ID:???
対戦中の2人が数秒置きにリクエストを送ってサーバに問い合わせる
サーバは送られてきたクッキーとセッションを照合しながら二人を追う
現在のゲームの進行状況をクライアント(2人)に返す
返した結果によってクライアント画面に反映する
この繰り返し

片方側からのリクエストが途絶えて
片方からのリクエストを3回連続で受け取った場合
もう片方はゲームを途中でやめた判定する

いわゆるポーリングという技法
実装が簡単だがよりリアルタイムに近づけるにはインターバルを1秒未満にしなくてはならず
ゲーム中はF5アタックをしてるようなものなのでレンタルサーバではやってはいけない

130 :nobodyさん:2011/12/05(月) 06:39:35.66 ID:???
>>129
成る程、分かりやすいです。
送られてくるクッキーとセッションで送信者が識別できるのなら実現できそうです。
やっぱりいろいろと問題もあって、難しそうですね。
レンタルサーバーでもやり方次第でなんとかなると思ったので、いろいろ試して
みようと思います。
とにかく簡単なプロトタイプを作って動かすまではやってみます。

131 :127:2011/12/05(月) 07:25:44.75 ID:4I6BeXxu
order by句を指定せずソートをプログラム側で行うか、
プリペアドステートメントは使わず、PDO::query()+PDO::quote()で行うしかないんでしょうか?
なんかベストな解決方法を知っていたらお願いします。

132 :nobodyさん:2011/12/05(月) 13:11:31.92 ID:???
>>123
call_user_func_array(array($this->obj, $name), $arguments);

>>131
ORDER BY句は自力で組み立てて
そっから PDO#prepare() に渡す
ちなみにバインドできるのはリテラル値だけ

133 :nobodyさん:2011/12/05(月) 14:23:18.46 ID:???
>>132
http://stackoverflow.com/questions/8343399/calling-a-function-with-explicit-parameters-vs-call-user-func-array

横からだけど
引数が5つ以上になると call_user_func_array のほうが早くなるんだな…
それより短い場合は短ければ短いほど不利で
引数が一つだけ取るようなケースだと、二倍くらい遅くなると。勉強になりました感謝。

134 :nobodyさん:2011/12/05(月) 16:17:45.57 ID:uI9LFaIu
質問させてください!
まずはソースを貼ります。
$_query =
"select F.seq_user, U.seq, COUNT(F.seq_user) AS total
FROM tbFavorites AS F
LEFT JOIN tbUser AS U ON F.seq_user = U.seq
    group by F.seq_user
order by total desc limit 25";
if ($result = $mysqli->query($_query)) {
if ($result->num_rows > 0) {
$userranking = array();
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
$userranking[] = $row;
}
$result->close();
}
}
for($i=0;$i<25; $i++){
$_query =
"select COUNT(F.seq_user) AS total
FROM tbFavorites2 AS F
WHERE F.seq_user = ".$userranking[$i]['seq']."
limit 1";
if ($result = $mysqli->query($_query)) {
if ($result->num_rows > 0) {
$row = $result->fetch_array(MYSQLI_ASSOC);
$userranking[$i]['total']= $userranking[$i]['total'] + $row['total'];
$result->close();
}
}
}
$smarty->assign('userranking', $userranking);

135 :nobodyさん:2011/12/05(月) 16:24:09.16 ID:uI9LFaIu
134のソースの解説です。
tbFavorites(商品ジャンルA)、tbFavorites2(商品ジャンルB)はユーザが二つの種類の商品をお気に入り
に登録するためのtableです。

今どのユーザがたくさんお気に入り登録したかをランキング形式で出そうとしています。
しかし134のソースではジャンルAでまずランキング上位25人を出してしまっています。

本当ならジャンルAとジャンルBの合計値を出したあとに上位25人を出したいのですが
うまいやり方が思いつきません。どなたかお知恵をお貸しください。

136 :nobodyさん:2011/12/05(月) 16:54:20.79 ID:???
合計値で25件とれるSQLにするか、
全件とって自分でがんばるかどっちか



137 :nobodyさん:2011/12/05(月) 16:56:30.82 ID:uI9LFaIu
合計値で25件とれるSQLを作りたいのですが
うまくいきません。JOINとUNIONで試してみたのですが
全然期待通りの値にならないのです。。。

138 :nobodyさん:2011/12/05(月) 17:43:15.14 ID:???
UNIONしたやつをGROUP BYでどう?
テーブル構造は?
DB板のが答え速そうだな

139 :nobodyさん:2011/12/05(月) 18:24:42.35 ID:???
>>134
UNIONでできなかったってのが、UNION ALLでダメだったのかどうかにもよるけど。

select count(seq_user) as total from (
select seq_user from tbFavorites
union all
select seq_user from tbFavorites2
)
group by seq_user
order by total desc limit 25

あと、tbUserと結合する意味がなさそう。

140 :nobodyさん:2011/12/05(月) 18:25:52.85 ID:???
って、ユーザ情報出したいからか。ごめんごめん。

141 :nobodyさん:2011/12/05(月) 19:07:21.50 ID:wb46KamG
phpで外部リソースを取得する関数って
セキュリティ的に問題ないんですか?負荷も掛かるだろうし。

142 :nobodyさん:2011/12/05(月) 19:08:59.07 ID:???
スクレイピング全般に対する懸念?

143 :nobodyさん:2011/12/05(月) 21:33:08.80 ID:???
踏み台にされんように注意はせんとね

144 :nobodyさん:2011/12/05(月) 21:48:37.75 ID:FlRxYHcs
PHPってR言語対応のモジュールとかライブラリ、関数とかありますでしょうか?
マニュアル見たところ無いようなのですが
statsは全然まとめられていないながらも、あるようですが

145 :nobodyさん:2011/12/05(月) 23:53:12.26 ID:???
たまに¥マークがついてるコードみるけど
¥マークはどういう時に使うのでしょうか?


class Model_Crud extends \Model implements \Iterator


146 :nobodyさん:2011/12/05(月) 23:56:49.45 ID:???
>>145
スレタイを声に出して読みましょう

147 :nobodyさん:2011/12/06(火) 00:12:06.88 ID:???
志村〜

148 :nobodyさん:2011/12/06(火) 00:23:22.19 ID:???
http://www.php.net/manual/ja/language.namespaces.faq.php

149 :nobodyさん:2011/12/06(火) 00:29:20.77 ID:???
>>148
ありがとうございます。

150 :nobodyさん:2011/12/06(火) 12:02:11.48 ID:bGnivCFj
質問させてください
携帯で、あるページにアクセスした時、その携帯のメーラーを立ち上げることってできるでしょうか?
どうやったらいいでしょうか
PHP5を使っています

151 :nobodyさん:2011/12/06(火) 12:02:28.57 ID:OdBx5Qxg
>>138,139
ありがとうございます。おかげさまでできました。
お礼が遅くなりました><
原因はgroup byがちゃんと使えてませんでした。


152 :nobodyさん:2011/12/06(火) 12:51:16.74 ID:???
>>150
メアド踏めばそうなるけど、そういうことじゃなくて?

153 :nobodyさん:2011/12/06(火) 13:09:00.01 ID:???
mailtoストームみたいなことやりたいんじゃね

154 :150:2011/12/06(火) 13:09:11.32 ID:bGnivCFj
>>152
レスどうもです。そういうことではないんですよ
1)リンクを踏む
2)ページAに遷移してDB処理、終わったらページBにリダイレクト
3)ページBに移動したら自動的にメーラーが立ち上がる
というのをイメージしています

ページBにリダイレクトしなくても、ページAでのDB処理が終わったあとに
何らかの方法でメーラ起動できればそれでいいんですが…
header関数とかの問題かなと思ったんですが、ヒントが見つからない状況です

155 :150:2011/12/06(火) 13:10:07.14 ID:bGnivCFj
>>153
そんなことやりませんよw

156 :nobodyさん:2011/12/06(火) 13:32:46.53 ID:???
>>154
header('Location: mailto:test@example.com');

157 :nobodyさん:2011/12/06(火) 13:38:57.60 ID:???
やったことないけど、メアドに302するとどうなんの

158 :nobodyさん:2011/12/06(火) 13:39:18.56 ID:???
って同じことがかかれてたw

159 :nobodyさん:2011/12/06(火) 13:56:53.94 ID:???
普通にリンクなりボタンなりをクリックさせた方がいいんじゃないの?
メーラーが勝手に開くのは怖いしウザい

160 :nobodyさん:2011/12/06(火) 14:10:13.41 ID:???
気持ち悪がられて客を逃す
避けるべき実装

161 :nobodyさん:2011/12/06(火) 14:12:49.28 ID:16sWocHt
>>159
メーラーが勝手に開くリンクからメール送ったことってほとんどないな。

162 :150:2011/12/06(火) 14:19:00.41 ID:bGnivCFj
>>156
こんな簡単なんですか
すみませんでした、試してみます。ありがとうございました

>>159-161
ご意見どうもです
説明不足でしたが>>154の「1)リンクを踏む」のリンクに「メールを送る」と書くつもりです
多分大丈夫かと…
ありがとうございました

163 :nobodyさん:2011/12/06(火) 15:06:42.60 ID:???
>>161
携帯だと空メ登録よくあるからいいんでないの

164 :nobodyさん:2011/12/06(火) 16:56:44.79 ID:???
>>162
gmail しか使ってなかったり linux のクライアントだとメーラー設定してなかったり
あるのでテキスト直書きで、テキスト@hoge.com 件名は○○○で送ってください
とか併記しておいて欲しいと思う吉宗であった…

165 :nobodyさん:2011/12/06(火) 20:56:46.07 ID:16sWocHt
フォームにデータを入力すると画面が切り替わるようなサイトで、
URLはhoge.phpのまま変わらないというのがありますが、
これはPOSTメソッドで同じURLにPOSTして、ifなどで条件分岐して
表示を変えているんでしょうか?

この手法は一般的ですか?
トークンによるCSRF対策も問題なく動作しますか?

166 :nobodyさん:2011/12/06(火) 20:58:56.71 ID:???
>>165
問題ないよ

167 :nobodyさん:2011/12/06(火) 21:00:57.91 ID:16sWocHt
>>166
ありがとうございました。

cart1.php
 ↓
cart2.php
 ↓
cart3.php
とか書いていたのですが、ダサイので書き直します。

168 :nobodyさん:2011/12/06(火) 22:44:11.20 ID:QHQ8UGsv
【OS名】CentOS 
【PHPのバージョン】5.3 

お世話になります。セッションについて勉強中です。

[A]というサイト上にあるログイン用のプログラムで
session_name(セッション名);
セッション名を設定した上でセッション利用
cookieにはランダム文字列のセッションIDが記録されます。

このあと、全く別サーバー・別ドメイン上にあるPHPで
echo $_COOKIE["セッション名"];
と書いてアクセスすると
[A]サイトのセッションID(ランダム文字列)が丸見えになっています。

1.悪意のある人が$_COOKIE["セッション名"];でセッションIDを抜き出す
2.偽装した上ですぐさま[A]サイトにアクセス
3.ログイン状態

となってしまうのではと想像しているのですが
何か良い対策は無いでしょうか?

セッションに対する自分の認識自体が間違っていたら面目ございません。

169 :nobodyさん:2011/12/06(火) 23:16:25.33 ID:???
>>168
セッション名とセッションのキーを混同してないか

170 :nobodyさん:2011/12/06(火) 23:28:44.00 ID:???
>>168
BサイトにAサイトのクッキーを差し出すUAがいるってことか

171 :nobodyさん:2011/12/07(水) 14:57:17.18 ID:???
>>168
とりあえず、青木ヶ原かどこかへ行った方が良い
ここでは君のような池沼は扱っていない

172 :nobodyさん:2011/12/07(水) 14:57:42.29 ID:???
そうなってませんで終わりだろが。

173 :nobodyさん:2011/12/07(水) 16:15:10.80 ID:wyHjvonw
ブラウザを閉じたらセッションは終了すると聞きました。
その場合、端末側のcookieは自動的に削除されますか?

端末側から一定時間操作をしないとセッションが終了しましたと
表示されるサイトがありますが、これはどのようなコードを
書いているのでしょうか?

セッションスタート時に、その時刻をセッション変数に記録する
次のセッションスタート時に、前回記録した時刻と現在時刻を比較して
一定以上経過していると、ログインページに案内する
こういう仕組みでいいのでしょうか。

それともsession.gc_maxlifetimeをいじればいいのでしょうか。

174 :nobodyさん:2011/12/07(水) 16:27:58.44 ID:???
ブラウザを閉じたらセッションが終了するわけではありません。閉じようがずっと続くようにも出来ます。

セッションは、時間で消され たり します。
session.gc_maxlifetime などが関係ありそうです。

また、それとは別にセッション時間を記録するのも、それでなにをしようと自由です。
そのときは、セッションを自分で消さなくちゃいけません。

175 :nobodyさん:2011/12/07(水) 16:40:10.05 ID:wyHjvonw
>>174
>閉じようがずっと続くようにも出来ます。
逆に、ブラウザを閉じたらセッション終了するにはどうすればいいでしょうか。

176 :nobodyさん:2011/12/07(水) 16:42:40.64 ID:???
>>175
ブラウザを閉じたことをサーバ側が知ることはできません

177 :173:2011/12/07(水) 16:49:16.54 ID:wyHjvonw
>>176
ということは、
セッションが開始されると端末側にcookieができる(許可する場合)
サーバ側はそのcookieでセッションが継続していると判断する
ブラウザを閉じても、cookieがあって、セッションの有効期間中なら
セッションは継続される
ということですか?

別件ですが、セッションIDをURLに埋め込む場合、
どのようなセキュリティ対策が必要ですか?

1. http→httpsに移行するときにセッションIDを変更する
2. セッションIDが無効なときは、トップに転送
を考えていますが、セッションIDが無効かどうかはどのように判断できますか?

178 :nobodyさん:2011/12/07(水) 16:53:00.73 ID:???
cookieでセッションが継続していると判断するというのが若干違うのかなぁ。
セッションを継続したり保持してるのはサーバーで
cookieに入れるのはその名前というかキーだな。 cookieがあったとしても
セッションがあるかどうかは別。

179 :nobodyさん:2011/12/07(水) 17:01:38.88 ID:???
>>177
そのセッションIDつきのURLをほかの人が使ったときに、セッションの乗っ取りができないようにする対策が必要です

180 :173:2011/12/07(水) 17:16:59.06 ID:wyHjvonw
>>178-179
ありがとうございます。

たとえば、
アリスがセッション 111 をスタート
セッション111は失効または手続完了でdestroyされる
あとで、アリスまたはボブがセッション111をスタートしても、
前回の続きを表示せず、別の正当なセッションID 123 を発行する。

チャーリーが存在しないセッション 222 を指定したときは、
そのIDを無効として受け付けず、代わりに正当なセッションID 234 を
発行する。

このようなことができればいいと思っています。

181 :nobodyさん:2011/12/07(水) 17:19:13.21 ID:???
>>180
上と下は同じこと言ってるの分かる?

182 :173:2011/12/07(水) 17:21:57.43 ID:wyHjvonw
>>181
セッション111がガーベージコレクトされていなければ、
サーバ側にまだ情報は残っているので、セッション111を
指定すれば取り出すことはできないですか?

そういう意味で最初から存在しないものと区別したつもりだったのですが。

183 :nobodyさん:2011/12/07(水) 17:29:53.80 ID:???
session_destroy()してあれば、サーバーのハッキングでもされない限り見えんでしょ。

184 :173:2011/12/07(水) 17:39:38.10 ID:wyHjvonw
>>183
session_destory()はそういう仕様なのですね。
終了せず、放置されて有効期間が経過したときはどうでしょうか。
セッションの有効期間は15-25分程度を考えています。

185 :nobodyさん:2011/12/07(水) 17:53:46.99 ID:???
そっちはガーベージコレクトの話になるのかな。時間後必ず消えるわけじゃないとか、
削除タイミング。 検索して調べてね。

186 :173:2011/12/07(水) 18:03:23.50 ID:wyHjvonw
>>185
ありがとうございます。大体つかめてきました。
削除の確率を上げればいいんですね。

187 :nobodyさん:2011/12/07(水) 18:27:44.54 ID:???
のっとられることの対策が見えない

188 :173:2011/12/07(水) 18:32:35.12 ID:wyHjvonw
乗っ取られる対策は、トークンでのCSRF対策で兼ねられると思いますが
どうでしょう。

商品を選ぶ→httpsに移動→配達先を入れる→確認→完了
という構成で、お金はオンライン決済ではなく代引きなどで
もらうので、少なくともhttpでの乗っ取りはさほど深刻ではないと
考えています。

189 :nobodyさん:2011/12/07(水) 18:39:22.08 ID:WEP6SmbY
クッキーは偽造できると思う。

190 :nobodyさん:2011/12/07(水) 18:58:36.31 ID:???
よくわからん。
乗っ取った人が、商品を選ぶ→httpsに移動→配達先を入れる→確認→完了
ってやってもさほど深刻ではないということ?

191 :nobodyさん:2011/12/08(木) 01:47:49.47 ID:???
っていうか、乗っ取りは考え出したらきりないけど
sessionで生成される桁数を考えたら、ループで回すのも大変だろうし
もし不安なら、こんなのもあるから、コレでほぼ大丈夫だと思うよ。
http://d.hatena.ne.jp/do_aki/20100319/1269021432
人的コストとレスポンスが遅くなるコストよりも、こんな対策も考えてみてはいかが?


192 :173:2011/12/08(木) 01:57:01.85 ID:XeoPGUCw
>>191
ありがとうございます。
作ろうとしてるサイトでは、たぶん乗っ取るメリットがないので
あまり気にしていないのですが、最初のセッション開始時に
IPとUAを記録して、重要なステップの前にマッチするのはどうでしょう?

>>190
注文した人の情報が他人にわかると深刻ですが、
商品を選んでる段階ならもし乗っ取られても問題ないかと。
httpsに移動して配達先を入力してもらうところで
セッションIDを変更する処理を入れようと思いますが。

193 :nobodyさん:2011/12/08(木) 02:10:40.20 ID:???
>>192
SESSION['IP']とかにIPを入れるんだったら
ま、毎回マッチさせてもいいんじゃない?それくらいなら

194 :nobodyさん:2011/12/08(木) 02:42:30.46 ID:???
>>192
商品を選んでる段階ではログインしてないってことかな。

195 :173:2011/12/08(木) 05:29:47.98 ID:XeoPGUCw
>>194
はい。会員登録やログインのシステムは作りません。
商品を選ぶ→httpsに移動→送り先を入れる→注文完了
これだけです。

>>193
そうですね。
CSRF対策は考えようと思っています。

196 :nobodyさん:2011/12/08(木) 11:58:55.42 ID:+gCf/58v
変数の定義で
var $title = '';
と varがあるのと
$title = '';
と varがないんと
何が違うんですか?

197 :nobodyさん:2011/12/08(木) 12:14:52.77 ID:???
クラスのプロパティの定義に使うものです。
http://jp2.php.net/manual/ja/language.oop5.properties.php

つけるべきところでつけなかったり、そうでないところで付けたらエラーになるだけです。

198 :nobodyさん:2011/12/08(木) 21:45:37.59 ID:DX40whZT
PHPって微分・積分って出きるのでしょうか?
見たことがないのですが

もし出来ないならば、代わりにどのような言語を使用すればいいのでしょうか?

199 :nobodyさん:2011/12/08(木) 22:17:20.35 ID:???
>>198
http://www.neowin.net/forum/topic/406790-php-calculus-functions/
こんなんみつけますた

200 :nobodyさん:2011/12/08(木) 22:34:16.63 ID:WqXOej+6
そんなんPHPでやる必要があるのかよ。
どんな用途だ?
計算時間など考慮して近似式に展開しておけば良いだろ。
厳密に必要だったら数値計算のライブラリやツール使う。

201 :nobodyさん:2011/12/08(木) 23:26:16.25 ID:???
>>198
forでループすればおk

202 :nobodyさん:2011/12/09(金) 00:19:24.53 ID:???
今Pythonを必要があって学習してるんだけど、これゴミ言語だな
癖が強すぎる・・・
JavaScriptも癖はあるが、それでも他言語と感覚は近い
いかにPHPが素直で分かりやすい、扱いやすい言語かが分かる


203 :nobodyさん:2011/12/09(金) 00:23:40.51 ID:???
横から失礼するけど、>>201の言ってる意味が分からない
微分、積分をfor()でループ?
想像が出来ないんだけど、具体的にどんな風にやるの?
f(x)をf'(x)にするとかどうなるんだろ・・・
2乗が書けないので変な書き方するけど、
f(x)=x2+3x+5の場合
f'(x)=2x+3
・・・う〜ん、俺には分からん


204 :nobodyさん:2011/12/09(金) 00:29:00.80 ID:???
>>203
>>1

205 :nobodyさん:2011/12/09(金) 01:24:09.48 ID:CtDS5H65
数式処理は困難でも数値計算だったらループなどでできるだろ。

206 :nobodyさん:2011/12/09(金) 11:19:24.96 ID:???
クライアント側からWebサービスを利用する際、Form等からデータを送るときにはPOSTメソッドを使いますが、
Webサービスからデータを取得するときにも、GETではなくPOSTメソッドを使うような実装は一般的でしょうか?
GETメソッドとの使い分けが知りたいです。


207 :nobodyさん:2011/12/09(金) 11:27:17.48 ID:???
getするときはGET
postするときはPOST

208 :nobodyさん:2011/12/09(金) 12:29:06.21 ID:???
getだけで取れるほうがありがたい人はいると思う。

209 :nobodyさん:2011/12/09(金) 14:33:39.95 ID:???
twitter developersについて質問したいのですが、それらしいスレが見当たりません。
ダメ元で【Twitter 初心者&質問スレ Part.10】に書きましたが、
プログラム寄りの話になるので、やはり返答がありませんでしたのでこちらへ移動しました。
質問内容は下記です。
お手数ですが、最適なスレへの誘導お願いいたします。

twitter developers(ttps://dev.twitter.com/)にログインしたのですが、
どこからログアウトすればいいのかわかりません。
ググってもどこでログアウトするかといった話題はありませんでした。
ログアウトはどこをたどっていけばいいのでしょうか?

210 :nobodyさん:2011/12/09(金) 14:48:45.75 ID:???
質問するときはメール欄のsageを削除
質問に答えるときはメール欄にsageを入力


211 :nobodyさん:2011/12/09(金) 14:52:37.85 ID:???
個別サイトの使い方をなぜこのスレで・・・
しかもどこに質問すればいいのか答えろって・・・
こういうときこそツイッターでつぶやけばいいと思うよ
またはヤフー!知恵袋へ

212 :173:2011/12/09(金) 15:40:51.03 ID:TzYxXuZs
会員登録やログインのシステムはがなく、
商品を選ぶ→httpsに移動→送り先を入れる→注文完了

こういうサイトで、セッション固定化攻撃に対するセキュリティ向上の
ために一度だけセッションIDを変更しようとおもいます。
そのタイミングは、httpsに移動した直後が適当でしょうか?

いくつかのブログを読むと
http://hoge.jp/?PHPSESSID=fuga
というURLにアクセスすれば、セッションIDがfugaとしてアクセスできるため
セッション固定化攻撃にぜい弱だと書いてありますが、
これは今のPHP5.3.xでもその仕様ですか?

213 :nobodyさん:2011/12/09(金) 16:13:26.44 ID:???
>>212
対策はされていないので自分で面倒見ないといけない
タイミングはパスワード入力を要求される操作の直後にやると良い
ログインや個人情報にアクセスする時等

214 :173:2011/12/09(金) 16:30:00.88 ID:TzYxXuZs
>>213
じゃあ個人情報の入力の直前がいいですね。
ありがとうございました。

215 :nobodyさん:2011/12/09(金) 20:44:50.78 ID:wAnNw8aS
_()ってどういう関数なんですか?
ググりようがないです

216 :nobodyさん:2011/12/09(金) 20:53:02.33 ID:???
http://codepad.org/G5rD5VmV
unkoって表示する関数らしい

217 :nobodyさん:2011/12/09(金) 20:54:52.90 ID:8IpyhOyC
array(13) {
[0]=>
string(9) "北海道"
[2]=>
string(9) "群馬県"
[4]=>
string(9) "栃木県"
[6]=>
string(9) "福島県"
[7]=>
string(9) "山梨県"
[8]=>
string(9) "東京都"
[10]=>
string(9) "福岡県"
[11]=>
string(9) "大阪府"
[17]=>
string(9) "新潟県"
[18]=>
string(9) "長野県"
[31]=>
string(9) "福井県"
[36]=>
string(9) "兵庫県"
[37]=>
string(9) "石川県"
}
こんな感じの配列で
配列の若い番号順に都道府県の上から(北海道から)の順にしたいんですがいい方法ありますか?
並べ替える配列はランダムで1〜50都道府県入れる予定です


218 :nobodyさん:2011/12/09(金) 21:29:23.45 ID:???
>>217
並べ替える配列に神奈川県があったらどうするの?

219 :nobodyさん:2011/12/09(金) 21:31:51.94 ID:???
>>215
gettext

220 :nobodyさん:2011/12/09(金) 21:33:22.58 ID:???
>>217
もうちょっと情報を

221 :nobodyさん:2011/12/10(土) 02:15:15.70 ID:AgP8NyH3
/([0-9]+)(?![-\d])/
正規表現が死ぬほど苦手でこれの意味が・・・。
0-9の1回以上の連続まではわかるんですが、?![-\d]の部分が・・・。

222 :nobodyさん:2011/12/10(土) 03:00:32.96 ID:???
>>221
4段落目くらいの「先読み明言」
http://www.mt312.com/php/43/
コレで分かるかな?
先読み明言とかのワードでググるといいよ

223 :nobodyさん:2011/12/10(土) 03:05:00.36 ID:???
>>222
ありがとうございます
!が本や入門サイトに書いてなかったんで助かりました

224 :nobodyさん:2011/12/10(土) 03:40:07.81 ID:AgP8NyH3
すみません、それともう一つ[-\d]の部分なんですが
0-9とかならやったのですが、これは一体

225 :nobodyさん:2011/12/10(土) 05:50:25.15 ID:???
難しく考えず何のひねりもない
'-'と[0-9]が続いたらって意味じゃねーの?

226 :nobodyさん:2011/12/10(土) 05:56:58.47 ID:???
\dは0-9と同じ

227 :nobodyさん:2011/12/10(土) 09:27:14.64 ID:???
>>222
「先読み明言」ってなんだよ「明言」ってw
用語も正しく覚えてない奴が偉そうにするなw

228 :nobodyさん:2011/12/10(土) 09:37:02.84 ID:???
[0-9]と\dに書き分けている目的は?

229 :nobodyさん:2011/12/10(土) 09:44:02.24 ID:???
見た目

230 :nobodyさん:2011/12/10(土) 14:21:42.31 ID:???
文字クラス

231 :nobodyさん:2011/12/10(土) 15:22:41.26 ID:???
ハイフン数字が来る前の数字ってこと?

232 :nobodyさん:2011/12/10(土) 17:52:27.36 ID:TfT/FNf0
【OS名】Debian 5.0.9
【PHPのバージョン】5.3.5
【連携ソフトウェア】MySQL
【質問内容】
セッション変数でショッピングカートを作りました(途中まで)。
注文が確定したら最後にMySQLのDBに入れようと思ったのですが、
それまでの入力数量のチェックなどでhiddenで数字を渡したり
(利用者に余計な情報を与えることになる)いろんな変数を
操作する必要を考えると、最初からDBに入れて操作し、
最後に確定フラグを立てるなどした方が楽だと思いました。

これについて意見があればお願いします。

233 :nobodyさん:2011/12/10(土) 18:01:02.76 ID:???
お好きなようにして問題ありません。
ただ、セッション使ってるなら hidden使う必要を感じないのですが。

234 :nobodyさん:2011/12/10(土) 21:16:22.90 ID:feHM4jBp
【 PHP のバージョン】5.3
【質問内容】
Apache の mod_rewrite ってありますよね。
あれと PHP で振り分けるのとでは、どちらが速いのでしょうか。
.htaccess って遅いイメージがあって
だったら PHP で振り分けたらどうだろうかと思い、質問しました。

また、速度以外の回答「 XX は XX なので XX の方がいい 」とかでも構いません。

235 :nobodyさん:2011/12/10(土) 22:11:47.69 ID:???
>>234
計測してみればいいのではないですか?

236 :nobodyさん:2011/12/11(日) 01:35:26.27 ID:???
コンパイル済みモジュールのほうが早く動作するに決まってる

237 :232:2011/12/11(日) 01:47:05.86 ID:RMtDV+6U
>>233
遅くなりましたがありがとうございました。
ひとまずDBに入れるようにしてみました。

238 :nobodyさん:2011/12/11(日) 16:23:44.02 ID:fKRObUfn
「俺の全文検索」のソースをアップロードした。

http://www.ne.jp/asahi/sun/patagonia/fulltext/fulltext.html

うまく全文検索できないときには掲示板に書きこんでくれ。

239 :nobodyさん:2011/12/11(日) 16:31:06.92 ID:???
宣伝しなくとも、良サイトなら勝手に人くるから。

240 :nobodyさん:2011/12/11(日) 17:13:17.83 ID:???
晒しはヲチ板でどうぞ

241 :nobodyさん:2011/12/11(日) 19:42:59.08 ID:b3WuJveF
ファイルから特定文字列Aと、特定文字列Bにはさまれた文字列を抽出する、
は可能でしょうか?
可能ならどんなやり方でやればいいのか教えて下さい。
あるいは、どんな文字列でググればいいのか教えて下さい。

242 :nobodyさん:2011/12/11(日) 19:45:02.60 ID:???
正規表現

243 :nobodyさん:2011/12/11(日) 19:48:06.24 ID:b3WuJveF
>>242
レスありがとうございます。 >>241の作業は、正規表現で可能ですか?

244 :nobodyさん:2011/12/11(日) 19:54:57.27 ID:???
file_get_contentsって言って欲しかったんか?

245 :nobodyさん:2011/12/11(日) 19:56:31.05 ID:b3WuJveF
つか、マッチした文字列の取得ではなく、マッチした文字列2つに挟まれた文字列の取得なんですよね。

246 :nobodyさん:2011/12/11(日) 19:57:30.63 ID:???
正規表現でググれ

247 :nobodyさん:2011/12/11(日) 19:58:30.48 ID:???
正規表現でできるよ

248 :nobodyさん:2011/12/11(日) 20:01:05.49 ID:???
正規表現を知らないってことは初めは鬼門だと思う
わけわからん記号がいっぱい出てくるけどめげずに頑張れや

249 :nobodyさん:2011/12/11(日) 20:01:32.12 ID:???
うん

250 :nobodyさん:2011/12/11(日) 20:02:20.81 ID:???
今回の場合も正規表現を持ち出す必要はないわけだが

251 :nobodyさん:2011/12/11(日) 20:03:19.03 ID:b3WuJveF
ちなみに、>>245はpreg_match()関数で可能でしょうか?

252 :nobodyさん:2011/12/11(日) 20:04:06.31 ID:b3WuJveF
>>250
では、どうすればいいでしょうか?

253 :nobodyさん:2011/12/11(日) 20:07:14.66 ID:???
見通し悪くなるからpreg_match使っとけ

254 :nobodyさん:2011/12/11(日) 20:18:53.06 ID:b3WuJveF
<html>
<head>
<title>preg_match2.php</title>
</head>
<body>
<?php
$str = "WEB means a server system using world wide web technology."; //検索される文字列
$str1= "means"; //キーワードその1
$str2= "using"; //キーワードその2
preg_match(〜〜〜〜, $arr_str );   // キーワード1、2に挟まれた文字列を$arr_strに格納
print $arr_str[0];                    // キーワード1、2に挟まれた文字列を出力
?>
</body>
</html>
こんな感じで書いてみました。
どなたか、〜〜〜〜の部分を考えてやって下さい、お願いします!

255 :nobodyさん:2011/12/11(日) 20:19:57.66 ID:???
やはり○投げだったか

256 :nobodyさん:2011/12/11(日) 20:34:15.99 ID:b3WuJveF
しかし、私の持っている、PHP5リファレンス&逆引きユーザー便利帳には、preg_match()なんて関数は書いてないんだけどw

257 :nobodyさん:2011/12/11(日) 20:37:22.11 ID:???
>>254
変数の文字列を正規表現に組み込むならpreg_quoteを使うといい

258 :nobodyさん:2011/12/11(日) 20:38:53.21 ID:???
>>256
それはその本に書いてないだけ

ぐぐれば日本語の公式ドキュメントが見つかるぞ

259 :nobodyさん:2011/12/11(日) 20:47:40.32 ID:b3WuJveF
>>257
つか、変数をつかわないで、キーワードは文字列そのまんまでもかまいません。

260 :nobodyさん:2011/12/11(日) 20:51:49.65 ID:RMtDV+6U
一つのフォームに複数のsubmitボタンをつけて、
それぞれ違った処理をしたいです。
ボタンはせいぜい2-3個、最大で10個くらいです。
一度に押せるボタンはそのうちの一つだけです。

http://q.hatena.ne.jp/1172020099
ここを見るとforeachで押されたボタンのnameを取りだして
処理するのが最もいいと思いましたが、これでいいですか?

261 :nobodyさん:2011/12/11(日) 20:58:47.52 ID:???
$str = "WEB means a server system using world wide web technology."; //検索される文字列
$str1= "means"; //キーワードその1
$str2= "using"; //キーワードその2

// 正規表現あり
$delim = '/';
$pattern = sprintf("%s(?:%s)(.*?)(?:%s)%s", $delim, preg_quote($str1, $delim), preg_quote($str2, $delim), $delim);
preg_match($pattern, $str, $arr_str );
$match_str = $arr_str[1];
print $match_str . "\n";

// 正規表現なし
$match_str = '';
if (($str_work = strstr($str, $str1)) !== false) {
$str_work = substr($str_work, strlen($str1));
if (($i = strpos($str_work, $str2)) !== false) {
$match_str = substr($str_work, 0, $i);
}
}
print $match_str . "\n";


262 :nobodyさん:2011/12/11(日) 21:03:47.29 ID:???
// 正規表現なし(2)
$match_str = '';
$s = strpos($str, $str1);
$e = strpos($str, $str2);
if ($s !== false && $e !== false && $s < $e) {
$match_str = substr($str, $s + strlen($str1), $e - $s - strlen($str1));
}

print $match_str . "\n";


263 :nobodyさん:2011/12/11(日) 21:06:14.68 ID:???
>>260
それでできるんなら、それで。

264 :nobodyさん:2011/12/11(日) 21:06:45.64 ID:???
>>260

方法は、いくつか考えられる

1) それぞれのフォーム先を変える
<form method="post action="a.php">
<button type="submit">Submit</button>
</form>
<form method="post action="b.php">
<button type="submit">Submit</button>
</form>

2) 押されたボタンの値で分岐させる
<form method="post" action="c.php">
<button value="a" type="submit" name="foo">Submit A</button>
<button value="b" type="submit" name="foo">Submit B</button>
</form>

<?php
switch ($_POST['foo']) {
case 'a':
// 処理
break;
case 'b':
// 処理
break;
}

参考程度に

265 :nobodyさん:2011/12/11(日) 21:09:33.25 ID:RMtDV+6U
>>260
こんなのができました。
疑問なのは、配列が一つしかないのが明らかな時は
foreach以外に使えるものはないですか?

foreach ($_POST as $key => $value)
;
if (substr($key, 0, 3) == "del") {
echo "削除" . substr($key, 3, 3);
}

266 :nobodyさん:2011/12/11(日) 21:22:29.92 ID:b3WuJveF
>>261-262
おー、すばらしい。 3つともエラーなしでした。
感謝、感謝です。 今から勉強させてもらおうと思います。

267 :nobodyさん:2011/12/11(日) 21:29:38.31 ID:???
// 正規表現なし(3)
$match_str = '';
$s = strpos($str, $str1);
if ($s !== false) {
if (($e = strpos($str, $str2, $s)) !== false) {
$match_str = substr($str, $s + strlen($str1), $e - $s - strlen($str1));
}
}
print $match_str . "\n";

2よりはこっちのがいいか。でも正規表現を使うべきかどうかの判断は俺にはできん

268 :nobodyさん:2011/12/11(日) 21:38:44.26 ID:b3WuJveF
>>267
さらに、ありがとうございます。

269 :nobodyさん:2011/12/12(月) 00:38:08.99 ID:M66zaH+0
つーか、本当に恐縮なんですが、↓の
キーワードその1には、<a href="
を、
キーワードその2には、" title="前ページへ戻る">
を、入れたいのですが
どうしたら、いいでしょうか?
率直に入れるとエラーになってしまいます。

>>261
> $str = "WEB means a server system using world wide web technology."; //検索される文字列
> $str1= "means"; //キーワードその1
> $str2= "using"; //キーワードその2
>
> // 正規表現あり
> $delim = '/';
> $pattern = sprintf("%s(?:%s)(.*?)(?:%s)%s", $delim, preg_quote($str1, $delim), preg_quote($str2, $delim), $delim);
> preg_match($pattern, $str, $arr_str );
> $match_str = $arr_str[1];
> print $match_str . "\n";

270 :nobodyさん:2011/12/12(月) 00:43:03.09 ID:???
っつーかエスケープしろよ

271 :260:2011/12/12(月) 00:43:37.56 ID:g5bZDfgQ
>>264
遅くなりました。ありがとうございます。
<buttonを使うのは思いつきませんでした。
ありがとうございました。

272 :nobodyさん:2011/12/12(月) 00:52:47.14 ID:M66zaH+0
>>270
エスケープでググってみたのですが、
http://hodade.adam.ne.jp/seiki/page.php?study_escape
『、<a href="』 と、『" title="前ページへ戻る"> 』 これだとエスケープする必要がないらしいんです。

273 :nobodyさん:2011/12/12(月) 01:01:05.58 ID:???
>>272
エラーが出るコードを。

274 :nobodyさん:2011/12/12(月) 01:10:05.39 ID:M66zaH+0
>>273
レスありがとうございます。
$str1= "<a href="; //キーワードその1
は、通るのですが、
$str2= "" title="前ページへ戻る"; //キーワードその2
で、
Parse error: syntax error, unexpected T_STRING in C:\xampp\htdocs〜〜〜
と、エラーになります。

275 :nobodyさん:2011/12/12(月) 01:23:24.90 ID:???
>>274
だから、エスケープしてください。

276 :nobodyさん:2011/12/12(月) 01:36:07.59 ID:???
>>269
それは正規表現じゃなくてDOM操作でやれ

277 :nobodyさん:2011/12/12(月) 01:37:12.34 ID:M66zaH+0
つーか、ものは試しで、『"』 をエスケープしたら通ったわ。
http://hodade.adam.ne.jp/seiki/page.php?study_escape
これには、『"』 をエスケープをエスケープしろとは書いてないけど。

278 :nobodyさん:2011/12/12(月) 01:47:41.82 ID:M66zaH+0
>>276
たしかに、urlぶっこ抜き作業をやっているんだけど、で、その『DOM』というのは検索しておぼろげながらも知ってるんだけど、
あんまり、手を広げたくないんですw

279 :nobodyさん:2011/12/12(月) 01:53:29.26 ID:M66zaH+0
こんどは、
> $match_str = $arr_str[1];
の行で、
Notice: Undefined offset: 1 in C:\xampp\htdocs
のエラーが出るんですよね。

280 :nobodyさん:2011/12/12(月) 01:55:23.24 ID:???
>>277
正規表現以前の話だからな。
>>279はマッチしなかったんだろ。
てか言葉遣いわるすぎねぇ?

281 :nobodyさん:2011/12/12(月) 01:56:08.47 ID:???
正規表現じゃないほうならそんなエラーも出ないだろ

282 :nobodyさん:2011/12/12(月) 01:57:31.50 ID:M66zaH+0
>てか言葉遣いわるすぎねぇ?
失礼しました。

283 :nobodyさん:2011/12/12(月) 02:10:23.99 ID:???
php公式のロゴがクリスマス仕様になってる

284 :nobodyさん:2011/12/12(月) 02:17:45.57 ID:???
2008年からの使い回しなのは画像名見ればわかるだろ?

285 :nobodyさん:2011/12/12(月) 02:30:45.32 ID:???
もっと前からやってそうな印象があるけど、そんなもんか。

286 :nobodyさん:2011/12/12(月) 03:24:07.78 ID:M66zaH+0
つか、正規表現で質問した者ですが、教えてもらったものは、漢字がからむとダメになる、ってあります?

287 :nobodyさん:2011/12/12(月) 03:28:58.48 ID:M66zaH+0
武田先生のブログだとちゃんと抜けるんですよねw
ところが、キーワードに漢字がからむとダメみたい。

<?php
// ★★★★★欲しいブログのアドレスをここに書き込む。★★★★★★
$url="http://takedanet.com/2007/02/1_6fc8.html";

// htmlの全読み込み
$nikki = file_get_contents($url);

$str1= "<a href=\""; //キーワードその1
$str2= "\">«"; //キーワードその2

$delim = '/';
$pattern = sprintf("%s(?:%s)(.*?)(?:%s)%s", $delim, preg_quote($str1, $delim), preg_quote($str2, $delim), $delim);
preg_match($pattern, $nikki, $arr_str );
$match_str = $arr_str[1];
print $match_str . "\n";

// ↓↓ データファイル名を決める。
$fp = fopen("nikki.html","a");

fputs($fp,$nikki);

// ソケットを閉じる
fclose ($fp);

288 :nobodyさん:2011/12/12(月) 03:38:33.55 ID:g5bZDfgQ
MySQLのテーブルをHTMLで表示させるときの処理が面倒なのですが、
簡単にHTMLタグをつけてくれる関数や方法ってありませんか?

ぐぐったら
http://www.emirplicanic.com/php/php-function-to-generate-html-table-using-mysql-database-data
こんなのを見つけましたが。他にあったらお願いします。

289 :nobodyさん:2011/12/12(月) 03:41:03.97 ID:???
つか、原因の切り分けができるようになってから出直せばよくない?

290 :nobodyさん:2011/12/12(月) 03:41:50.29 ID:???
>>288
テンプレートエンジンとかフレームワークを。

291 :nobodyさん:2011/12/12(月) 03:43:02.08 ID:???
>>288
そのコードに不満がなければそれでいいとおもうが。

292 :nobodyさん:2011/12/12(月) 03:49:53.41 ID:g5bZDfgQ
>>290
ありがとうございます。調べてみます。

>>291
SELECT * FROM hoge;
を実行してなにも考えずに<table>から吐いてくれるとうれしいです。
できればカラム名もつけて。
MySQL接続時に -H オプションをつければいいようですが、
PHPから接続するときには対応してないようです。

293 :nobodyさん:2011/12/12(月) 03:58:23.47 ID:???
つうかね正規表現はね>>1を見て欲しいんだけどね専用スレがあるんだからねそっちで聞いて欲しいんだよね

http://hibari.2ch.net/test/read.cgi/tech/1323566370/

294 :nobodyさん:2011/12/12(月) 04:05:59.35 ID:???
>>292
http://php.net/manual/ja/function.mysql-fetch-assoc.php
フィールド名入ってるよ。
ただ、0件のときは面倒かもしれない

295 :nobodyさん:2011/12/12(月) 04:07:58.65 ID:???
正規表現の内容についてはもう終わってるだろ

296 :nobodyさん:2011/12/12(月) 04:13:08.26 ID:g5bZDfgQ
>>294
foreach($row)とかでフィールド名を取り出せばいけますね。
一般に見せるページはちゃんとフィールド名を入れて
作ってるのですが、管理画面は作るのが面倒でw

297 :nobodyさん:2011/12/12(月) 05:40:08.27 ID:M66zaH+0
30KBぐらいのhtmlファイルをmb_split()を使い、ざっくり2つに別けることは可能でしょうか?

298 :nobodyさん:2011/12/12(月) 06:05:55.81 ID:NHIpwqKq
可能

299 :nobodyさん:2011/12/12(月) 06:08:12.37 ID:???
可能じゃありません

300 :nobodyさん:2011/12/12(月) 06:31:39.54 ID:M66zaH+0
つまり、mb_split()は行単位で作業するのか? 行を超えて作業するのか?って質問なんだけど。
file_get_contents()で取り込んだデータをざっくり2分割したいんですよね。

301 :nobodyさん:2011/12/12(月) 06:44:12.15 ID:M66zaH+0
http://php.net/manual/ja/function.mb-split.php
マニュアルにも書いてないんですよ

302 :nobodyさん:2011/12/12(月) 06:44:18.12 ID:???
ms_strlen

303 :nobodyさん:2011/12/12(月) 07:04:30.12 ID:M66zaH+0
俺のやり方が悪いのか、そもそも出来ないことをやろうとしてるのか、どっちかわからない、というのがつらいです〜

304 :nobodyさん:2011/12/12(月) 07:36:00.80 ID:???
>>300
可能

305 :nobodyさん:2011/12/12(月) 10:48:58.06 ID:NA15lax7
XPにapacheとPHPの安定最新版を入れたのですがPDO driversがno valueになってしまい
sqliteが使えません。これはどうしてでしょうか?

[PHP_PDO_SQLITE]
extension=php_pdo_sqlite.dll

306 :305:2011/12/12(月) 11:39:02.23 ID:???
自己解決

自分がしょぼいプログラマだったらどんな処理をするか考えて対処したら動くようになったw

307 :305:2011/12/12(月) 14:10:47.40 ID:???
おれも自己解決したわ

308 :nobodyさん:2011/12/12(月) 17:06:36.09 ID:15hpQrXG
質問です
PHP5.3.8の環境で、某ライブラリを利用していたらE_DEPRECATEDという見慣れないエラーが出力されました
それで、ググったら
http://php.net/manual/ja/migration53.deprecated.php「PHP 5.3.x で推奨されない機能」というページを見つけ
そこに以下のように書いてありました
推奨されない機能
 new の返り値を参照で代入すること
 呼び出し時の参照渡し

ライブラリのエラー対象行には
$obj = & new $class_name($param);
と書いてあります
これがまさに推奨されない機能にあたるってことでしょうか。どちらかに該当したのでしょうか。別の問題でしょうか?
「new の返り値を参照で代入すること/呼び出し時の参照渡し」の両方とも具体的にどういうのかわかりません
具体的にどういうものなのか、すみませんが教えてください

309 :nobodyさん:2011/12/12(月) 17:31:48.02 ID:???
= &
これは参照で代入してる。

なので、
> $obj = & new $class_name($param);
これは、newの返り値を参照で代入してる。

310 :308:2011/12/12(月) 17:34:33.61 ID:???
>>309
ありがとうございました
自分はこれ使ったことなかったんで今まで無縁だったんですね
効果など調べてみます、ありがとう

311 :nobodyさん:2011/12/12(月) 21:05:50.74 ID:M66zaH+0
<?php
$url="http://park16.wakwak.com/~html-css/hp_koza/lv_3.html";
$nikki = file_get_contents($url);
preg_match('/script(.+)CSS/', $nikki, $matches);
print_r($matches);

↑だと、同一行内なので文字列を拾えるのですが、
↓のように、改行を挟むと文字列を拾えません。 改行があっても文字列が拾えるようにするにはどうすればいいでしょうか?

<?php
$url="http://park16.wakwak.com/~html-css/hp_koza/lv_3.html";
$nikki = file_get_contents($url);
preg_match('/script(.+)keywords/', $nikki, $matches);
print_r($matches);

312 :nobodyさん:2011/12/12(月) 21:19:07.36 ID:???
http://www.php.net/manual/ja/reference.pcre.pattern.modifiers.php

313 :nobodyさん:2011/12/12(月) 21:48:07.51 ID:M66zaH+0
>>312
おー、ありがとうございます。よくわからないけど、適当にsを付けたら改行を挟んで拾えるようになりました。
ありがとうございました。

314 :nobodyさん:2011/12/12(月) 22:03:56.84 ID:1pnkY9E6
みなさん、PHPでのHTMLのパーサーってどんなの使ってます?
利用したいんですが、オススメ等ありましたら、宜しくおねがいします。

315 :nobodyさん:2011/12/12(月) 22:27:59.81 ID:???
http://www.php.net/manual/ja/book.dom.php

316 :nobodyさん:2011/12/12(月) 23:11:06.87 ID:v66Vpq3K

$rss = simplexml_load_file( "http://blog.livedoor.jp/dqnplus/index.rdf" );
print_r( $rss->xpath( "//title" ) );
結果は空の配列になのですが、これは何を間違っていますか?

rss は
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://purl.org/rss/1.0/"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/"
xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/"
xmlns:admin="http://webns.net/mvcb/"
xmlns:atom="http://www.w3.org/2005/Atom"
>
<channel rdf:about="http://blog.livedoor.jp/dqnplus/">
<title>痛いニュース(ノ∀`)</title>

のようになっているので title 要素がないわけではありません。

317 :nobodyさん:2011/12/12(月) 23:14:07.14 ID:???
まずXMLがどういうものか理解した方が良いかも

318 :nobodyさん:2011/12/12(月) 23:35:04.86 ID:???
痛いニュースw

319 :nobodyさん:2011/12/12(月) 23:42:34.98 ID:v66Vpq3K
ちなみに
$rss->channel->title;
だと値を取得できます。
でもxpath にすると駄目なようです。

simplexml_load_file の第二引数が必要な気がしているのですが、何を入れればいいのか分からないです。

320 :nobodyさん:2011/12/12(月) 23:51:19.30 ID:???
ほしい、近い!
$rss->channel->title;であるならばxpath()の中に何を入れますか?


321 :nobodyさん:2011/12/13(火) 00:21:07.48 ID:l7M8JeoW
しつもんです
携帯のメールを解析/添付ファイルをアップロードなどするために便利な道具として
PearのMail_mimeDecode と Qdmail_receiverがあると思いますが、どっちがおすすめですか?
お勧めする・使ってる理由があったら教えてもらえると嬉しいです
もしくは、これ以外にも便利なツールあるでしょうか?


また、上記とは別に、
携帯メールでの日記投稿/写真アップロードなどした後(postfixからのパイプ処理で)、
そのメールのデータは不要になるので、添付ファイルごと該当ファイルを削除したいです
(メールボックスの形式はMaildirです)
どうやったらこの処理は実現できるんでしょうか?

どなたか教えてください。よろしくお願いします

322 :nobodyさん:2011/12/13(火) 00:47:25.54 ID:p0PBCRmH
その形式はしらないけど、一通一ファイルだったらそのまま削除すれば良い。
そうでなかったら変換すれば良い。

323 :nobodyさん:2011/12/13(火) 00:59:11.21 ID:???
>>321
それぞれ検索して何が出来るかもう一度読むといいかも。
受信メールの処理のサンプルとか含めて。
まず、メールをPOPかなんかでとりに行くのか、 パイプで処理するだけなのか。
そのとき、添付ファイルはどうやって取得するのか調べればすぐ分かるから。
それら全部はここには書ききれない。

324 :nobodyさん:2011/12/13(火) 01:06:48.24 ID:???
>>322,323
夜中にありがとうございました
もう少し頭整理して調べてみます。それでわからなかったらまた聞かせてください

325 :nobodyさん:2011/12/13(火) 01:10:31.75 ID:u1iPfY/A
PHPUnitがうまく動いてくれない…助けて
testHOGEメソッドが認識されなくて
LK(0 tests, 0 assersion)になる。
public function testHOGE() {
$this->assertTrue(false);
}
こんな感じだよね?
構文崩すとエラーになるのでファイル自体は認識されている模様
windows7 XAMPP2.5 PHPUnit3.5.14(xamppに最初から入っていたみたい)

326 :325:2011/12/13(火) 01:11:36.30 ID:u1iPfY/A
PHP5.3.8です

97 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)