1 名前:nobodyさん mailto:sage [2012/01/20(金) 05:43:23.62 ID:???] 質問者はまず>>1 を良く読むこと(必須!) 過去スレ、関連スレ、FAQなどは>>2-10 辺り 次スレは>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。 ◆前スレ 【PHP】下らねぇ質問はID出して書き込みやがれ 114 kohada.2ch.net/test/read.cgi/php/1325437405/ ◆質問用テンプレ 【OS名】CentOS 【PHPのバージョン】5.3 【連携ソフトウェア】MySQL ImageMagick 【質問内容】 ◆質問する時の注意 ・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す) ・ 己の行った操作、変更などを詳しく明記すること。 ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。 ・ 質問者として、態度をわきまえること。 ・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。 (PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。) ◆質問後の注意 ・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。 ・解決しなくても回答をもらった場合はお礼を言うこと。 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。) ◆回答者への注意 ・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。 【その他諸注意】 ・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
11 名前:nobodyさん [2012/01/20(金) 19:26:14.79 ID:yvoFKIu/] 質問させてください、拡張モジュールが理解できません。 php.iniでmemcached.soを記述してプログラムを動かしたところ、 PHP Warning: Module 'memcache' already loaded in Unknown on line 0 という警告が出たのですが、 これをどう理解したら良いのかわかりません php.iniの指定以外にもどこかで起動していたということですよね? 自分ではそんなプログラムを書いた覚えないのですが、どんな原因が考えられるでしょうか? サーバのサービスとしてのmemcachedはstatus:running状態だったのですが、 その場合php.iniの拡張モジュールとしての記述は不要ということでしょうか?
12 名前:nobodyさん mailto:sage [2012/01/20(金) 20:01:22.32 ID:???] ロード処理を2回書いてるとかじゃね
13 名前:nobodyさん [2012/01/20(金) 21:04:10.91 ID:ObSPH0mR] 質問させてください。 ↓みたいなhtmlエンティティ化された日本語を戻すのはどうしたら良いでしょうか? ????? ちなみにこれは「あいうえお」です。 print html_entity_decode("?????"); としても変化ありませんでした。 よろしくお願いします。
14 名前:13 mailto:sage [2012/01/20(金) 21:05:59.96 ID:???] ああ、なんてこと。 ↓これです。&は半角です。 あいうえお また化けてたらすいません。
15 名前:nobodyさん mailto:sage [2012/01/20(金) 21:10:15.79 ID:???] >>14 デコードしてみたけどそんな卑猥な言葉俺の口からはとても言えない
16 名前:nobodyさん [2012/01/20(金) 21:19:29.86 ID:x5waH9K4] Tokyo Tyrantを使ってみようと思ったのですが、Kyoto Tycoonとかいう 次期バージョンが出ているようですが、 PHPで使えるのか良くわかりません TTの方はPECLから簡単に導入出来ると思うのですが、 実際使っている方にお聞きしますが、やっぱ今から導入するにはKyotoの方でしょうか? それともPECLにありマニュアルも完備されているTokyoの方がいいのでしょうか?
17 名前:nobodyさん [2012/01/20(金) 21:20:31.05 ID:ObSPH0mR] >>15 ただのあいうえおですって。 どうやってデコードするのか教えてください。
18 名前:nobodyさん mailto:sage [2012/01/20(金) 21:26:45.89 ID:???] >>17 文字コード指定すれ
19 名前:nobodyさん mailto:sage [2012/01/20(金) 21:44:23.61 ID:???] mb_convert_encoding($txt,'UTF8','HTML-ENTITIES'); html_entity_decodeはめんどくさい。
20 名前:17 mailto:sage [2012/01/20(金) 21:44:38.77 ID:???] >>18 出来ました! ありがとうございます。 今度奢ります。
21 名前:nobodyさん mailto:sage [2012/01/20(金) 21:47:28.03 ID:???] >>19 mb_convert_encoding()にそんな引数あったんですね。 知りませんでした。 ありがとうございます。
22 名前:nobodyさん mailto:sage [2012/01/20(金) 21:56:26.18 ID:???] >>11 php.iniと、php.dの中のどれかまたは.htaccessとかで読んでるとか。
23 名前:11 [2012/01/20(金) 23:08:17.49 ID:yvoFKIu/] >>22 ありがとうございました! /etc/php.dっていうディレクトリの中に***.iniがある場合、それはphp.iniで 拡張モジュール指定しなくても良いんですね。知りませんでした /etc/php.dはどういうタイミングで作られる&更新されるんでしょうか? >>12 ありがとうございました
24 名前:nobodyさん [2012/01/20(金) 23:31:21.75 ID:x5waH9K4] us3.php.net/manual/ja/tokyo-tyrant.installation.php マニュアルのこのページなのですが、 この--with-tokyo-tyrant[=DIR]などは、PHPをソースコードから入れる場合に ./configure時に指定しろという事でしょうか? 良く分からないのですが・・・ 導入例を色んなサイトで見たのですが、書かれていないような気がします tyrantとcabinetを入れた後にPECLでモジュールを入れればいいのかなと思っていたのですが
25 名前:nobodyさん [2012/01/20(金) 23:37:39.24 ID:x5waH9K4] ごめんなさい PHPの時はおかしいと思っておりました PECLモジュールをphpizeで入れるときのオプションだとhelpを見て分かりました
26 名前:nobodyさん [2012/01/21(土) 00:06:03.40 ID:zlJukRTP] 【OS名】 Linux系 【PHPのバージョン】5.3 【連携ソフトウェア】MySQL 【質問内容】 入出力のサニタイズの質問です。 名前とメールアドレスを入力してもらい、次の画面で確認表示して、 確認後にDBに格納します。また、あとでDBから取り出して画面に表示します。 このとき、どのようにバリデートとサニタイズを行うのがいいでしょうか。 次の流れで、(2)と(3)のサニタイズは必要でしょうか。 行わなければ、ぜい弱性になりえますか? 利用者から名前とメールアドレスを受け取る ↓ mysqli_real_escape_stringでサニタイズ(1) ↓ 長さが1以上、かつ、メールアドレスは適切 ↓ (1)をhtmlspecialchars でサニタイズして表示(2) ↓ 利用者が確認 ↓ (1)の結果をDBに格納 あとで、 DBから名前とメールアドレスを取り出す ↓ htmlspecialchars でサニタイズして表示(3)
27 名前:nobodyさん [2012/01/21(土) 00:06:54.20 ID:zlJukRTP] こっちの方がいいかな? 利用者から名前とメールアドレスを受け取る(a) ↓ (a)の長さが1以上、かつ、メールアドレスは適切 ↓ (a)をhtmlspecialchars でサニタイズして表示(b) ↓ (b)を利用者が確認 ↓ (a)をmysqli_real_escape_stringでサニタイズ(c) ↓ (c)をDBに格納
28 名前:nobodyさん mailto:sage [2012/01/21(土) 00:13:57.76 ID:???] 確認画面と完了画面での情報の引き渡し方とチェックのタイミングの話かと思ったら ただのエスケープの話だったでござる
29 名前:nobodyさん [2012/01/21(土) 00:25:53.11 ID:zlJukRTP] >>28 まだ確認画面を作ってないのですが、 セッション変数で渡してしまおうと思っています。 今の仕様だと確認画面がないので、セッションは不要なんですが。
30 名前:nobodyさん [2012/01/21(土) 00:28:45.42 ID:mz2KZcw3] 何らかの処理でエラーが発生したとき、その内容をバックグラウンド処理として 管理者にメール送信させたいと思っています。 それで、それに関することを調べていたら「複数のプロセスが発生しないように云々」とありました これについて聞かせてください ・メール送信する処理をこの場合のプロセスとして考える ・同時に複数のプロセスが動くのは望ましくない(サーバの負荷がかかる) ・そうならないための仕組み(排他制御とはこのことですか?)を考えるべき ってことですか? どうやって、現在管理者向けのメールを送るプロセスが起動してるかを判定できるんでしょうか? 簡単な例を教えてもらえると嬉しいです。よろしくお願いします。PHP5.3です。
31 名前:nobodyさん mailto:sage [2012/01/21(土) 00:32:11.83 ID:???] >>29 (1)と(2)の脆弱性は全く別物なので片方だけやっても意味ないよ
32 名前:nobodyさん mailto:sage [2012/01/21(土) 00:32:30.90 ID:???] バックグラウンド処理として管理者にメール送信って、 どうやるのを想定していますか? それに関することのソレがわかんないし、貴方の思ってる方法と ソレがあっているか分かんないし、なんで複数のプロセスが発生しちゃだめなのかがつながらない。 答えるとすると、ただの想像になるので、貴方の役に立たないかもしれません。
33 名前:nobodyさん mailto:sage [2012/01/21(土) 00:33:42.41 ID:???] >>30 同時に複数のプロセスが動くのは普通だよ リソースを共有してて同時にいじったら問題が発生するときは排他制御かけるけど
34 名前:nobodyさん [2012/01/21(土) 00:39:35.47 ID:zlJukRTP] >>31 ありがとうございます。 それぞれ対策することにします。
35 名前:nobodyさん mailto:sage [2012/01/21(土) 00:52:11.08 ID:???] >>32 言葉足らずで申し訳ありません イメージとしては exec();を利用してメールを送信するsendmail.phpを実行しようと思っています 排他制御というのを実行して、たとえばユーザA,ユーザB,C,D...が大勢いっぺんにメールを送るようなことに ならないようにしないとサーバが重くなってしまうのかなぁと思ってましたが、 そんなことないんでしょうか? よくわからないのですが、sendmail.phpの中で以下のようなことをするのかと自分は思っていましたが… if(!file_exists('./mailsending')){ //現在メール送信中なのを示すロック用のファイルを作る mkdir('./mailsending',0777); //メール送信処理 〜〜 unlink('./mailsending'); }else{ sleep(5); //このあとこの処理を頭からもう一回実行する } >>33 プロセスというのがそもそもよくわからないのですが mail();の実行でメール送信のプロセスが起動するわけですよね? それはいくつも同時に動いて問題なくて、一つ動いてそれが送信完了したらそのプロセスは消えるんでしょうか?
36 名前:33 mailto:sage [2012/01/21(土) 01:17:13.33 ID:???] >>35 execで外部メールプログラムにパイプで渡すのか mailでメールサーバに渡すのかどっちなんだ? どうやろうとしてるのか情報がないので分からないけど普通はメールキューに溜まるんでないの?
37 名前:nobodyさん mailto:sage [2012/01/21(土) 02:10:54.17 ID:???] sleepだの、排他処理だのしてないで、さっさと投げて処理した方が
38 名前:nobodyさん mailto:sage [2012/01/21(土) 03:39:49.18 ID:???] >>23 インストーラ(というかMakefileやRPM)がそこに作ったり作らなかったり。
39 名前:nobodyさん [2012/01/21(土) 04:59:51.97 ID:eRKOygVB] call_user_func_arrayと $func = function ($a) {}; $func("あ"); で呼び出すのって違いありますか?
40 名前:nobodyさん mailto:sage [2012/01/21(土) 05:02:29.98 ID:???] そりゃ違う
41 名前:nobodyさん mailto:sage [2012/01/21(土) 05:27:34.12 ID:???] 120行ほどコード書いて実行したらエラーもなく動いた 感動しました!
42 名前:nobodyさん mailto:sage [2012/01/21(土) 05:32:01.60 ID:???] 誰あんた
43 名前:nobodyさん [2012/01/21(土) 11:07:42.28 ID:FSMglBTD] phpで使用できるアプリケーションサーバー どのようなものがありますか?
44 名前:nobodyさん mailto:sage [2012/01/21(土) 11:31:19.49 ID:???] 前スレに帰れよもう
45 名前:nobodyさん [2012/01/21(土) 16:25:18.51 ID:jFN3iVio] 文字コードについて 通常はutf-8で統一するのでしょうか?(php,mysql,xhtml) 携帯の場合はsjisだと思いますが、その場合はsjisで (php,mysql,xhtml)で統一するのでしょうか?
46 名前:nobodyさん mailto:sage [2012/01/21(土) 16:34:35.91 ID:???] どうしてもってときは出力だけShift_JISにするけど、いまどきUTF-8対応してない携帯って生きてるの
47 名前:nobodyさん mailto:sage [2012/01/21(土) 16:57:04.13 ID:???] 今時携帯でもutf8でいいわな まぁsjisにするにしても内部コードはutf8にするのが鉄則 内部コードがsjisってだけで問題起きるからな
48 名前:nobodyさん mailto:sage [2012/01/21(土) 17:00:29.88 ID:???] >>46 へえ、携帯向けもUTF-8でいいんですか。 化石のような携帯を使ってる奴らを相手にするつもりはないので。
49 名前:nobodyさん mailto:sage [2012/01/21(土) 17:43:30.86 ID:???] いわゆるガラケーに対応するなら出力はSJISにすべきだろうね。 スマホ相手だったらUTF-8で問題ないよ。
50 名前:nobodyさん [2012/01/21(土) 18:01:38.09 ID:CB8OXbyx] 質問させてください ソケット通信のプログラムに興味があって勉強してるのですが、 stream_set_timeoutで設定するタイムアウトは実際にどのようなときに 発生するんでしょうか? 例えば10秒のsleepを設定してある外部のphpプログラム(HTTPアクセス)に、 stream_set_timeoutで5秒を設定したプログラムからアクセスしても タイムアウトが発生せず10秒しっかりと待たされてしまうのですが、 そもそもstream_set_timeoutで設定するタイムアウトの解釈が間違ってますか?
51 名前:nobodyさん [2012/01/21(土) 18:07:22.46 ID:mW1ztqvo] 配列hを$h=array(2=>0,0,0,0,0,0,0,0,0,0,0);したとき、 foreach ($h as $key => $val) { echo "h[" . $key . "] = " . $val . "<br>"; } で出力すると h[2] = 2 h[3] = 5 h[4] = 14 h[5] = 11 h[6] = 14 h[7] = 17 h[8] = 14 h[9] = 5 h[10] = 8 h[11] = 6 h[12] = 4 となるサンプルが本に載ってましたが、 $h=array(2=>0,0,0,0,0,0,0,0,0,0,0);は $h=array(2=>0,3=>0,4=>0,5=>0,・・・が 略記と考えていいのですか?
52 名前:nobodyさん [2012/01/21(土) 18:09:31.65 ID:mW1ztqvo] 間違えました、 配列hを$h=array(2=>0,0,0,0,0,0,0,0,0,0,0);したとき、 foreach ($h as $key => $val) { echo "h[" . $key . "] = " . $val . "<br>"; } で 0 0 0 0 0 0 0 0 0 0 0 でした
53 名前:nobodyさん [2012/01/21(土) 21:11:00.04 ID:MGOT7geS] いまhtml,cssと終わってjavasprictに入ろうと思ってんだけど phpもやったほうが捗る? 他の言語の方が捗ったりして
54 名前:nobodyさん [2012/01/22(日) 00:24:53.85 ID:UXyrzgYX] オブジェクト指向がわかんない。 クラスってどういうときにどんなかんじで使うの? 普通にファンクションじゃダメなの?
55 名前:nobodyさん mailto:sage [2012/01/22(日) 00:30:35.02 ID:???] >>54 phpのオブジェクト指向は最適化されていないので、 使わなくていいよ。
56 名前:nobodyさん [2012/01/22(日) 00:57:25.79 ID:UXyrzgYX] >>55 いや業務で使わないといけないから 月曜までに理解しとかないとまずい
57 名前:nobodyさん mailto:sage [2012/01/22(日) 01:40:38.96 ID:???] 人間ってクラスがあるとする class ningen じつはこれこのままだと動かない、人造人間 なのでスイッチ入れます $hito = new ningen(); この人造人間、ミサイル発射機能が実装されてる $hito->missile(); デフォルトだとミサイル1発に設定されてるけど5発でも出せるよ $hito->setAmmo(5); $hito->missile(); 髪型だって変えられるイカシタやつなんだ $hito->setHair('hage'); こんな感じ classの中にはmissle,setAmmo,setHairってfunctionがある スイッチを入れた$hitoはインスタンスと呼ばれるオブジェクト インスタンスからそのクラスが持ってるメソッドを呼び出したり、インスタンスの髪型変えたり 考えてもあまり意味ないから、簡単なソースを真似て自分で書いてみれ
58 名前:nobodyさん mailto:sage [2012/01/22(日) 01:49:25.23 ID:???] >>51 www.php.net/manual/ja/language.types.array.php キーを省略した場合、整数添字の最大値が使用され、 新しいキーはその最大値 +1 となります。 整数値は負の数とすることができ、 負の添字についても同様となります。例えば、最高時の添字が -6 の場合、次のキーは -5 となります。 整数添字がまだ存在しない場合、キーは 0 (ゼロ) となります。 値が既に代入されているキーを指定した場合、元の値は上書きされます。
59 名前:nobodyさん mailto:sage [2012/01/22(日) 05:27:25.23 ID:???] >>50 sleep→socket通信になってるんでしょう 逆の場合はすでに通信が完了している
60 名前:59 mailto:sage [2012/01/22(日) 05:28:11.30 ID:???] ごめんよく読んでなかった スルーしてくれ
61 名前:nobodyさん [2012/01/22(日) 08:13:40.99 ID:bGbbffT4] touch()でファイルを作りたいんですがうまくいきません public_htmlの権限を707(または706など)にして書き込み可能にする必要があるんでしょうか? またその場合外から書き込みなることは危険ではないんでしょうか?
62 名前:61 [2012/01/22(日) 08:16:15.48 ID:bGbbffT4] >>61 すみません 書き込みなることは〜→書き込み可能になることは に読み替えてください
63 名前:nobodyさん mailto:sage [2012/01/22(日) 09:42:04.56 ID:???] モジュール版phpでsafemodeがかかってるなら 出力するファイルの親ディレクトリに書き込み権限を与える必要がある 親ディレクトリがpublic_htmlならpublic_htmlに与える必要があるが public_html/hoge/に出力する場合public_htmlまで遡らず 単にhogeに書き込み権限を与えればよい >またその場合外から書き込みなることは危険ではないんでしょうか? ディレクトリやファイルを操作するスクリプトに脆弱性がある場合は 余計な権限を与えてると問題が起きる可能性はあるが 権限を与えること自体に危険性はない
64 名前:nobodyさん mailto:sage [2012/01/22(日) 12:11:09.91 ID:???] >>57 クラスの先頭は大文字で書くクセを付けてくれ頼む
65 名前:nobodyさん mailto:sage [2012/01/22(日) 12:12:39.17 ID:???] >>50 タイムアウトの仕様はWindowsとLinuxで異なるから気をつけよ
66 名前:nobodyさん mailto:sage [2012/01/22(日) 12:13:47.51 ID:???] >>45 10年前の携帯だけどUTF-8だからSJIS携帯ユーザーを見つけるのが難しい
67 名前:nobodyさん mailto:sage [2012/01/22(日) 12:14:13.87 ID:???] >>43 PHP5.4から簡易サーバーが組み込まれてる
68 名前:nobodyさん mailto:sage [2012/01/22(日) 12:16:33.83 ID:???] >>57 ただのモジュールとして使うのか、オブジェクトがわからない時はそういう使い方もありかな。
69 名前:nobodyさん mailto:sage [2012/01/22(日) 13:08:00.49 ID:???] >>57 関係ないがよくわかったd
70 名前:nobodyさん [2012/01/22(日) 13:24:42.98 ID:MxVymtCi] PHPの中にHTMLをそのまま書きたいとき、いい方法はありますか? この2つなら思いつきますが、他にオススメがあればお願いします。 1.echoでHTMLを出力する 2.?>でPHPを閉じて、HTMLを書いて<?phpでまたPHPを書く
71 名前:nobodyさん mailto:sage [2012/01/22(日) 13:26:53.23 ID:???] <<<eof
72 名前:nobodyさん [2012/01/22(日) 13:29:50.28 ID:MxVymtCi] >>71 ヒアドキュメントですね。忘れていました。 それをechoで出力すればいいですね。
73 名前:nobodyさん mailto:sage [2012/01/22(日) 13:48:53.45 ID:???] >>70 echo " <p>aa</p> <p>aa</p> "; echo ' <p>aa</p> <p>aa</p> ';
74 名前:nobodyさん [2012/01/22(日) 14:05:51.50 ID:MxVymtCi] >>73 改行が入ってもクオートは閉じなくていいんでしたか。 ありがとうございます。
75 名前:nobodyさん [2012/01/22(日) 14:18:37.17 ID:oj78u6X0] メール送信処理をクラス化して、メールの種類によって文面を変える処理を作っています (警告メール/エラー報告メール/新着情報メールなど) 今までswitch文で一つのファイルにまとめて各パターンの文章を書いてたんですが、 その文面を外部化してテンプレート的に読み込ませた方が良いと思い始めました しかし、そのメールのテンプレートの作り方がわかりません 最低限下記を知りたいです ・テンプレートの拡張子(というかファイルタイプ)はどうすべきか ・そのファイルから文章を読み込ませる方法 ・ユーザ名を自動的に置き換えて送信できるようにする方法 (「こんにちは ****さん」的な…) どうしたらいいんでしょうか 処理の流れとして、上記のメール送信する処理を書いた.phpファイルを mailsend.class.phpとして 以下のようにしてメールの種類と送信先ユーザ名を渡して送信処理することを考えています require(mailsend.class.php); $mail = new mailsend(); $mail->sousin($mailType, $userName);
76 名前:nobodyさん mailto:sage [2012/01/22(日) 14:32:21.99 ID:???] >>75 もうちょっと初歩的なところからやったほうがいいのでは? 質問の答えとしては >・テンプレートの拡張子(というかファイルタイプ)はどうすべきか プレーンテキストだしなんでもいい >・そのファイルから文章を読み込ませる方法 file_get_contents etc >・ユーザ名を自動的に置き換えて送信できるようにする方法 そういう情報を集めたデータベースなりが必要でしょう
77 名前:nobodyさん [2012/01/22(日) 16:12:54.41 ID:ySnaTQRi] php-tokyo_tyrantについての質問なのですが、 マニュアル www.php.net/manual/ja/class.tokyotyrant.php#tokyotyrant.constants.types に書かれているTokyoTyrant::TTE_SUCCESSなどはどのようにして使うのですか? 実行結果によってエラー処理など、分岐させたいのですが、 memcachedのMemcached::getResultCodeのように実行結果のコードを取得するような関数もありません 教えていただけませんでしょうか?
78 名前:61, 62 [2012/01/22(日) 16:55:34.47 ID:bGbbffT4] >>63 丁寧に答えて下さりありがとうございます 仰るとおり、調べた結果safemodeでした ディレクトリを新しく設け、そこに置くファイルは最小限にして実装しました ありがとう!
79 名前:nobodyさん [2012/01/22(日) 17:16:32.51 ID:UXyrzgYX] >>57 わかりやすい例えどうもです!
80 名前:nobodyさん mailto:sage [2012/01/22(日) 17:58:02.33 ID:???] >>77 エラー時に投げてくる TokyoTyrantException::getCode() と比較する
81 名前:nobodyさん [2012/01/22(日) 20:10:43.98 ID:ySnaTQRi] >>80 なるほど、お答えいただきありがとうございます 日本のマニュアルは、英語と比べて遅れている(差がある)ようで、 先ほど初めて知ったのですが、TokyoTyrantExceptionというのがあると知りました 他にもIteratorといったクラスがあるようで・・・ 今Windows環境でLinuxが手元にないので試せないのですが、 keyからput、getなどする際は、try~catchのtry内で行えということですね?
82 名前:nobodyさん mailto:sage [2012/01/22(日) 21:28:18.69 ID:???] >>81 そういう事だね マニュアルにない事はソースに頼る方が確実 tokyo_tyrant.c > /* {{{ int TokyoTyrantTable::put(string pk, array row); > put a row. if pk = null new key is generated > @throws TokyoTyrantException if not connected to a database > @throws TokyoTyrantException if get fails > */ > PHP_METHOD(tokyotyranttable, put) > {
83 名前:nobodyさん mailto:sage [2012/01/22(日) 22:12:07.02 ID:???] >>76 助かりました。ありがとうございました
84 名前:nobodyさん [2012/01/22(日) 23:30:07.77 ID:ySnaTQRi] >>82 本当にありがとうございました しかしPHP・・・だけでなく他言語としてもTokyoTyrantの情報って出てきませんねw 調べてもマニュアルの転用ばかりが出てきます 皆さん何を使ってらっしゃるんですか? APCやmemcachedがやはり多いんですかね? それかCassandraとか それともこういうのは使わずに、DBとかcache機能とかなのですかね
85 名前:nobodyさん mailto:sage [2012/01/23(月) 05:35:43.09 ID:???] 情報が少ないものは使わないってのは普通なことでは それでも使いたいってなら頑張って調べるしかないからね めんどくさいし情報が豊富なmemcachedでいいってなるわ
86 名前:nobodyさん mailto:sage [2012/01/23(月) 08:34:14.66 ID:???] >>57 で、なんとなくクラスの使い方がわかりました。ありがとうございます。 でも、今自分の作っているもののうち、どういうものをクラスに作ったらいいのか まだいまいち把握できません。どんなときにクラスにするんですか?
87 名前:nobodyさん mailto:sage [2012/01/23(月) 09:40:19.55 ID:???] そろそろまとめサイトつくろうぜ
88 名前:nobodyさん mailto:sage [2012/01/23(月) 10:08:47.85 ID:???] >>87 がんばってね
89 名前:nobodyさん mailto:sage [2012/01/23(月) 10:22:28.44 ID:???] どんなときにクラスとかどういうものをクラスとかいう概念を捨てろ 全部クラスにしないといけないそういう言語もあるんだぞ というわけでオブジェクト指向の概念を勉強したいなら 一度JavaなりC#の初心者向けサイトを訪問してきな
90 名前:86 mailto:sage [2012/01/23(月) 15:30:40.66 ID:???] >>89 ひー、ますますわからなくなりました。 オブジェクト指向の概念 がんばって読んできます。
91 名前:nobodyさん [2012/01/23(月) 18:09:04.87 ID:NlIjtP0L] 【OS名】Windows 7 Home Premium SP1 (64bit) 【PHPのバージョン】5.3.9 【連携ソフトウェア】Apache 2.2.21 (php.ini) mbstring.internal_encoding = UTF-8 mbstring.http_input = UTF-8 mbstring.encoding_translation = On 不正な UTF-8 を出来る限り防ぎたいと思っています htmlspecialchars のように無効な文字を削除する関数で、'<' (小なり) や '>' (大なり) を変換しない関数は無いでしょうか $str = htmlspecialchars_decode(htmlspecialchars($str, ENT_COMPAT, ''), ENT_COMPAT) のように書くのが適切でしょうか
92 名前:nobodyさん mailto:sage [2012/01/23(月) 18:15:58.21 ID:???] 不正な UTF-8 ってなんでしょう・・・ htmlspecialcharsは 無効な文字を削除する関数ではありませんし。
93 名前:91 [2012/01/23(月) 18:47:20.79 ID:NlIjtP0L] >>92 すみません PHP 5.2.12 / 5.3.2 以降の htmlspecialchars で、冗長なUTF-8表現などが含まれると空文字を返す機能のことです
94 名前:nobodyさん mailto:sage [2012/01/23(月) 18:47:43.83 ID:???] >>91 mb_convert_encoding("\xC0\xBC", 'UTF-8', 'UTF-8')
95 名前:nobodyさん [2012/01/23(月) 19:17:30.77 ID:HHu7F5nF] 時刻の計算について教えてください 何かを行った際にその時の現在時刻を取得し、DBなどに格納しておいて、 その後に、3日以上経っていたら削除するような事をしたいのですが、 どのように書けばいいのでしょうか? 自分はまず先にdate('Y/m/d H:i:s');でDBに格納 ->次に(3日以上経ったとして)、現在時刻を取得し、DBに格納した値と比較 と考えたのですが、計算方法が分かりません strtotime()とか考えたのですが、解決には至りませんでした
96 名前:nobodyさん mailto:sage [2012/01/23(月) 19:21:52.27 ID:???] っunixtime
97 名前:91 [2012/01/23(月) 19:23:42.04 ID:NlIjtP0L] >>94 ありがとうございます PHP 5.4 では、5〜6 バイト表現を mbstring 系でブロック出来るようですが PHP 5.3 では、htmlspecialchars を使うしかないのでしょうか
98 名前:nobodyさん mailto:sage [2012/01/23(月) 19:34:36.35 ID:???] 1、DBには日付型で入れてSQLで三日経過の判別 2、dbにタイムスタンプtime()でいれて、 現在時刻のタイムスタンプから3日前の値より小さかったら消す。 time() - 3 * 24 * 60 *60 な
99 名前:nobodyさん mailto:sage [2012/01/23(月) 19:52:48.40 ID:???] >>97 自分で取り除いてやるしかないね RFCに許容するシーケンスがあるから簡単に出来ると思うよ tools.ietf.org/html/rfc3629#section-4
100 名前:91 [2012/01/23(月) 20:12:10.22 ID:NlIjtP0L] >>99 htmlspecialchars と htmlspecialchars_decode を通すことにします ありがとうございました
101 名前:nobodyさん [2012/01/23(月) 21:08:58.00 ID:FIQlOImm] PHPでページの出力するとき、関数やメソッドにechoやプリントを仕込んでおいて それを呼ぶことで出力する方法と、直接埋め込み式で書き連ねていく方法が あると思うのですが、どのようにするのがよいのでしょうか? 内容はfor文やメソッド呼び出しがこまめに使われてて150行ぐらいです インクルードファイルまで見ないといけないということを考えると、 やはり多少複雑になってもそのまま直に書くのが望ましいのでしょうか?
102 名前:nobodyさん [2012/01/23(月) 21:16:13.86 ID:HJ0fqWO2] こういう書き方があることを今日知ったんですが、問題ないですよね? <?php $a = 2; if ( $a == 1 ) { ?> hogehoge<br /> <?php } else { die(); } ?>
103 名前:nobodyさん mailto:sage [2012/01/23(月) 21:16:59.61 ID:???] >>101 スタイルは人それぞれだからなんとも言えない 好きなようにせい 書いてるうちにだんだん変移してそのうち自分にぴったりな方法が見つかるさ 俺も最初はスクリプトに<<<EOF〜EOF;ってかんじに書いてたが 今じゃ全部テンプレートよ
104 名前:nobodyさん mailto:sage [2012/01/23(月) 21:21:33.12 ID:???] >>102 動くなら問題ないですよ
105 名前:nobodyさん mailto:sage [2012/01/23(月) 21:51:53.79 ID:???] >>103 ありがとうございます何かよい方法を考えてみます
106 名前:nobodyさん [2012/01/23(月) 23:02:15.95 ID:HJ0fqWO2] >>104 ありがとうございます。 コードは汚いけど便利です。 HTMLの文法チェックも働くし。
107 名前:nobodyさん [2012/01/24(火) 15:34:10.51 ID:ZLZzoB2p] ファイルの更新内容をリアルタイムに監視するにはどうすればいいですか? たとえば、アパッチのログファイルを常に読み込み(監視)して、変更があればクライアントに伝えたいです。
108 名前:nobodyさん mailto:sage [2012/01/24(火) 16:10:40.82 ID:???] 嫌がらせとしか思えないw
109 名前:nobodyさん mailto:sage [2012/01/24(火) 16:33:52.13 ID:???] 環境依存にしたくないのなら、定期的にファイルが更新されていないか見に行く
110 名前:nobodyさん mailto:sage [2012/01/24(火) 16:41:15.31 ID:???] クライアントにはどうやって伝えるんだ
111 名前:nobodyさん mailto:sage [2012/01/24(火) 17:20:37.04 ID:???] apacheログの内容をリアルタイムでクライアントに伝えて何がしたいん