- 1 名前:nobodyさん mailto:sage [2009/02/03(火) 01:09:36 ID:???]
- まず読め→【PHP マニュアル】www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。 過去スレ、関連スレ、FAQなどは>>2-10辺り 次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
- 407 名前:nobodyさん mailto:sage [2009/05/07(木) 18:30:34 ID:???]
- クラスってのがなかなか理解できません
どなたか詳しく解説してくれませんか?
- 408 名前:nobodyさん mailto:sage [2009/05/07(木) 18:37:19 ID:???]
- どこが分からんの?
- 409 名前:nobodyさん mailto:sage [2009/05/07(木) 22:32:52 ID:???]
- >>407
いいよ。
- 410 名前:nobodyさん mailto:sage [2009/05/07(木) 23:13:30 ID:???]
- このスレの先輩方はhtmlは得意でしょうか?
- 411 名前:nobodyさん mailto:sage [2009/05/07(木) 23:28:15 ID:???]
- おうよ
- 412 名前:nobodyさん mailto:sage [2009/05/07(木) 23:31:35 ID:???]
- ほんとかよwwwwwwwwwwwwwwwwwww
- 413 名前:410 mailto:sage [2009/05/07(木) 23:34:13 ID:???]
- 僕は一応html4系とxhtml1.0と1.1で、しかもstrictとtなんちゃらで使えるタグと属性を口頭で全部言えるぐらいの知識しか持ちません
xhtml1.0 strictで使えるタグの数もパッと言えるぐらいの知識です
- 414 名前:nobodyさん mailto:sage [2009/05/08(金) 00:10:55 ID:???]
- じゃ言ってみてくれ
- 415 名前:410 mailto:sage [2009/05/08(金) 00:13:27 ID:???]
- >>414
76個
- 416 名前:410 mailto:sage [2009/05/08(金) 00:14:07 ID:???]
- ちなみにhtml4.1 strictとxhtml1.0 strictで使えるタグは同じです
- 417 名前:nobodyさん mailto:sage [2009/05/08(金) 00:16:17 ID:???]
- はよ全部言えよ
- 418 名前:nobodyさん mailto:sage [2009/05/08(金) 01:36:40 ID:???]
- なんだよ質問じゃなくただの知ったかかよ
- 419 名前:nobodyさん mailto:sage [2009/05/09(土) 08:57:00 ID:???]
- 4択問題をcsvに記録していくスクリプトを作っています。
csvに下のように書き込まれるようにしています。 名前,答え,答え,答え,答え,答え,(改行) 名前,答え,答え,答え,答え,答え,(改行) 名前,答え,答え,答え,答え,答え,(改行) 複数の人が同時に行うと、下のようにデータが混ざってしまいますよね? Aさん,答え(Aさん),[Bさん参入で改行] Bさん,答え(Bさん),答え(Bさん),答え(Aさん),答え(Aさん),答え(Bさん), 実際に試してみるというのがやりにくい問題なので、何を勉強しないといけないか 教えていただけますか。 そもそもCSVでこの手の記録をやろろうとするのはどうなんでしょうか。
- 420 名前:nobodyさん mailto:sage [2009/05/09(土) 09:09:56 ID:???]
- flock
- 421 名前:nobodyさん mailto:sage [2009/05/09(土) 10:00:00 ID:???]
- >>419
コード書いてもらわないと的を得た回答はでないよ
- 422 名前:nobodyさん mailto:sage [2009/05/09(土) 17:18:10 ID:???]
- 以前$_SERVER["DOCUMENT_ROOT"]のことでググったときに
DOCUMENT_ROOTの値が実際の値とは違う場合がある事例を見ました。 とすると<base>タグやスクリプト内で絶対パスを作るときにこの変数を使うのは 危険な可能性もあるんでしょうか。 $rootPath = $_SERVER["DOCUMENT_ROOT"]; $a = $rootPath."/sample"; <base href="{$rootPath}"> また$_SERVER["DOCUMENT_ROOT"]以外にルートパス(?)を取得する方法はありますか?
- 423 名前:nobodyさん mailto:sage [2009/05/09(土) 17:40:17 ID:???]
- aru
- 424 名前:nobodyさん mailto:sage [2009/05/09(土) 18:05:56 ID:???]
- そのDOCUMENT_ROOTの値が実際の値とは違う場合がある事例を知らないけど
その事例がわかれば対応できないか?
- 425 名前:nobodyさん mailto:sage [2009/05/09(土) 23:32:39 ID:???]
- DOCUMENT_ROOTって、
public_htmlとか、 htdocとかのこと?
- 426 名前:nobodyさん mailto:sage [2009/05/10(日) 00:07:15 ID:???]
- >>425
知らない奴に聞いてねえよ ロムってろks野郎
- 427 名前:419 mailto:sage [2009/05/10(日) 00:07:59 ID:???]
- 概略はこんな感じです。最初のifで名前の処理をした後は、最初の問題提示が
一番下のelseから始まり、まず二つ目のifに入り、その後は最初のelseの中をぐるぐるやって、 問題がなくなったら終了するような仕様です。今のところflockはあてずっぽうに入っている状態です。 15問あったとしてAさんがそれを終えるまでのすべてにろっくをかけておかないといけないのでしょうか。 複数の人が同時に問題を解けるようにしたいのですが。 if($_POST["id"] =="999"){ $file_name = "record.txt"; $file = fopen($file_name, "a+") or die("OPENエラー $file_name"); flock($file, LOCK_EX); 中略(解答者の名前の書き込み) fputs($file, $time); flock($file, LOCK_UN); fclose($file); } if (is_numeric(@$_POST['answer']) || $_POST['id'] == "2"){ $file = fopen($file_name, "a") or die("OPENエラー $file_name"); flock($file, LOCK_EX); if(intval(@$_POST['k']) == "0") { 中略(正誤判定) fputs($file, $string); flock($file, LOCK_UN); fclose($file); 中略(問題提示とPOST) }
- 428 名前:419 mailto:sage [2009/05/10(日) 00:11:40 ID:???]
- スクリプト後半です。長いので細かいところは省略してありますが、
本物は期待通り動くことは動きます。 ********** else { $file_name = "record.txt"; $file = fopen($file_name, "a") or die("OPENエラー $file_name"); flock($file, LOCK_EX); 中略(正誤判定) fputs($file, $string); flock($file, LOCK_UN); fclose($file); //////全問終了 if($question[0] == ""){ echo "<br><br>終了です!"; 中略 $file_name = "record.txt"; $file = fopen($file_name, "a") or die("OPENエラー $file_name"); flock($file, LOCK_EX); $string = $array.","; $time = $time."\n"; fputs($file, $string); flock($file, LOCK_UN);//同時アクセスを防ぐロックを解除 fclose($file); } else{ 中略(問題提示とPOST) } } } else { $fname = "voc.csv"; $data = file($fname); 中略(問題提示とPOST)} }
- 429 名前:nobodyさん mailto:sage [2009/05/10(日) 00:12:13 ID:???]
- >>427
マジレスするとflock($file,LOCK_UN)はいらない なぜならfcloseでファイルが閉じられるから
- 430 名前:nobodyさん mailto:sage [2009/05/10(日) 03:06:05 ID:???]
- >>427
> 複数の人が同時に問題を解けるようにしたいのですが。 全問終了時だけファイル操作(とロック)すればいいと思うんですよね。
- 431 名前:419 mailto:sage [2009/05/10(日) 07:43:14 ID:???]
- >>429
ありがとうございます。 >>430 ありがとうございます。 そうですね。最後に一気に書き込む仕様にしておけばいいですよね。 今の仕様ですと、最初のelseの中でぐるぐると出題するごとに 各問題に対する回答者の答えを一つ一つ書き込む 仕様なので(<私の理解が間違ってなければ)、おそらく複数の人が 回答すると419のようにデータ混じるのではないかと思っています。 途中の回答を回答者ごとに一時的にどこかにためておけばいいんですね。 テンポラリーファイルを回答者ごとに別々に作成して回答を一時的に格納し、 最後にひとつの記録用ファイルに書き込むというのを今考えたんですが、 これどうでしょうか、他にもっといいやり方があるでしょうか?
- 432 名前:nobodyさん [2009/05/10(日) 12:07:35 ID:glvoYFM0]
- 掲示板の親記事にコメントすると
その親記事にコメントが表示されますが これってどういうアルゴリズムなんでしょうか?
- 433 名前:nobodyさん mailto:sage [2009/05/10(日) 12:14:49 ID:???]
- 全てはデータ構造
データ構造が決まればそれに合わせてプログラムがコーディングされるだけ。
- 434 名前:nobodyさん [2009/05/10(日) 20:17:25 ID:kteLIAQk]
- 携帯電話で対応機種を判別するWebページをphpで作っています。
エラーは出ずに動作はしたのですが、対応機種に一致しているはずなのに 一致判定を通ってくれません。 判定条件が間違っているのかもしれませんが、自分ではさっぱりわからないので ご指摘を頂ければと思います。 【test.php】 <?php $userAgent = $_SERVER['HTTP_USER_AGENT']; $deviceList = file("DeviceDisplay.csv"); foreach ($deviceList as $key => $value) { rtrim($value); list($name, $agent) = explode(',', $value); print $name."<br />"; print $agent."<br /><br />"; if ((strstr($userAgent,$agen))!= false){ print "おk"; break; } } print $userAgent."<br />".$agent; } 【DeviceDisplay.csv】 903i,D903i よろしくお願いします。
- 435 名前:nobodyさん mailto:sage [2009/05/10(日) 20:18:00 ID:???]
- >>434
PEAR使えば?
- 436 名前:nobodyさん mailto:sage [2009/05/10(日) 20:21:35 ID:???]
- $value= rtrim($value);
じゃないか?
- 437 名前:nobodyさん mailto:sage [2009/05/10(日) 20:34:37 ID:???]
- $getUA = $_SERVER['HTTP_USER_AGENT'];
$f = file("DeviceDisplay.csv"); foreach ($f as $k=>$v){ list($name, $ua) = explode(',', rtrim($v)); if ($getUA == $ua) {echo "csvに記録されてました";} }
- 438 名前:nobodyさん mailto:sage [2009/05/10(日) 20:45:09 ID:???]
- >>437
===
- 439 名前:nobodyさん mailto:sage [2009/05/10(日) 20:45:11 ID:???]
- > if ((strstr($userAgent,$agen))!= false){
$agent なんかいろいろあるな
- 440 名前:434 [2009/05/10(日) 20:55:16 ID:kteLIAQk]
- >>435-439
ご指摘ありがとうございます! 今回は自力でやりたいのでがんばってみます。 改行を消したのにそれを代入してないのと、 ==で判定、そして決定的な綴りミスですね・・・orz 以上を踏まえてリベンジしてきます。
- 441 名前:nobodyさん mailto:sage [2009/05/12(火) 10:24:23 ID:???]
- 1.ファイルがない時は作成し、ある時は追加モードでオープン。
2.ファイルが新規作成された時は、chmod 0666 という処理をしたいです。 fopen($filePath, 'a')でファイルオープンした時に、 新規作成されたかどうかが分かれば簡単にできると思うのですが、 できません。 どのようにすれば目的の処理ができるでしょうか?
- 442 名前:nobodyさん mailto:sage [2009/05/12(火) 10:34:06 ID:???]
- file_exisitsでだめなん?
- 443 名前:nobodyさん mailto:sage [2009/05/12(火) 10:54:04 ID:???]
- chmodで失敗したらファイルがないでいいじゃん
- 444 名前:nobodyさん mailto:sage [2009/05/12(火) 10:54:47 ID:???]
- マジレスするとファイルの作成&書き込み時にfile_exisitsなどはやめた方が良い
- 445 名前:nobodyさん mailto:sage [2009/05/12(火) 11:07:09 ID:???]
- flockと組み合わせればfile_exisitsはアリかと
- 446 名前:nobodyさん mailto:sage [2009/05/12(火) 11:18:38 ID:???]
- >>444
何故に?
- 447 名前:nobodyさん mailto:sage [2009/05/12(火) 11:32:33 ID:???]
- >>445
chmod するしないぐらいなら、そんなに神経質にならなくても良いと思うが。
- 448 名前:nobodyさん mailto:sage [2009/05/12(火) 21:45:37 ID:???]
- >>446
ファイルがあるかな? ファイルがないなー よーしファイルをつくるぞー ちょーーとまったーワシが先にファイルを作るでぇ〜ゲヘゲヘ よっしゃーワシが先にファイル作成完了〜〜大勝利〜〜〜 、、、さーーって、さっき調べた時にファイルなかったから、作るかな,,, 作成、っと、、、ん?今、なんか、違和感を感じたが、、、、なんだったんだ???
- 449 名前:nobodyさん mailto:sage [2009/05/12(火) 21:47:19 ID:???]
- file_exisits使うのはネタに見えてしまうw
- 450 名前:nobodyさん mailto:sage [2009/05/12(火) 21:54:39 ID:???]
- file_existsの何が悪いのかkwsk
- 451 名前:nobodyさん mailto:sage [2009/05/12(火) 22:36:38 ID:???]
- >>448
今回はaモードでopenだから関係ないじゃん。
- 452 名前:nobodyさん mailto:sage [2009/05/12(火) 23:01:41 ID:???]
- 俺的にはスクリプトでパーミッションを弄る動作はダメコードだと考えている
- 453 名前:nobodyさん mailto:sage [2009/05/12(火) 23:06:33 ID:???]
- だからfile_existsの何が悪いのよ
適当なこと言わないでよ
- 454 名前:nobodyさん mailto:sage [2009/05/12(火) 23:06:47 ID:???]
- 別にいいやん。
ただWindowsだとchmodできんのはチト不便。
- 455 名前:nobodyさん mailto:sage [2009/05/12(火) 23:10:17 ID:???]
- >>453
まず貴様がfile_existsって問題ない理由を述べればいいよ
- 456 名前:nobodyさん mailto:sage [2009/05/12(火) 23:13:14 ID:???]
- >>455
マニュアルに使用上の注意について書いてないじゃない
- 457 名前:nobodyさん mailto:sage [2009/05/12(火) 23:15:59 ID:???]
- また荒らしかよ
- 458 名前:nobodyさん mailto:sage [2009/05/12(火) 23:18:11 ID:???]
- 0666ってことはログファイルか
- 459 名前:nobodyさん mailto:sage [2009/05/14(木) 21:19:26 ID:???]
- なんだってー
- 460 名前:nobodyさん mailto:sage [2009/05/15(金) 06:59:21 ID:???]
- 結局file_existsが駄目な明確な理由を誰も上げられないんですね
2chなんて所詮口だけ野郎ばっかりか・・
- 461 名前:nobodyさん mailto:sage [2009/05/15(金) 07:11:40 ID:???]
- 何を今更
- 462 名前:nobodyさん mailto:sage [2009/05/15(金) 08:06:57 ID:???]
- >>460
ホント期待できなくなったね。 昔と違って、OK waveとか知恵袋とかあるし、まともな連中はそっちの方を見てるのかな。
- 463 名前:nobodyさん mailto:sage [2009/05/15(金) 08:18:07 ID:???]
- >>460
このスレにはニートとフリーターしかいないんだからしょうがないよ それにPHPはバカ専言語だから優秀な人間は興味を示さないし
- 464 名前:nobodyさん mailto:sage [2009/05/15(金) 08:23:51 ID:???]
- >>463
たしかにPHPなんて使えても所詮WEB開発が関の山だからねw そのWEB開発にしても最近はRubyとかPythonが台頭してるわけだからPHPを好んで使ってる奴は アレとしか言いようがないね
- 465 名前:nobodyさん mailto:sage [2009/05/15(金) 08:24:53 ID:???]
- 何を今更
- 466 名前:nobodyさん mailto:sage [2009/05/15(金) 08:30:41 ID:???]
- とまぁここまで全部>>460の自作自演なんだけどね
- 467 名前:nobodyさん mailto:sage [2009/05/15(金) 08:34:55 ID:???]
- どこでRubyとPythonが台頭してるんだ?
- 468 名前:nobodyさん mailto:sage [2009/05/15(金) 08:36:49 ID:???]
- >>467
地球上のどこかで
- 469 名前:nobodyさん mailto:sage [2009/05/15(金) 08:40:09 ID:???]
- >>467
お前の知らない外の世界でだよ まったくこれだから警備員は(ry
- 470 名前:nobodyさん mailto:sage [2009/05/15(金) 08:40:41 ID:???]
- じゃちょっと示してみ
- 471 名前:nobodyさん mailto:sage [2009/05/15(金) 08:41:47 ID:???]
- 釣られてソース厨出現ww
- 472 名前:nobodyさん mailto:sage [2009/05/15(金) 10:14:37 ID:???]
- >>460
仰る通りニートとフリーターの憩いの場なんで帰っていただけませんか?
- 473 名前:nobodyさん mailto:sage [2009/05/15(金) 12:25:37 ID:???]
- >>460
じゃあこのまま使い続けてください 誰も止めはしませんので^^
- 474 名前:nobodyさん mailto:sage [2009/05/15(金) 13:22:36 ID:???]
- 過疎杉sage
- 475 名前:nobodyさん mailto:sage [2009/05/16(土) 22:47:21 ID:???]
- 可変変数って大抵他の書き方した方がスマートでわかりやすいソースになると思うんだけど、
一体どういうときに使えばいいのだろう?
- 476 名前:nobodyさん mailto:sage [2009/05/16(土) 23:33:14 ID:???]
- >>475
特に使う必要はない。 perlであったから、いれてみました、ってだけ。
- 477 名前:nobodyさん mailto:sage [2009/05/16(土) 23:42:36 ID:???]
- >>476
じゃperlではどのように使われてるの?
- 478 名前:nobodyさん mailto:sage [2009/05/16(土) 23:45:50 ID:???]
- それは老人にきいてください
Perlについての質問箱 39箱目 pc12.2ch.net/test/read.cgi/tech/1234181856/
- 479 名前:nobodyさん mailto:sage [2009/05/16(土) 23:48:44 ID:???]
- お前は知らないんかw
- 480 名前:nobodyさん mailto:sage [2009/05/17(日) 00:49:35 ID:???]
- >>475
配列をextractで展開するのと似たようなことが出来るかな。 $arr = array('a'=>'b', 'c'=>'d', 'e'=>'f'); foreach($arr as $key=>$value){ ${$key} = $value; } んで、最終的に例えばテンプレートファイルを include 'template.html' とか呼んでやれば、テンプレート内で展開した変数を使えたりとか? これだけだったらextractすればいいけど、配列のキーの特定の文字だけ展開したくない場合とか、 (例えば、先頭がアンダーバーで始まってるものは展開しないとか) 条件をつけて展開できるかな。
- 481 名前:nobodyさん mailto:sage [2009/05/17(日) 06:43:27 ID:???]
- 本日も過疎。
最新50に1週間も前のレスが表示されるってどんだけww
- 482 名前:nobodyさん mailto:sage [2009/05/17(日) 11:51:52 ID:???]
- この板ではよくあること
- 483 名前:nobodyさん mailto:sage [2009/05/17(日) 22:52:05 ID:???]
- 俺が常駐してるスレなんて連続20レスほど保守あげ
しかも俺の
- 484 名前:nobodyさん mailto:sage [2009/05/18(月) 02:39:12 ID:???]
- 本番マシンで、エラーを表示させたくない場合、
ini_setと error_reportingと どっちを使うの?
- 485 名前:nobodyさん mailto:sage [2009/05/18(月) 02:49:39 ID:???]
- display_errorsじゃねーの?
- 486 名前:nobodyさん mailto:sage [2009/05/18(月) 03:04:08 ID:???]
- >>485
書き方は?
- 487 名前:nobodyさん mailto:sage [2009/05/18(月) 03:05:27 ID:???]
- display_errorsってディレクティブでしょう?
ディレクティブってphp.iniにしか設定できないんでしょう? レンタルサーバーなので、pnp.iniはいじれない環境です。 なので、php.iniをいじらなくてもできる方法を教えてください
- 488 名前:nobodyさん mailto:sage [2009/05/18(月) 03:11:25 ID:???]
- じゃhtaccessでok
- 489 名前:名無し募集中。。。 [2009/05/18(月) 03:28:45 ID:wP2DRNT9]
- ini_set('display_errors','on')
- 490 名前:nobodyさん mailto:sage [2009/05/18(月) 10:16:50 ID:???]
- 情報小出しうぜえ
- 491 名前:nobodyさん mailto:sage [2009/05/18(月) 10:36:42 ID:???]
- 小出しにしたほうがなんだかミステリアスでいいじゃないか
- 492 名前:nobodyさん mailto:sage [2009/05/18(月) 20:39:24 ID:???]
- >>490
自閉症のあなたがたの 質問能力を鍛えてあげているのです。 営業にまわったとき、 「情報の後だしウゼエwww」 とかって見込み客に言うんですか??
- 493 名前:nobodyさん mailto:sage [2009/05/18(月) 20:40:09 ID:???]
- >>489
これでいいの?
- 494 名前:名無し募集中。。。 [2009/05/18(月) 20:53:48 ID:wP2DRNT9]
- 今決まってることを先に全部伝えれば余分な工数が圧縮できるので
納期も見積もりも低く抑えることができるわけで 積極的な答えを引き出したいなら客も小出しにはしないけどな
- 495 名前:nobodyさん mailto:sage [2009/05/18(月) 20:55:50 ID:???]
- >>494
それであなたは営業に回ったときに、 「情報の後出しウゼエwww」 とかって見込み客に言ってるの?
- 496 名前:nobodyさん mailto:sage [2009/05/18(月) 21:34:39 ID:???]
- <a href="XXX">vvv</a>
これで、XXXにユーザーからの入力値を入れるんだけど、 javascriptのコードを書かれると そのまま実行されるんで、 サニタイズしたいんだけど、専用関数あるの?
- 497 名前:nobodyさん mailto:sage [2009/05/18(月) 21:41:15 ID:???]
- サニタイズ言うな
- 498 名前:nobodyさん mailto:sage [2009/05/18(月) 21:42:52 ID:???]
- >>496
ttp://jp.php.net/htmlspecialchars
- 499 名前:名無し募集中。。。 [2009/05/18(月) 21:47:19 ID:wP2DRNT9]
- >>495
「今決まってることを先に全部伝えてもらえれば余分な工数が圧縮できますよ 」 って言うけど
- 500 名前:nobodyさん mailto:sage [2009/05/18(月) 22:14:26 ID:???]
- >>498
それだとサニタイズできないでしょ。
- 501 名前:nobodyさん mailto:sage [2009/05/18(月) 22:53:23 ID:???]
- >>500
・・・・え? 何がしたいの?
- 502 名前:nobodyさん mailto:sage [2009/05/18(月) 23:01:36 ID:???]
- <a href="javascript:[ここにjavascriptのコード]">vvv</a>
こう書かれると、htmlなんとかでは サニタイズできないでしょう? だからjavascriptって文字をかけない ようにしなければならないんだけど、 これって正規表現使ってゴリゴリ書かないと だめなの?
- 503 名前:nobodyさん mailto:sage [2009/05/18(月) 23:03:28 ID:???]
- error_reporting(0);
これって使わないの?
- 504 名前:nobodyさん mailto:sage [2009/05/18(月) 23:11:09 ID:???]
- >>502
実際にそこに何が入るのか知らんが、入力値を分解してURL作ればいいだけの話じゃないの?
- 505 名前:nobodyさん mailto:sage [2009/05/19(火) 02:17:09 ID:???]
- ログファイルの中味を見られないようにするために、
拡張子を.phpにしようと思います。 これだと、たとえブラウザで直接ファイルを指定しても、 拡張子が.phpなのでPHPファイルとして実行しようとするので (そして中味はPHPのスクリプトでなくて単なるテキストファイルなので) 見られないというわけです。 でもパーミッションが書き込み可能になっていると 問題ありますか?
- 506 名前:nobodyさん mailto:sage [2009/05/19(火) 02:28:01 ID:???]
- ドキュメントルート外や.htaccessでアクセスできないようにする方が吉
拡張子phpは最後の手段
- 507 名前:nobodyさん mailto:sage [2009/05/19(火) 02:31:21 ID:???]
- >>505
発想は悪くないんだがとりあえず試してみ。たぶん思ったのと違う結果になるw あとパーミッションはあまり気にするな。共用鯖じゃsafemodeでも無い限りどーにもならん。
|

|