1 名前:● mailto:sage [2009/10/11(日) 21:18:54 ID:???] 質問者はまず>>1 を良く読むこと(必須!) 過去スレ、関連スレ、FAQなどは>>2-10 辺り 次スレは>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。 ◆前スレ 【PHP】下らねぇ質問はID出して書き込みやがれ 88 pc11.2ch.net/test/read.cgi/php/1253061577/ ◆質問用テンプレ 【OS名】vine linux 【PHPのバージョン】php5.26 【連携ソフトウェア】mysql 【質問内容】 ◆質問する時の注意 ・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す) ・ 己の行った操作、変更などを詳しく明記すること。 ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。 ・ 質問者として、態度をわきまえること。 ・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。 (PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。) ◆質問後の注意 ・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。 ・解決しなくても回答をもらった場合はお礼を言うこと。 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。) ◆回答者への注意 ・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。 【その他諸注意】 ・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
528 名前:nobodyさん mailto:sage [2009/10/23(金) 01:48:25 ID:???] >>522 1.SQLの機能をラップしたクラス 2. 1のクラスを使って機能を実現するクラス という感じで分けてる、SQLは2へ直書き。 おそらくそれ以上ラップしたり、粒度を増やしても使うことは無いからということで。
529 名前:521 [2009/10/23(金) 01:49:08 ID:U1ZTI1ef] 現在書いているPHPのコードはこのような感じです。 $sql1 = "SELECT x FROM tableA"; $sql2 = "SELECT x FROM tableB"; $tablea = mysql_query($sql1); $tableb = mysql_query($sql2); while($row = mysql_fetch_array($tablea)){ echo $row['data_id'] ; echo $row['info'] ; echo $row['date'] ; echo $row['sonota'] ; } while ($row2 = mysql_fetch_array($tableb)){ if ($row2['data_id'] eq $row['data_id']){ echo $row2['koshin_joho']; } }
530 名前:nobodyさん mailto:sage [2009/10/23(金) 01:52:48 ID:???] >>529 SELECT * FROM tableA NATURAL JOIN tableB
531 名前:nobodyさん [2009/10/23(金) 01:53:32 ID:U1ZTI1ef] >>525 ,526 ありがとうございます。 こういう事でしょうか? $sql = "SELECT x FROM tableA, tableB where tableA.data_id = tableB.data_id"; $table = mysql_query($sql); while($row = mysql_fetch_array($table)){ echo $row['data_id'] ; echo $row['info'] ; echo $row['date'] ; echo $row['sonota'] ; echo $row['koshin_joho']; }
532 名前:nobodyさん mailto:sage [2009/10/23(金) 01:56:08 ID:???] >>527 スレッド名一覧をとる getAll() ID指定してスレッドとる getById() なんて分けるのは割りとあると思うけどなー 返ってくるモノが違うってとき。
533 名前:nobodyさん [2009/10/23(金) 01:57:50 ID:U1ZTI1ef] >>530 それだとkojin_johoが書かれているテーブルの内容しか表示されません。
534 名前:nobodyさん mailto:sage [2009/10/23(金) 02:04:16 ID:???] >>533 そこまで分かってるなら普通に結合も分かれよw ネタかよw
535 名前:nobodyさん mailto:sage [2009/10/23(金) 02:09:54 ID:???] >>533 外部結合でググろう SELECT * FROM tableA LEFT JOIN tableB ON tableA.data_id = tableB.data_id;
536 名前:nobodyさん mailto:sage [2009/10/23(金) 02:12:01 ID:???] つTECHSCORE
537 名前:nobodyさん [2009/10/23(金) 02:25:34 ID:U1ZTI1ef] >>534 最近MySQLをはじめたものですいません。 >>535 完璧です。ありがとうございました。
538 名前:nobodyさん [2009/10/23(金) 05:47:37 ID:QLP+l4hN] php5.seesaa.net/category/3798060-1.html このサイト使ってphpを始めたのですが、POSTとGETを同時に使う重要性が分からないです。 Formタグの action の項目にGETをあらかじめ入力しているだけなので、ブラウザでのユーザの操作で変化しないです。 確かに同時に使っていますが、メリットが分からないです。むしろ、ユーザに書き換えられる危険性の方が高い気がします。 またhidden についても同様で、わざわざ入門のページにある割に、使い道が分からないです。 POSTとGETを同時に使う意味はありますか?
539 名前:nobodyさん mailto:sage [2009/10/23(金) 06:08:57 ID:???] 重要なんて書いてある? ケースバイケースで両方使う場合もあると書いているんだろう 俺もいろいろ書いてきたがGETとPOSTを併用したのは1度だけある どういうケースで使ったのかはちょっと思い出せないが併用したことは覚えている 必要になれば使えばいいだけの話だからそんな深く考えなくていいよ 一生使わないかもしれないし頻繁に使うかもしれないし 結局その人が何作ってるか・どういう風に組んでいるかによる hiddenはたとえば何かのアカウントを取得するときを想定するとわかりやすい アカウント取得には 登録のために個人情報を入力する(Input)→ 登録確認(個人情報確認)画面に進み登録するか確認する(Confirm)→ 登録完了 というプロセスをとる場合が多いわけだが Input画面で入力した情報をConfirm画面で出力するためには Confirm画面にどうにかしてInput画面で入力したものを受け渡さないといけない そういうときに使うのがhidden ようするに前のページの情報をページ遷移(移動)後でも使うために使う(情報を持ちまわすのに使う)
540 名前:nobodyさん mailto:sage [2009/10/23(金) 07:28:00 ID:???] すみません。PHPってウェブサーバー上でしか実行できませんか。 例えばコマンドプロンプトからバッチファイルはexeみたいに 実行できないでしょうか?
541 名前:nobodyさん mailto:sage [2009/10/23(金) 07:35:54 ID:???] >>539 なるほど 隠す用途じゃなくて見えなくさせているだけってことか。 入力された変数をhiddenのところにprinfするなら、確かに次も値を使えそうです。 2chにブラウザで書き込んだ時に出る「書きこみ&クッキー確認」の画面でもhiddenを見つけられました。 ありがとうございました。
542 名前:nobodyさん [2009/10/23(金) 08:45:41 ID:pXxGvaT3] >>482 「PHPの」初心者ですが、 「セッション管理に失敗しない10の方法」を教えて頂けませんでしょうか。
543 名前:nobodyさん mailto:sage [2009/10/23(金) 09:13:04 ID:???] PEARって全部使えないと思うのは俺だけですか?
544 名前:nobodyさん mailto:sage [2009/10/23(金) 09:27:52 ID:???] >>543 先日まで触ったこともなかったけどSMTP_AUTHを使う必要があってMailを使ったよ
545 名前:nobodyさん mailto:sage [2009/10/23(金) 10:39:30 ID:???] >>540 普通にできます
546 名前:nobodyさん mailto:sage [2009/10/23(金) 11:43:28 ID:???] >>545 できました。
547 名前:nobodyさん mailto:sage [2009/10/23(金) 21:49:42 ID:???] 安藤さんがOSS受賞したね
548 名前:nobodyさん mailto:sage [2009/10/23(金) 22:02:21 ID:???] だれや? キャスターか?
549 名前:nobodyさん mailto:sage [2009/10/24(土) 00:11:00 ID:???] >>513 これギャグだろ?
550 名前:nobodyさん [2009/10/24(土) 00:40:41 ID:BvPjRTUm] new SQLiteDatabaseで作られたコンストラクタで データベースをcloseするにはどうしたらいいですか?
551 名前:nobodyさん mailto:sage [2009/10/24(土) 00:51:30 ID:???] $db->close();
552 名前:nobodyさん [2009/10/24(土) 00:54:41 ID:BvPjRTUm] Fatal error: Call to undefined method SQLiteDatabase::close()
553 名前:nobodyさん mailto:sage [2009/10/24(土) 04:14:41 ID:???] そのクラスに閉じるメソッドが使われていなくて コンストラクトでオープンするようになっている場合 デスクトラクト時にそのクラス側で勝手に終了してくれてると考えるきでは?
554 名前:nobodyさん mailto:sage [2009/10/24(土) 04:18:45 ID:???] なんか日本語が変だった・・・ そのクラスに閉じるメソッドが定義されていなくて コンストラクターでオープンするようになっている場合 デスクトラクターで勝手に閉じてくれていると考えるべきでは? 実際にそのクラスの中身はみてないしどういうのもしらないが
555 名前:nobodyさん mailto:sage [2009/10/24(土) 04:28:53 ID:???] 何言ってんの?
556 名前:nobodyさん mailto:sage [2009/10/24(土) 04:43:06 ID:???] 分からないなら無理してレスしなくていいよ 教えてほしいならどこがどうわからないのかID出して質問してね
557 名前:nobodyさん mailto:sage [2009/10/24(土) 05:22:59 ID:???] >>555 554で言ったとおりどういうクラスかもしらないし中身もしらないけど(というよりSQLite使ったことない) class SQLiteDatabase { private DB接続ポインタ; function __construct(接続情報) { $this->DB接続ポインタ = sqliteオープン(接続情報);; } function query($sql) { return 結果を配列で返す($sql); } function __destruct() { sqliteクローズ($this->DB接続ポインタ); //$this->DB接続ポインタ = null; } } $obj = new SQLiteDatabase(接続情報); $res = $obj->query("SELECT * FROM hoge WHERE 1"); foreach ($res as $row) { echo $row."<br>"; } //ここでデストラクターが呼ばれて勝手に終了する たぶんこんな構造になってるんじゃないかと(間違ってるかもしれないけど) SQLite自体明示的に終了させる必要がないDBかもしれないしその辺の事情は知らない
558 名前:nobodyさん mailto:sage [2009/10/24(土) 05:24:18 ID:???] 下らんコード書く暇あったら確認しろよ
559 名前:nobodyさん mailto:sage [2009/10/24(土) 05:28:37 ID:???] >>558 そんなクラス見つからなかったんだけどなぁ 探し方が悪かったんだろうか よかったらリンクはってちょうだい
560 名前:nobodyさん mailto:sage [2009/10/24(土) 07:37:49 ID:???] そしてリンクをはらない>>558 であった
561 名前:nobodyさん mailto:sage [2009/10/24(土) 08:20:12 ID:???] >//ここでデストラクターが呼ばれて勝手に終了する $objがスコープ内にいるのにデストラクタが呼ばれちゃまずいだろ。
562 名前:nobodyさん mailto:sage [2009/10/24(土) 08:25:17 ID:???] >>561 <?php class Hoge { function Hoge() { echo "construct<br>\n"; } function a() { return array("a", "b", "c"); } function __destruct() { echo "destruct<br>\n"; } } $obj = new Hoge; foreach ($obj->a() as $value) { echo $value."<br>\n"; } ?>
563 名前:nobodyさん mailto:sage [2009/10/24(土) 08:44:46 ID:???] ほんとこのスレ初心者ばっかだなw
564 名前:nobodyさん mailto:sage [2009/10/24(土) 09:21:19 ID:???] www.php.net/manual/ja/function.sqlite-close.php しかし相変わらずだな。
565 名前:nobodyさん mailto:sage [2009/10/24(土) 09:29:15 ID:???] www.php.net/manual/ja/ref.sqlite.php これ見方がわからないんだけど SQLiteDatabase SQLiteResult SQLiteUnbuffered に定義されてる各メソッドはそのクラスのみで使えて 目次のとこに書かれてるのは共通に使えるメソッド? なんか無名関数のせいでマニュアルの見方がむずくなってきてる気がする・・・
566 名前:nobodyさん mailto:sage [2009/10/24(土) 09:34:01 ID:???] マルチパラダイムだから仕方ないがこれはひどい 明確に分ければいいのに
567 名前:nobodyさん [2009/10/24(土) 09:49:09 ID:o7jv7fS8] PHP、PEAR、Smartyはだいたい理解できました しかし、実際HTMLなどのクライアントサイド側との連携がいまいち良く分かりません 本やちょっとしたPHP解説のサイトなどはメソッドとかプロパティなどの説明で終わっているもので フォームなどの基本的な事は何処にでも書いてあるので分かるのですが、実践的なPHPとクライアントサイドとの連携したコードなど 書いてある書籍など自分の県では見つけられませんでした 実際にサイトを作る為のクライアント+サーバサイドを連携させたサンプルコードの載っているサイトや書籍は何かないでしょうか? 宜しくお願い致します
568 名前:nobodyさん mailto:sage [2009/10/24(土) 09:50:26 ID:???] Ajaxのことだろ Ajaxスレいってください
569 名前:nobodyさん mailto:sage [2009/10/24(土) 09:55:04 ID:???] jquery
570 名前:nobodyさん [2009/10/24(土) 10:02:54 ID:o7jv7fS8] えっ? Ajaxですか? Ajaxの事ではなく、例えばテンプレートとか実際に実装して作ったサンプルとかです 説明不足だったようです、すみません 例えば、Webデザインブックなどはいくらでも出ていますが、それらはただHTMLとCSSで実装しています まぁたまにJavaScriptなどもありますが 自分は、人がサイトにアップロードした画像をサイトに情報つきで載せてレイアウトも崩れないようにしたいとか (つまり$_FILESの概念はわかるけれどそれを実際クライアント側のコードにどのようにテンプレート内に実装・レイアウトしていくか)、 PEARによるログイン認証を行った後でそのログインしたユーザーのみが動的コンテンツを利用するためにはどのようにすればいいのか、 とかまぁ書けば色々と長くなりそうですが、そういう事です 自分側がただ作ったサイトを公開するだけではなく、ユーザーの参加できるようなサイトの作り方を、簡単でもいいので解説しているサイトや書籍が知りたいのです
571 名前:nobodyさん mailto:sage [2009/10/24(土) 10:05:27 ID:???] >>557 おいおいwあんまり>>555をいじめんなよw そんなの見せても>>555にはチンプンカンプンなんだぜwwwwwwww 今頃顔真っ赤にしてるだろうけど二度と出てこないよww
572 名前:nobodyさん mailto:sage [2009/10/24(土) 11:35:30 ID:???] >>571 そういうのは、実際に必要になった時に調べたり考えたりしてもいいと思う。 PHPで家計簿でも何でもいいんで作ってみれば、分かってくるんじゃないかな。 気力があるなら、人が作成したPHPのプログラムを落としてHTML部分がどうなってるか探してみるのが言いかと
573 名前:nobodyさん mailto:sage [2009/10/24(土) 11:39:51 ID:???] そりゃクライアント+サーバサイドの連携っていったら JavaScriptとPHPの連携っていってるようなものだからAjaxって答えが返ってくるのも無理もない MixiやYoutubeのようなSNSサービスをやりたいってことね セッションとか勉強するといいよ
574 名前:nobodyさん mailto:sage [2009/10/24(土) 11:55:49 ID:???] >>562 閉じタグとファイル終端は、直接関係無い。 タグ閉じただけじゃスコープ閉じないんだぜ。
575 名前:nobodyさん mailto:sage [2009/10/24(土) 11:58:58 ID:???] 日本語でおk
576 名前:nobodyさん mailto:sage [2009/10/24(土) 12:00:54 ID:???] でてこいよ>>555 wwwwwwwwwwwwwwwGOGOGOwwwwwwwwwwwwwwwwww
577 名前:nobodyさん [2009/10/24(土) 12:01:27 ID:o7jv7fS8] >>572 レスアンカーは自分(>>570 )にですよね? そうだと思って返答させて下さい >人が作成したPHPのプログラムを落としてHTML部分がどうなってるか探してみる こういうのはWebサイトで検索して、人が書いたサンプルコードを集めて学習しろという事なのでしょうか? それとも、自分は知らない(というかコードを読み取られると危険なのでそもそも出来ないのではと思うのですが)、ソース読み取りソフトとかあるのでしょうか? 例えばWebサイトであればIEのソース機能やFireFoxのFireBugのようなHTMLのコードを表示出来る様なソフトの事です >>573 あぁ、すみませんでした 自分の表現がおかしかったようです HTML+CSSにPHP(テンプレートやライブラリ含む)を組み込んで実装する、実際に運営する為の雛形コードを学習したかったのです
578 名前:nobodyさん mailto:sage [2009/10/24(土) 12:05:25 ID:???] >>570 単にフォームからのリクエストを処理するPHPのコード、ってんなら、 PHPの本で2〜3章かけて解説してるんじゃね? あとは自分の作りたいものに似てるの探して、コード読むべし。
579 名前:nobodyさん mailto:sage [2009/10/24(土) 12:05:29 ID:???] >HTML+CSSにPHP(テンプレートやライブラリ含む)を組み込んで実装する、 >実際に運営する為の雛形コードを学習したかったのです フレームワークのview部分とか見てみるといいかもしれない
580 名前:nobodyさん mailto:sage [2009/10/24(土) 12:10:51 ID:???] >>574 aaa<br> <?php >>562 のコード ?> bbb<br> でbbb<br>より後にdestructが現れるってことか? どっちみちDBクローズならそれでもいいだろ
581 名前:555 mailto:sage [2009/10/24(土) 12:11:40 ID:???] すいませんでした 無知を晒してしまいました ごめんなさい
582 名前:nobodyさん mailto:sage [2009/10/24(土) 12:22:14 ID:???] ちなみにスコープ閉じるってどうやるの? objにnullいれるだけ?
583 名前:nobodyさん mailto:sage [2009/10/24(土) 12:59:43 ID:???] >>580 その下にまた<?phpが出てくるとか、include/requireされてるとか。 >>582 $objはスコープから外れてないけど、インスタンスは ガベージコレクションで回収されるから、そのときに デストラクタが起動されるんだと思う。 PHPで明示的なスコープって言ったら関数かな。 ローカル(グローバルでない)変数のスコープは関数内でしょ。
584 名前:nobodyさん mailto:sage [2009/10/24(土) 13:03:20 ID:???] >>281 いやだからそれは俺が振られた理由になってねえよ なんで会社の休憩時間にイタリアフルコース頼まないといけないんだよ
585 名前:nobodyさん mailto:sage [2009/10/24(土) 13:16:46 ID:???] フラれたのか、ま、元気だせ、応援してるから。
586 名前:nobodyさん mailto:sage [2009/10/24(土) 13:56:20 ID:???] 要らないもんはunsetしちゃおうぜ
587 名前:552 [2009/10/24(土) 14:16:10 ID:BvPjRTUm] 結局クラスを自作して対応しました。 class sqlite{ var $_result = array(); var $_pointer = null; var $_message = null; function connect($dbfile){ return $this->_pointer = sqlite_open($dbfile,0666,$this->_message); } function close(){ sqlite_close($this->_pointer); } function exec($que){ return sqlite_exec($this->_pointer,$que,$this->_message); } function array_query($que){ return sqlite_array_query($this->_pointer,$que,$this->_message); } function get_escape($str){ return sqlite_escape_string($str); } function get_result(){ return $this->_result; } function get_pointer(){ return $this->$_pointer; } function get_message(){ return $this->$_message; } }
588 名前:nobodyさん mailto:sage [2009/10/24(土) 14:37:03 ID:???] >>587 オブジェクト指向スタイル用意されてる意味ねーw
589 名前:nobodyさん mailto:sage [2009/10/24(土) 14:57:50 ID:???] fscanfがおかしいです
590 名前:nobodyさん mailto:sage [2009/10/24(土) 18:28:54 ID:???] なるほどね、凸者さんの判断次第ってことか。 あと、ヤンデレこえぇwww
591 名前:nobodyさん mailto:sage [2009/10/24(土) 18:29:35 ID:???] 誤爆
592 名前:nobodyさん mailto:sage [2009/10/24(土) 19:04:29 ID:???] どうしてもnewで作ってclose()したいんだ、という強い意志が感じられます。 若いっていいね。
593 名前:nobodyさん mailto:sage [2009/10/24(土) 19:35:19 ID:???] >どうしてもnewで作ってclose()したいんだ、という強い意志が感じられます。 はずかしいから黙ってて
594 名前:nobodyさん mailto:sage [2009/10/24(土) 20:43:07 ID:???] newで作ったらdeleteを使いたくなるよね。 で、ダミー関数であるdeleteが登録されてるせいで、 delete($classA)とか書いてもしばらく気がつけない
595 名前:nobodyさん mailto:sage [2009/10/24(土) 20:45:44 ID:???] え?
596 名前:nobodyさん mailto:sage [2009/10/24(土) 20:47:28 ID:???] え?
597 名前:nobodyさん mailto:sage [2009/10/24(土) 21:14:45 ID:???] これ何のスレだっけ
598 名前:nobodyさん mailto:sage [2009/10/24(土) 21:21:53 ID:???] 質問じゃない時はsageで書きやがれスレ
599 名前:nobodyさん [2009/10/24(土) 22:35:42 ID:aM0DiAaq] 【OS名】Windows xp 【PHPのバージョン】php5.2.10 【連携ソフトウェア】mysql 【質問内容】 心理テストのようなサイトを作ろうとしています。 何人がその答えを選んだかの集計と、 それとは別に選んだ答えがどのような性格をあらわすのかを表示できるようにしたいです。 チェックボタンを選んだ状態で「あなたはこんな人」のようなラジオボタンで そのページに遷移させたいです。 どのようにしたらいいのでしょうか? アバウトな質問でごめんなさい。
600 名前:nobodyさん mailto:sage [2009/10/24(土) 22:39:54 ID:???] >>599 で、何ができないの?PHP?本買え
601 名前:nobodyさん mailto:sage [2009/10/24(土) 22:39:57 ID:???] >>599 そのまんまじゃね?何が問題なんだ?
602 名前:nobodyさん mailto:sage [2009/10/24(土) 22:40:40 ID:???] 全部作らせる気かww 最近の若者は安易だなぁ
603 名前:nobodyさん [2009/10/24(土) 22:45:01 ID:aM0DiAaq] くだらなすぎてごめんなさい・・・
604 名前:nobodyさん mailto:sage [2009/10/24(土) 22:45:53 ID:???] くだらないというか何が(どこが)できないのかが分からんのだよ
605 名前:nobodyさん [2009/10/24(土) 22:50:44 ID:aM0DiAaq] アンケートのページで「投票」を押したらその選んだ結果によって違うページに飛ばしたいです。 例えば赤を選んだら赤色を好きな人の性格について書いてあるページで、 青を選んだら青色が好きな人の性格について書いてあるページです。 アバウトすぎてごめんなさい。
606 名前:nobodyさん [2009/10/24(土) 22:51:31 ID:aM0DiAaq] 今こんな感じで書いているところです。。 <html> <head><title>心理テスト</title></head> <body> <h1>メンタル編</h1> <p>あなたがいつか天国へ旅立つとしたら、何色の石をお守りにしたいですか? <?php // スクリプト名取得 $script = basename(__FILE__); // メンバー名配列 $member = array("", "赤いルビー", "ピンクのローズクォーツ", "ゴールド", "イエロートパーズ", "緑のヒスイ", "青のラピスラズリ", "紫水晶", "白の水晶"); // 投票がある場合 if ($_POST['COLOR'] > 0) { // 投票者番号 $no = $_POST['COLOR']; // MySQLに接続 $db = mysql_connect("localhost", "root", "root"); // DB選択 mysql_select_db("graduation", $db); // insert文実行 mysql_query("insert into ninki values(null, {$no}, now())", $db); // DB切断 mysql_close($db); } ?>
607 名前:nobodyさん [2009/10/24(土) 22:52:32 ID:aM0DiAaq] <p><font color="red"><?= $msg ?></font></p> <form method="POST" action="<?= $script ?>"> <p><input type="radio" name="COLOR" value="1">赤いルビー</p> <p><input type="radio" name="COLOR" value="2">ピンクのローズクォーツ</p> <p><input type="radio" name="COLOR" value="3">ゴールド</p> <p><input type="radio" name="COLOR" value="4">イエロートパーズ</p> <p><input type="radio" name="COLOR" value="5">緑のヒスイ</p> <p><input type="radio" name="COLOR" value="6">青のラピスラズリ</p> <p><input type="radio" name="COLOR" value="7">紫水晶</p> <p><input type="radio" name="COLOR" value="8">白の水晶</p> <p><input type="submit" value="投票"></p> </body></html> こんな感じです。 ごめんなさい。
608 名前:nobodyさん mailto:sage [2009/10/24(土) 22:56:06 ID:???] >>607 switch($COLOR){ case 1 処理&リダイレクト1 break; case 2 処理&リダイレクト2 break; case 3 処理&リダイレクト3 break; ..... } あとaction="<?php echo $script ?>"はまずくね? それだったらaction=""で空でいいと思うよ
609 名前:nobodyさん mailto:sage [2009/10/24(土) 22:58:11 ID:???] case 1: ね":"を忘れずに
610 名前:nobodyさん [2009/10/24(土) 23:01:10 ID:aM0DiAaq] >>608 >>609 やってみます 情けない質問に答えてもらってありがとうございます
611 名前:nobodyさん mailto:sage [2009/10/24(土) 23:05:20 ID:???] 情けない質問wwww
612 名前:nobodyさん [2009/10/24(土) 23:24:44 ID:TvoLhocc] switch内のbreak;のインデントってたまに悩むけどどうしてますか? 俺はcaseからインデントつけて位置に書いてるけど そうすると最後でインデントが2つ一気になくなってしまう違和感がある >>608 みたいに書くとcase処理内な感じがしない違和感
613 名前:nobodyさん mailto:sage [2009/10/24(土) 23:34:28 ID:???] >>612 その書き込みエスケープされただけだお case $a: break; が多いけどおれも結構曖昧だ
614 名前:nobodyさん mailto:sage [2009/10/24(土) 23:35:29 ID:???] 逆だ case $a: break;
615 名前:nobodyさん mailto:sage [2009/10/24(土) 23:41:58 ID:???] switch ($a) { case 0: do_something(); break; case 1: do_something(); break; default: do_something(); break; } どの言語の解説でもたいていこうなってるしこれがスタンダードじゃないかね
616 名前:nobodyさん mailto:sage [2009/10/24(土) 23:42:52 ID:???] 下らねぇ回答はID出さないでここに書き込みやがれ 90
617 名前:nobodyさん mailto:sage [2009/10/25(日) 00:28:25 ID:???] 次スレの季節か
618 名前:nobodyさん mailto:sage [2009/10/25(日) 00:56:35 ID:???] switch文で気になったのでメモ switch('a'){ case 'a'; //末尾が ; } と switch('a'){ case 'a': //末尾が : } は等価
619 名前:nobodyさん [2009/10/25(日) 05:29:05 ID:TWuysydg] $test = " 1c 2c 3c!"; $search = "/([^0-9])([0-9])c([^0-9])/"; $replace = "$1c$2$3"; echo preg_replace($search, $replace, $test); これで、期待する出力は c1 c2 c3! 実際の出力は c1 2c c3! 質問は、 ・なぜこのような動作になるのでしょうか? ・どうすれば解決できるでしょうか? 後、欲しいアイデアとして ・"1c 2c 3c"のように、先頭にスペースを入れなくても"c1 c2 c3"に変える正規表現を教えてほしい (ただし"11c"のような形の場合は変化させないでほしい)
620 名前:nobodyさん mailto:sage [2009/10/25(日) 05:53:15 ID:???] explodeで配列にわけて substrで文字を抜き出したのを結合すえばええ
621 名前:nobodyさん mailto:sage [2009/10/25(日) 10:22:02 ID:???] 認定回答者採用試験は今日までですので頑張って回答してください
622 名前:nobodyさん mailto:sage [2009/10/25(日) 11:14:26 ID:???] >>619 $test = "1c 2c 3c!"; $search = "/([^| ][0-9]{1})c/"; $replace = "c$1";
623 名前:nobodyさん mailto:sage [2009/10/25(日) 13:01:49 ID:???] トリもIDも出さずに試験官気取りとな?
624 名前:nobodyさん mailto:sage [2009/10/25(日) 13:03:49 ID:???] >>623 お前鬱病だろ
625 名前:nobodyさん mailto:sage [2009/10/25(日) 21:45:40 ID:???] phpでシングルトンって意味あるの? リクエスト終わったらメモリ開放されるんでしょ?
626 名前:nobodyさん mailto:sage [2009/10/25(日) 22:19:54 ID:???] 2行目は正解。 1リクエストの中だけでも必要なときはあるさ。
627 名前:nobodyさん [2009/10/25(日) 22:38:37 ID:Ltpwqrvc] mod_rewriteを使ってクリックカウントをとりたいのですが 以下のようにするとcount.phpにリダイレクトできるのですが、 count.phpからLocationで飛ばすとループしているのか404NotFoundになってしまいます。 どうすれば正常にできますか? 例:www.example.com/img/abc01.jpg をクリックしてcount.phpを介してカウント www.example.com/img/abc01.jpgのまま表示する //サーバー側 RewriteEngine on RewriteRule ^/img/abc([0-9]+).(*)$ /img/count.php?id=$1&extension=$2 //count.php側 header("Location: www.example.com/img/abc$id.$extension ");
628 名前:nobodyさん mailto:sage [2009/10/25(日) 22:42:08 ID:???] readfile使えばいいと思うよ
629 名前:627 [2009/10/25(日) 22:54:09 ID:Ltpwqrvc] >>628 やってみましたがだめでした・・・。
630 名前:nobodyさん mailto:sage [2009/10/25(日) 23:07:22 ID:???] count.phpがabc01.jpgを出力するんだぜ。
631 名前:nobodyさん mailto:sage [2009/10/25(日) 23:15:10 ID:???] リライトログ見てみたら?吐いてなかったら吐かせて
632 名前:627 [2009/10/26(月) 00:20:09 ID:8+sjsIrs] >>630-631 アドバイスありがとうございます。 何とか解決できたみたいです。 /img/を物理ディレクトリ、URL表示部分を新規に/img2/として(抽象ディレクトリ) リライトしたらできるようになりました。
633 名前:627 [2009/10/26(月) 00:33:00 ID:8+sjsIrs] >>628 readfileも必要だったみたいです。 ありがとうございました。
634 名前:nobodyさん mailto:sage [2009/10/26(月) 05:27:50 ID:???] 質問させてください。 <html> <body> <?php include("./hoge.php");?> </body> </html> で閲覧に問題はないのですが、 ソースを見ると <html> <body> <html><body></body></html> </body> </html> と2度使われ重複している状態です。 hoge.phpには<html><body></body></html>などの記述はしておりません。 問題の箇所等ご指摘願います。
635 名前:nobodyさん mailto:sage [2009/10/26(月) 05:31:55 ID:???] hoge.phpの中身書くのがいやなら簡略化したもの書いてくれないと それだけではなんともいえない
636 名前:nobodyさん mailto:sage [2009/10/26(月) 05:40:09 ID:???] >>635 ありがとうございます。 hoge.phpの中身はモバイル版AdSenseコードのみです。
637 名前:nobodyさん [2009/10/26(月) 05:48:48 ID:n4efgg6U] 質問です。MagpieRSSを使っています。 日付順に取得記事をソートしたいのですが、うまくいきません。 アドバイスお願いします。 $rssurl = array (); $rssurl[] = "mainichi.pheedo.jp/f/mainichijp_flash "; $rssurl[] = "rss.asahi.com/f/asahi_newsheadlines "; foreach ($rssurl as $pre) { $url = $pre; $rss = fetch_rss($url); $title = $rss->channel['title']; $title = mb_convert_encoding($title, "shift_jis", "auto"); $url = $rss->channel['link']; $rss->items = array_slice($rss->items, 0, 1); foreach ($rss->items as $item ) { $day = date('n/j',strtotime(substr($item['dc']['date'],0,10))); $time = date('H:i',strtotime(substr($item['dc']['date'],11,8))); $date = "$day $time"; $rdf = $item[link]; $article = $item[title]; $article = mb_convert_encoding($article, "shift_jis", "auto"); $linkstr = "$date $rdf $article $url $title<br>\n"; $rssarray["{$date}"] = $linkstr; krsort($rssarray); echo "$linkstr";
638 名前:nobodyさん mailto:sage [2009/10/26(月) 05:52:16 ID:???] >>637 $linkstrは全て想定通りになってるの?
639 名前:nobodyさん [2009/10/26(月) 05:55:31 ID:n4efgg6U] >>638 はい、順序以外は期待通りの実行結果です。
640 名前:nobodyさん mailto:sage [2009/10/26(月) 06:00:30 ID:???] じゃkrsortの問題ですね どんな$linkstrを入れるとどのようなソート結果になるか例を出してもらえますか? ちなみに第二引数にソートフラグを指定して挙動を変えることができる www.php.net/manual/ja/function.sort.php 今回の場合は全て文字列だから関係ないかもしれないけど
641 名前:nobodyさん [2009/10/26(月) 06:09:43 ID:n4efgg6U] RSSの取得を下のようにしたとして $rssurl[] = "mainichi.pheedo.jp/f/mainichijp_flash "; $rssurl[] = "mainichi.jp/rss/etc/mantan.rss "; $rssurl[] = "mainichi.jp/rss/etc/enta.rss "; $rssurl[] = "mainichi.jp/rss/etc/sports.rss "; 10/26 05:00 ■URL ■人事:法務省(26日) ■URL ■毎日jp-ニュース速報(総合) 10/25 21:00 ■URL ■注目アニメ紹介:「空中 ■URL ■毎日jp-まんたんウェブ 10/25 22:14 ■URL ■the GazettE ■URL ■毎日jp-エンタメ 10/25 23:10 ■URL ■横浜:巨人・尾花コーチ ■URL ■毎日jp-スポーツ (長いので削ってます) このような結果が出ます。 日付でソートをかけているつもりですが、まったくされていません。 $rssurl配列の上から順に表示されています。
642 名前:nobodyさん mailto:sage [2009/10/26(月) 06:10:21 ID:???] >>636 echoで文字列を出力してるのか? それともただアドセンス部分のHTMLだけ書いてるのか? 試してみたがhtml bodyタグが加わることはない サーバかPHPの設定かもしれないがどの設定項目かはわからんわ PHP使えるレン鯖が2つ以上あるなら両方で試してみ ローカルに環境作るのが一番いいけど
643 名前:nobodyさん mailto:sage [2009/10/26(月) 06:11:55 ID:???] >日付でソートをかけているつもり 使う関数まちがってるんじゃね? krsortって逆順ソートだよ
644 名前:nobodyさん mailto:sage [2009/10/26(月) 06:15:55 ID:???] 日付だから逆順であってんでねーの?
645 名前:nobodyさん mailto:sage [2009/10/26(月) 06:17:41 ID:???] いやいや ただ単にキーを逆順にするソートってこと ユーザー定義のソートをしたいのならusort()とかじゃないと
646 名前:nobodyさん [2009/10/26(月) 06:18:06 ID:n4efgg6U] $rssurl[] = "mainichi.jp/rss/etc/mantan.rss "; //まんたんウェブ $rssurl[] = "mainichi.jp/rss/etc/enta.rss "; //エンタメ $rssurl[] = "mainichi.pheedo.jp/f/mainichijp_flash "; //ニュース速報(総合) $rssurl[] = "mainichi.jp/rss/etc/sports.rss "; //スポーツ 10/25 21:00 ■URL ■注目アニメ紹 ■URL ■毎日jp-まんたんウェブ 10/25 22:14 ■URL ■the GazettE ■URL ■毎日jp-エンタメ 10/26 05:00 ■URL ■人事:法務省( ■URL ■毎日jp-ニュース速報(総合) 10/25 23:10 ■URL ■横浜:巨人・尾 ■URL ■毎日jp-スポーツ 例がわかりにくかったので書き直しました。
647 名前:645 mailto:sage [2009/10/26(月) 06:19:49 ID:???] あ、ごめん。 よくよんでなかったw >日付でソートをかけているつもりですが、まったくされていません。 ってかいてたからてっきり データ見る限りだとkrsortでよさそうだね
648 名前:645 mailto:sage [2009/10/26(月) 06:20:38 ID:???] とか書いた瞬間にデータの日付ルールが変わった件
649 名前:nobodyさん [2009/10/26(月) 06:22:04 ID:n4efgg6U] usortにしたらエラーがでました。 Warning: Wrong parameter count for usort() in C:\WWW\php.php on line 30 >>648 26日が真上だと日付でソートされているように見えたので… 配列順に表示されるだけでソート機能が働いていないというのが今回の悩みです。。。
650 名前:nobodyさん mailto:sage [2009/10/26(月) 06:25:26 ID:???] >usortにしたらエラーがでました。 マニュアルみようぜ www.php.net/manual/ja/function.usort.php krsort($rssarray);を usort($rssarray);にかえただけじゃだめ 第2引数入れないと
651 名前:nobodyさん mailto:sage [2009/10/26(月) 06:26:20 ID:???] それぞれどんな$linkstrなの?
652 名前:nobodyさん [2009/10/26(月) 06:34:30 ID:n4efgg6U] >>650 すいません、ありがとうございます。 試している最中ですが、cmpの設定に少し時間がかかりそうなので結果が遅れます。 >>651 $day 記事の更新日 $time 記事の更新時間 $date 上記二つを合わせた文字列 $rdf 記事のURL $article 記事のタイトル $url 配信元のURL $title 配信元のタイトル です。
653 名前:nobodyさん mailto:sage [2009/10/26(月) 06:41:45 ID:???] >>652 ごめん、krsortに$linkstr関係なかったね $array = array('10/25 21:00'=>1,'10/25 22:14'=>2,'10/26 05:00'=>3,'10/25 23:10'=>4); var_dump($array); krsort($array); var_dump($array); array(4) { ["10/25 21:00"]=> int(1) ["10/25 22:14"]=> int(2) ["10/26 05:00"]=> int(3) ["10/25 23:10"]=> int(4) } array(4) { ["10/26 05:00"]=> int(3) ["10/25 23:10"]=> int(4) ["10/25 22:14"]=> int(2) ["10/25 21:00"]=> int(1) } こちらで試してみたら想定どおりにソートされてる気がするけども
654 名前:nobodyさん mailto:sage [2009/10/26(月) 06:43:43 ID:???] usortの$aの部分を日付をunixタイムに変えたものいれればそのまま使えるんじゃね $a部分を連想配列にしてキーを$rssarrayのキーと一致させておけば簡単 比較は値のunixタイムにしたものを比較する感じで マニュアルの例そのまま使うならrsort()にしたほうがいいと注意書きに書いてるから まずはusortで形をつくってからパフォーマンスのためにrsortで書き直してみては?
655 名前:645 mailto:sage [2009/10/26(月) 06:48:17 ID:???] なんか話をややこしくしてすまんかった krsortの使い方を勘違いしてたようだ >>653 でよさそう
656 名前:nobodyさん mailto:sage [2009/10/26(月) 06:50:28 ID:???] オマエラ馬鹿じゃね? $rssarrayをソートかけてんのに$linkstr表示してっからだろ
657 名前:nobodyさん mailto:sage [2009/10/26(月) 06:50:51 ID:???] >>637 krsort($rssarray); echo "$linkstr"; froeachの終わりがどこかわからんけど、echo結果を見ているなら$rss->itemsの順番に表示されてるんじゃ? $rssarrayに入れたいものを全部入れてからkrsortしてprint_r($rssarray)で確認してみたらどうかな
658 名前:nobodyさん [2009/10/26(月) 06:56:25 ID:n4efgg6U] >>653 phpは昨日触ったばかりなのでじっくり参考にさせて頂きます。 >>654 >>655 助言を求めたのは私なのでハマりから抜け出すためのしっかり参考にさせて頂きます。 >>656 >>657 やっと原因が究明出来ました。 表示がまだ思い通りにいかないので試行錯誤してみます。
659 名前:nobodyさん [2009/10/26(月) 07:00:40 ID:n4efgg6U] foreachを閉じた後 krsort($rssarray); for(reset($rssarray); $i=i($rssarray); next($rssarray)){ echo "$rssarray[$i]"; $count++; if($count == 4){ break; } } これでしっかりと表示出来ました。 原因はkrsort($rssarray);をforeachの中に入れていたことと $linkstrを表示していたことです。 皆様ありがとうございました!
660 名前:nobodyさん mailto:sage [2009/10/26(月) 07:01:41 ID:???] echo "$linkstr"; の行は単にデバッグのためループの中で出力を確認しているだけで 当然そのあとにテーブルか何かで一覧を表示して、正しくソートされてないと言ってるもんだと思ってた。 $linkstrはkrsortどころか$rssarrayとも関係ない。foreachの順で表示されるだけじゃん。
661 名前:nobodyさん mailto:sage [2009/10/26(月) 07:07:28 ID:???] 終わった後に言っても仕方ねぇだろ無能。 オマエラ馬鹿すぎ。
662 名前:nobodyさん mailto:sage [2009/10/26(月) 07:23:29 ID:???] 煽るのすきだね リアルでどういうやつなのかぜひ見てみたいわ
663 名前:nobodyさん mailto:sage [2009/10/26(月) 07:36:34 ID:???] >>662 的外れな回答する奴よりはマトモだよ
664 名前:nobodyさん mailto:sage [2009/10/26(月) 10:20:50 ID:???] それはない
665 名前:nobodyさん mailto:sage [2009/10/26(月) 10:41:51 ID:???] クッキーにパスワード保存するのはあれだよね。次回から自動でログインとかどうすればいいんだろう
666 名前:nobodyさん mailto:sage [2009/10/26(月) 10:50:47 ID:???] >>665 >>!
667 名前:nobodyさん mailto:sage [2009/10/26(月) 10:58:01 ID:???] >>665 何かユニークIDを発行してそれを保存
668 名前:nobodyさん mailto:sage [2009/10/26(月) 11:15:48 ID:???] >>665 なにか問題でも?
669 名前:nobodyさん mailto:sage [2009/10/26(月) 11:27:59 ID:???] 他人の端末のクッキーコピって来たら、 俺が自動ログインで、そいつの振りして利用できる?
670 名前:nobodyさん mailto:sage [2009/10/26(月) 11:33:33 ID:???] できるよ
671 名前:nobodyさん mailto:sage [2009/10/26(月) 11:34:10 ID:???] そもそも他人に簡単に起動を許す、または誰でも簡単に利用できるようなPCのセキュリティに問題アリ
672 名前:nobodyさん mailto:sage [2009/10/26(月) 11:44:57 ID:???] パスワードだけは暗号化すれば良さそうだね
673 名前:nobodyさん mailto:sage [2009/10/26(月) 11:49:41 ID:???] 暗号化が簡単ならね
674 名前:nobodyさん mailto:sage [2009/10/26(月) 11:54:38 ID:???] クッキーなんか暗号化必要ないんじゃない? >>673 暗号化なんて簡単じゃん
675 名前:nobodyさん mailto:sage [2009/10/26(月) 11:57:30 ID:???] 簡単ならおk
676 名前:nobodyさん mailto:sage [2009/10/26(月) 12:18:54 ID:???] そもそもクッキーコピーできるような状況なら、そのPCで他人がブラウザ使ってもログイン可能って ことだしなあ。
677 名前:nobodyさん mailto:sage [2009/10/26(月) 12:30:15 ID:???] そもそも自動ログインなんて許すのは金の絡まないサイトとか 個人情報があまり意味ないサイトとかだよね。 ひまわり動画とか
678 名前:nobodyさん mailto:sage [2009/10/26(月) 16:44:56 ID:???] >>677 そういう問題か? 糞だな^^;
679 名前:nobodyさん [2009/10/26(月) 17:53:40 ID:+hgb+ZZq] 一応>>1 にMySQL等は別スレとありますが、php+MySQLに対してのスレがなかったので、此方で宜しかったでしょうか? スレチでしたら誘導お願いします。 Sample.phpへ、buttonを配置し、JavaScriptでメソッドを定義。 function A1(){ if(confirm('ごまだれですか?')){ <?php mysql_query("begin"); mysql_query("update `gomagoma` set `syurui` = 'くろごま' where `syurui` = 'alpha'") or die(mysql_error()); mysql_query("commit"); mysql_query("begin"); mysql_query("update `gomagoma` set `syurui` = 'しろごま' where `syurui` = 'beta'") or die(mysql_error()); mysql_query("commit"); mysql_query("begin"); mysql_query("update `gomagoma` set `syurui` = 'ごまふあざらあし' where `syurui` = 'hex'") or die(mysql_error()); mysql_query("commit"); ?> window.alert('内容を変更しました。') } } としていますが、DBを覗いてみたところ、アップデートされていませんでした。 ですが、MysqlErrorは返ってきておらず、そのままJavaScriptで記述したalertが実行されます。 原因を現在当たっていますが、何か思い当たる点がありましたらご指摘お願いします。
680 名前:nobodyさん mailto:sage [2009/10/26(月) 18:00:11 ID:???] >>678 677じゃないけど、そんなもんだと思うぞ 大して重要でもないのに何を気にする事あるんだ? そんなに気になるなら自動ログインなんてしなきゃいいだけじゃないか
681 名前:nobodyさん mailto:sage [2009/10/26(月) 18:08:17 ID:???] >>679 サーバサイドとクライアントサイドがごっちゃになってないか? 「function A1()」ってのはjavascript側で定義している関数だろ? その中のphp(mysql_query)は、button押下に関係無くそのページロードしたら実行されるぞ? ブラウザのソース見てみなよ。
682 名前:nobodyさん mailto:sage [2009/10/26(月) 18:09:49 ID:???] >>679 そのHOSTからmysqlで同じSQLを手で入れるとどうなるよ トランザクションの使い方も間違ってる
683 名前:nobodyさん mailto:sage [2009/10/26(月) 18:17:35 ID:???] >>679 PHPの中身はともかくとしても、 PHP部が実行されて、DBが書き換えられるなどした後、 出力などがなければ<?php から ?>までが無くなったテキストが、 ヘッダなどがついてブラウザに渡され、それからjavascriptが動くので、 ブラウザがうけとるのは function A1(){ if(confirm('ごまだれですか?')){ } } になります。
684 名前:nobodyさん mailto:sage [2009/10/26(月) 19:14:03 ID:???] function A1(){ if(confirm('ごまだれですか?')){ window.alert('内容を変更しました。') } } 抜けてた
685 名前:nobodyさん mailto:sage [2009/10/26(月) 21:38:32 ID:???] >>683 で答えでてるじゃん
686 名前:nobodyさん mailto:sage [2009/10/26(月) 22:16:19 ID:???] 初心者相手に悪いけど、これは吹いたww>>679
687 名前:nobodyさん mailto:sage [2009/10/26(月) 22:27:35 ID:???] mysqlの問題と思ってる時点でアレだな
688 名前:nobodyさん mailto:sage [2009/10/26(月) 23:39:47 ID:???] 「ごまふあざらあし」が気になってプログラムが進みません!
689 名前:nobodyさん mailto:sage [2009/10/27(火) 00:54:28 ID:???] クライアントへhtmlを送る時に、ボタンと、押した時にサーバーサイドで実行する クエリを書いておく事が出来る。 というフレームワークのアイデアを頂きました。 クレームワームの名前は「ごまふあざらあし」にしようと思います。
690 名前:nobodyさん mailto:sage [2009/10/27(火) 10:58:21 ID:???] ごまだれですか?
691 名前:nobodyさん mailto:sage [2009/10/27(火) 11:16:23 ID:???] いえ、「ごまふあざらあし」です
692 名前:nobodyさん mailto:sage [2009/10/27(火) 11:34:04 ID:???] いっそPHPonJavascript HTTP通信で。
693 名前:nobodyさん mailto:sage [2009/10/27(火) 11:44:23 ID:???] PHP側で実行する内容が、htmlソースから丸見えになるんで良くないなw
694 名前:nobodyさん mailto:sage [2009/10/27(火) 15:59:34 ID:???] >>693 SQLをクライアントで構築して送信する前システムを思い出した 最悪だな
695 名前:nobodyさん mailto:sage [2009/10/27(火) 19:25:48 ID:???] "name":"名無し","body":"あいうえお" このように書かれたテキストファイルから「名無し」「あいうえお」を取得する方法は 正規表現でひとつずつ抜き出すほかにありますか?
696 名前:nobodyさん mailto:sage [2009/10/27(火) 19:26:58 ID:???] >>695 explode
697 名前:nobodyさん mailto:sage [2009/10/27(火) 19:33:13 ID:???] >>696 できました! ありがとうございます
698 名前:nobodyさん [2009/10/27(火) 19:39:41 ID:73GIvY2U] サーバ変数のQUERY_STRINGのPOST版を取得したいのですがどのようにしたら取れますか? また、上で取得した文字列を$_POSTのような配列形式に変換したいのですが、そのような関数はありますか?
699 名前:nobodyさん mailto:sage [2009/10/27(火) 19:44:58 ID:???] 意味が分からん $_REQUEST
700 名前:nobodyさん mailto:sage [2009/10/27(火) 19:59:04 ID:???] >>698 何もしなくても良いのではないだろうか。
701 名前:nobodyさん mailto:sage [2009/10/27(火) 19:59:55 ID:???] >>698 POSTされた生のデータが欲しいって事かい? parse_str(file_get_contents('php://input'), $f); var_dump($f);
702 名前:nobodyさん mailto:sage [2009/10/27(火) 21:21:52 ID:???] fopen("php://memory", "r+"); すげえ
703 名前:698 mailto:sage [2009/10/27(火) 21:41:14 ID:???] >>701 すばらしい。ありがとうございます。
704 名前:nobodyさん [2009/10/28(水) 01:05:41 ID:EMbPGL3Y] simplexmlについての質問です。 simplexml_load_fileで読みこんだObjectから $q = $_GET["q"]; echo $xml->item[$q]->name; としたいのですが、何も表示されません。 echo $xml->item[0]->name; だと正しく表示され $q = 0; echo $xml->item[$q]->name; でも正しく表示されます。 $q = $_GET["q"]; echo $q; echo $xml->item[$q]->name; とした場合は、$qだけが表示されました。 simplexmlでは$_GETが使えないのでしょうか? 解決策をお教えいただきたいです。
705 名前:nobodyさん mailto:sage [2009/10/28(水) 01:09:43 ID:???] >>704 $qの中身の問題だろそれは
706 名前:nobodyさん [2009/10/28(水) 01:12:57 ID:EMbPGL3Y] >>705 ありがとうございます! $q = $_GET["q"]+1-1; と試してみるとうまくいきました。 ホントにお恥ずかしい限りです・・・
707 名前:nobodyさん mailto:sage [2009/10/28(水) 01:16:08 ID:???] 型違うと検索してくれないんだ?
708 名前:nobodyさん mailto:sage [2009/10/28(水) 01:17:19 ID:???] $q = (int)$_GET["q"]; でおk
709 名前:nobodyさん mailto:sage [2009/10/28(水) 01:18:34 ID:???] includeって必要なときにだけ呼び出したほうがいいの? 負荷とかそんなに変わらないのならクラス定義をまとめて最初に読み込んだほうがらくだよね。。。
710 名前:nobodyさん mailto:sage [2009/10/28(水) 01:20:18 ID:???] えっ
711 名前:nobodyさん mailto:sage [2009/10/28(水) 01:27:19 ID:???] >>709 >>1
712 名前:nobodyさん mailto:sage [2009/10/28(水) 02:52:06 ID:???] Javaのimportのようなもんだと思ってるんだろう ただJavaの場合コンパイラが最適化してくれるので問題ないが PHPはインタプリタなので最適化のしようがないという つまり全部includeなんてしたらそりゃ遅くなる
713 名前:nobodyさん mailto:sage [2009/10/28(水) 05:46:33 ID:???] >>712 なるほど、ありがとう。必要なときにincludeしたほうが良いってことね
714 名前:nobodyさん mailto:sage [2009/10/28(水) 09:18:20 ID:???] >>695-697 文字列中に,も出てくるかもしれないから json_decode()を使ったほうがよくない?
715 名前:nobodyさん [2009/10/28(水) 10:42:00 ID:v0axKvNX] セッションの開始をつげるsession_start()って セッションを使用する場合は必ずつけなければならないのですよね? これを記述するのはMVCモデルだとVの部分に記述するのであってますでしょうか?
716 名前:nobodyさん mailto:sage [2009/10/28(水) 10:43:21 ID:???] コントロールじゃね?
717 名前:716 mailto:sage [2009/10/28(水) 10:45:50 ID:???] コントロールですか? ありがとうございます 早速組み方を考えて見ます
718 名前:nobodyさん mailto:sage [2009/10/28(水) 10:47:23 ID:???] bootstrapだろ
719 名前:679 [2009/10/28(水) 14:53:16 ID:op4mA5/p] 返答遅くなりました。 そうか・・・表示されてる時には既にHTMLとして返ってきてるんですよね。 この場合は、dbedit.phpのようなものを別途つくり <?php include("dbedit.php"); A1(); ?> という風にすればいいのかな? しかし、この場合でも、A1だけではなく、A2,A3と続く様であれば それの振り分けはどう実装したらいいでしょうか? ご意見や、実装例等がありましたら、ご教示よろしくお願い致します。
720 名前:nobodyさん mailto:sage [2009/10/28(水) 15:23:46 ID:???] >>719 まずjavascriptなしでやることを考えてみ。
721 名前:nobodyさん mailto:sage [2009/10/28(水) 15:30:07 ID:???] ちょっと答え方まちがったかな。 まずそのA1, A2, A3でなにをするのか書かないと。あと関数ってわかってる?振り分けってどういうことするの?
722 名前:nobodyさん mailto:sage [2009/10/28(水) 15:43:14 ID:???] >>719 A1()って>>679 を見る限りJavaScriptのfunctionだろ? 呼べるわけがないw >>720 の通りにまずJavaScriptなしで動くようにしてみたら? サーバー側でpostされた内容によってSQL発行するだけだよ
723 名前:nobodyさん mailto:sage [2009/10/28(水) 18:25:52 ID:???] >>679 はもう諦めてこれプログラムできる人にやってもらったほうが世のため人のため>>679 のためと思うのはおれだけか?
724 名前:nobodyさん mailto:sage [2009/10/28(水) 18:34:44 ID:???] いきなりいろいろ手をつけすぎだな javascript無し、DB無しでPHPだけでいろいろ慣れるのが先だな
725 名前:nobodyさん mailto:sage [2009/10/28(水) 18:35:06 ID:???] A1()で「くろごま」 A2()で「しろごま」 A3()で「ごまふあざらあし」 を処理する気まんまんの>>679 にWeb100.0
726 名前:nobodyさん mailto:sage [2009/10/28(水) 23:02:06 ID:???] >>679 歳幾つ?
727 名前:nobodyさん mailto:sage [2009/10/29(木) 00:12:37 ID:???] phpとmysqlを同時に説明してる本とか売ってるし それ見た方がいいよね それと同時にプログラミングの概念について解説してる本を読んだ方がいいのかも 概念が足りてない
728 名前:nobodyさん mailto:sage [2009/10/29(木) 03:46:52 ID:???] test
729 名前:nobodyさん [2009/10/29(木) 09:54:12 ID:xBLZE2eU] 【OS】cent 【バージョン】php5.2.10 SimpleXMLElementに関する質問です。 mlから特定の属性を持った要素を削除するにはどうすれば良いのでしょうか? 例を挙げると、 『sample.xml』 <?xml version="1.0" encoding="UTF-8" ?> <library> <book id="00001"> <title>aaa</title> <author>Emily</author> </book> <book id="00002"> <title>bbb</title> <author>John</author> </book> <book id="00003"> <title>ccc</title> <author>Mike</author> </book> </library> とした場合、idが「00002」の要素を削除するという感じです。 --続く--
730 名前:729 [2009/10/29(木) 09:56:09 ID:xBLZE2eU] --続き-- いろいろ調べたところ、 $xml = new SimpleXMLElement('sample.xml', null, true); unset($xml->book[0]); で削除は出来るのようですが、配列で何番目という指定ではなくid「00002」の要素を指定して削除し、 <?xml version="1.0" encoding="UTF-8" ?> <library> <book id="00001"> <title>aaa</title> <author>Emily</author> </book> <book id="00003"> <title>ccc</title> <author>Mike</author> </book> </library> となる事が目的です。 どうぞよろしくお願いします。
731 名前:nobodyさん mailto:sage [2009/10/29(木) 12:08:53 ID:???] >>730 foreachで出来た方いたら教えてください。 $xml = new SimpleXMLElement('sample.xml', null, true); for ( $i = 0 ; $i < count($xml->book);$i++) { if ( $xml->book[$i]["id"] == " 00002") { unset( $xml->book[$i] ); } } echo $xml->asXML();
732 名前:729 mailto:sage [2009/10/29(木) 23:49:16 ID:???] >>731 出来ました! どうもありがとうございます。 確かにforeachだと更に良いかも知れませんね。でも感謝です。
733 名前:nobodyさん [2009/10/30(金) 06:12:51 ID:5l/tuOOs] 以下のようなメールアドレスのうち「@の前部分」を、文字数分だけ*に置換したいのです。 taro@example.com これだと4文字決め打ちになってしまいます。 preg_replace('/[a-z0-9\.\-\_]+@/i', '****@', $text); いまのところシンプルに書ける方法で思いつくのは、 長い文字数から順に置換していく方法です。 forなど使えばシンプルには書けそうです。 preg_replace('/[a-z0-9\.\-\_]{10}@/i', '**********@', $text); preg_replace('/[a-z0-9\.\-\_]{9}@/i', '*********@', $text); ... でも美しい方法とは思えません。 定石、または美しい方法はありますか?
734 名前:nobodyさん mailto:sage [2009/10/30(金) 08:26:53 ID:???] >>733 たとえば $text = "taro@example.com"; echo preg_replace('/([a-z0-9\.\-\_]+)@/ie', "str_repeat('*',strlen('$1')) . '@'", $text);
735 名前:nobodyさん mailto:sage [2009/10/30(金) 10:41:53 ID:???] 例えば $text = "taro@example.com"; $array = explode('@', $text); echo str_repeat('*',strlen($array[0])) . '@' . $array[1];
736 名前:nobodyさん mailto:sage [2009/10/30(金) 16:17:27 ID:???] 例えば $text='taro@example.com'; echo str_repeat('*', strpos($text,'@')).strstr($text,'@');
737 名前:nobodyさん [2009/10/30(金) 17:16:58 ID:5l/tuOOs] >>734-736 ありがとうございます。e修飾子とかはじめて認識しました。 Yahoo!グループの過去ログのように「メール本文中の署名などの個人情報を隠匿」が目的なので、 >>734 の方法で行かせていただこうと思います(目的を書いとくべきでしたごめんなさい)。 精進します。
738 名前:nobodyさん [2009/10/30(金) 20:21:02 ID:k7DoHVtB] 2chの大量規制があったとかのせいか、ここも勢いがないね phpのソースコードそのものを取り込んで そのコードを解析する みたいな手段ってありませんか?
739 名前:nobodyさん mailto:sage [2009/10/30(金) 20:25:31 ID:???] どう解析するの? 単に構文解析だったら、PHPでPHP用のレキシカルアナライザとパーサ作ればいいんだけど、 それだけやったって面白くないよね、手間なだけで。 何をしたいのかが良く分からん。
740 名前:nobodyさん [2009/10/30(金) 22:48:05 ID:pyIKqVVx] class test { private $ar,$tes; public function __construct() { $this->ar = array('tes'); (ここで 変数 $this->($this->ar[0]) この場合 $this->tes に何らかの値を代入したい) echo $this->tes; } } $this-> に続く変数名を変数の値で表す方法はありますか? 宜しくお願いします。
741 名前:nobodyさん mailto:sage [2009/10/30(金) 22:52:15 ID:???] 日本語で
742 名前:nobodyさん [2009/10/30(金) 23:25:37 ID:pyIKqVVx] 上のコードで$this->tesに、例えば"b"を代入したいとき、 $this->tes = "b"; と書くのではなく、tesの部分に、"tes"が代入された変数を使いたいのです。
743 名前:nobodyさん mailto:sage [2009/10/31(土) 00:17:51 ID:???] $var = 'tes'; echo $this->$var; こんな感じで
744 名前:nobodyさん mailto:sage [2009/10/31(土) 00:38:36 ID:???] >738 runkit jp2.php.net/manual/ja/book.runkit.php
745 名前:nobodyさん mailto:sage [2009/10/31(土) 07:26:05 ID:???] >>743 ああ、一回代入すればいいのですね 思いつきませんでした。ありがとうございます!
746 名前:nobodyさん [2009/10/31(土) 09:17:44 ID:5b/pi/nw] 質問です。 アップローダー作る時にテンポラリのディレクトリから保存用のディレクトリに ファイルをcopy → もとのテンポラリファイル削除 って流れがあり、 if(copy($tmpFile, $lastFile)){unlink($tmpFile);} という感じの処理をすると思います。 しかし条件部分がtrueにならないとき、どうしたら良いんでしょうか? 「コピー失敗しました」みたいなアラート表示すべき? そんなことやってますか? そもそも、上のif文でのチェックは必要なんでしょうか… 条件成立・不成立をどこまでフォローすべきか悩んでいます。
747 名前:nobodyさん mailto:sage [2009/10/31(土) 15:10:42 ID:???] move_uploaded_file 使った方がええんじゃないか?
748 名前:nobodyさん mailto:sage [2009/10/31(土) 15:13:55 ID:???] コピーするのがそのサイト内部処理として必須であるなら(まあそうだろうけど)、 それに失敗したらアップロード処理失敗のエラー返すしかなかろ。
749 名前:nobodyさん mailto:sage [2009/10/31(土) 15:30:20 ID:???] エラーが発生したときに可能な限り元の状態に戻す設計にした方が良いな コピー失敗したらそのファイルを削除してメッセージを表示&エラーログを残すとか
750 名前:nobodyさん mailto:sage [2009/11/01(日) 23:38:51 ID:???] >>740 $this->{$this->ar[0]} = "何らかの値";
751 名前:nobodyさん [2009/11/02(月) 18:13:40 ID:uSMOoO6C] 画像とhtmlを同一のファイルにしたいんですが、 phpでmhtmlを出力するほうほうはありませんか?
752 名前:nobodyさん mailto:sage [2009/11/02(月) 18:43:28 ID:???] >>751 OSは?
753 名前:nobodyさん mailto:sage [2009/11/02(月) 18:58:04 ID:???] >>751 www.hedgerwow.com/360/dhtml/base64-image/demo.php
754 名前:751 mailto:sage [2009/11/02(月) 18:58:15 ID:???] >>752 Linuxです。サーバーの設定も自由に変更できます。
755 名前:751 mailto:sage [2009/11/02(月) 19:01:23 ID:???] >>253 ありがとう。
756 名前:nobodyさん [2009/11/03(火) 00:57:00 ID:OxH3Rb8V] 質問です、 PHPの言語仕様として確認したいのですが、 1リクエストごとにstaticメソッドであろうが毎回PHPのリソースをメモリに読み込んで、 レスポンスを返した時点でメモリ破棄する。 そのため、複数のリクエスト間での共有ができず、たとえばDBのコネクションプール などという考え方は基本ない。であっていますか?
757 名前:nobodyさん mailto:sage [2009/11/03(火) 02:25:30 ID:???] 言語仕様(標準ライブラリ)の範疇で言えば、そう。 たいていの言語は、別々に起動された、親子関係 でないプロセス間でソケットを共有する方法は、 言語仕様にはないと思う。
758 名前:nobodyさん mailto:sage [2009/11/03(火) 05:32:26 ID:???] 関係ない質問してごめん。 SpeedyCGIみたいな常駐プログラムを使ったらDBコネクション繋ぎっぱなしできるよね? それをphpから呼び出したら、プログラム呼び出しののオーバーヘッドとDB接続のオーバーヘッド天秤にしても常駐の方が早い希ガスだけどどうなの? あと、phpでSpeedyCGIみたいシステムないの?
759 名前:nobodyさん mailto:sage [2009/11/03(火) 10:19:58 ID:???] DBコネクションプールといえばpgpoolとかあるけど。 MySQLならSQLrelayとか。
760 名前:nobodyさん mailto:sage [2009/11/03(火) 10:39:36 ID:???] phpはモジュールで動かしてる場合が多いから・・・
761 名前:nobodyさん [2009/11/03(火) 21:21:41 ID:ppv8Lxeq] ちょっと質問。 wikipediaで携帯のIPアドレス一覧があって、それを元にアクセスした人のIPが携帯なら携帯用のページに飛ばすのをPHPで以前に作ったんだけど 知らない間に携帯用のIPアドレスが増えてるみたいで、修正しようかと思うんだけど、結局イタチごっこだから シンプルにユーザーエージェントで分別しようかと思うけどそれだとPCで偽装もできるので ちゃんと的確に分けられる方法教えて。
762 名前:nobodyさん mailto:sage [2009/11/03(火) 21:23:10 ID:???] 携帯依存文字でYES・NOでもやってろ
763 名前:nobodyさん mailto:sage [2009/11/03(火) 21:34:29 ID:???] わざわざUA偽装してアクセスするのは携帯用ページが見たいからでしょ だから普通にUAで振り分ければいいとおもうが
764 名前:nobodyさん mailto:sage [2009/11/03(火) 21:38:57 ID:???] >>761 ケイタイ用のIPを常に更新して、IPでキャリアを判別するサイトのサービスを始めるのだ!
765 名前:nobodyさん [2009/11/03(火) 23:00:04 ID:Hf2P9qWB] phpのApacheの設定が全くできません!Vistaです。本に書いてある通りにしても、ブラウザに乗せるとダウンロードダイアログが出ます 助けてください
766 名前:nobodyさん [2009/11/03(火) 23:08:14 ID:ppv8Lxeq] 確かに携帯用のページが見たくて偽装するんだろうし、別に携帯用ページをPCで見られて困ることはないよ。 だけど、UAの文字列の一部で携帯かPCかを判断すると、今後携帯キャリアがUAの仕様を変えた時に、 携帯だかPCだか判断できずに、携帯なのにPC用ページを表示してサイズでかすぎて表示できないとかだと最悪でしょ。 妥協してユーザーエージェントでやるとするといくつあるの? ドコモ、au、ソフトバンク、ボーダフォン、J-PHONE、あと何? ウィルコムとかイーモバイルとかも固有のUAあるの?ディズニーモバイルは?あとiフォンもある?
767 名前:nobodyさん mailto:sage [2009/11/03(火) 23:42:05 ID:???] 俺はIPでやってるけど、ホスト名でもいいんじゃないの振り分け
768 名前:nobodyさん mailto:sage [2009/11/03(火) 23:44:16 ID:???] PEAR::Net_UserAgent_Mobileは?
769 名前:nobodyさん mailto:sage [2009/11/04(水) 04:13:04 ID:???] >>759 トンクス。 でも SQLRelay いれたら遅くなったって意見が多くてちょっとガッカリ
770 名前:679 mailto:sage [2009/11/04(水) 09:18:30 ID:???] 規制ががが >>720 ・・・申し訳ない。 以前あったレスからJavascriptは使わないと決めて 元々記述したJsコードを全部削除してPHPに実装しなおしていましたが 報告忘れてました >>721 A1とかA2とかは、それぞれupdateでsetする内容が違うだけ。 むしろコレなら変数で勝手に変わる様にしたほうがいいのかもしれないですが・・。 >>722 一応削除はしてます。 >>723 諦めたらそこで終わりじゃないですか?? >>724 はい。実はJavaはやっていたのですが どうもHTMLやらJavascriptやらPHPやらとくると・・どうにも
771 名前:679 mailto:sage [2009/11/04(水) 09:19:55 ID:???] >>726 まだまだ若いですよ。上司には当然教えてくださる方もいないので独学になりますが。 いかんせん会社が大きく無いのでしょうがないです。 >>727 本・・ですねえ。 でも今月はCiscoの本やらいっぱい買ってしもたorz 経費で落ちそうなら考えてみます。 今のところ一応Formタグを追加し、typeをSubmitにして飛ばすようにしてます。 次のphpでname属性から拾ってきたものを取り上げ、PHP側のif分岐等でのマッチング査定をしつつ その先で上書き処理、という流れで、やっていくつもりです。
772 名前:nobodyさん mailto:sage [2009/11/04(水) 09:50:46 ID:???] >>765 それ、Apacheの問題であってPHPのじゃないじゃん。 <httpd.conf> AddType application/x-httpd-php .php PHPIniDir [PHP.iniのあるディレクトリ] LoadModule php5_module [php?apache*.dllへのフルパス] 書いたらApacheの再起動。
773 名前:nobodyさん [2009/11/04(水) 13:15:10 ID:+cyJ/kJv] あのさぁ、まずはちょっと聞いてくれ。 ドキュメントルート(サイトのルート)の中の一つのフォルダを完全にPHP使えないようにしたい。 そうしないとそこがアップロード用のファイル保存フォルダになっているので PHPのファイルをアップされブラウザでファイルをアクセスされると危険。unlink()とかされたら完全に終わる。 かと言ってアップ時に、拡張子が.phpのファイルをはじくとかだとそれも困るし、そのファイルの内容をチェックするのも大変。 .htaccessファイルに、拡張子.phpは.htmlとするように書いてもいいけど.php5とかPHPとして動く拡張子が他にもあるから対処しきれない。 で、特定のフォルダにだけPHPを使わせない機能ないの? もしくはアパッチでドキュメントルート以外のフォルダを作り、 C:/root_A(PHP可能) C:/root_B(PHP不可) として http://ドメイン/root_B以下にアクセスがあった時はC:/root_B/index.htmlを表示させるとかできないかな? バーチャルホストじゃなくドメイン同じで二つのルートを使い分けるって事。
774 名前:nobodyさん [2009/11/04(水) 13:18:32 ID:+cyJ/kJv] 今書いててふと疑問に思ったんだけど、レンタルサーバーって複数の人が使ってて 同じドライブに複数の人のルートがあると思うけど他人のファイルをunlink()したりできないのは何で?
775 名前:nobodyさん mailto:sage [2009/11/04(水) 13:22:13 ID:???] FOR($i=0;;$i++){ PRINT 'マンコ'; } 初めて作ったプログラムがこれ。
776 名前:nobodyさん mailto:sage [2009/11/04(水) 13:26:07 ID:???] >>773 apacheのDirectory設定でできるよ
777 名前:nobodyさん mailto:sage [2009/11/04(水) 13:31:39 ID:???] >>774 一つはパーミッション。 削除権限はそのファイルが含まれているディレクトリのパーミッションによるが 777とかしてたら消せる。 でもphpだと全ユーザーが同じ実行ユーザーになる場合もあるので phpのSafeModeを使う。 これは、実行ファイルのオーナー(実行時のユーザーではない)が 他のオーナーのファイルをいじれなくする仕組み。
778 名前:nobodyさん [2009/11/04(水) 16:27:43 ID:+cyJ/kJv] >>776-777 ありがとう。ちょっとググってみるよ。
779 名前:nobodyさん mailto:sage [2009/11/04(水) 17:03:15 ID:???] そういや、拡張子で制御は把握しきれないから・・・とか書いてるけど 基本的にhttpdは拡張子で実行するか決めてるんだから 拡張子で制限すればいいはずだよ。
780 名前:nobodyさん mailto:sage [2009/11/04(水) 17:37:09 ID:???] >>773 phpファイルはアップロード禁止にしたらいいんじゃない? どうしてもアップロードしたい場合はZIPって手もあるし
781 名前:nobodyさん mailto:sage [2009/11/04(水) 18:05:34 ID:???] >>773 Options -ExecCGI -Includes -MultiViews php_flag engine off こんな感じで.htaccessを設定したらCGIとPHPは動かなくなるはず
782 名前:nobodyさん [2009/11/05(木) 02:39:02 ID:bdU2dbgu] example.com/ref/abc というURLでアクセスしたら example.com/ref/index.php?id=abc の結果を返すにはどうしたらいいですか?
783 名前:nobodyさん mailto:sage [2009/11/05(木) 02:43:08 ID:???] mod_rewrite
784 名前:nobodyさん [2009/11/05(木) 02:56:01 ID:bdU2dbgu] >>783 ありがとう
785 名前:nobodyさん mailto:sage [2009/11/05(木) 09:23:02 ID:???] FOR($i=0;;$i++){ PRINT 'パイズリ'; BREAK; } 二番目に作ったプログラムがこれ。
786 名前:nobodyさん mailto:sage [2009/11/05(木) 10:17:21 ID:???] for ($i = 0; i <= 10000; $i++) { print "まんこ\n"; } print 'な? 9999の次でも1に戻るってことは無いだろ?';
787 名前:nobodyさん mailto:sage [2009/11/05(木) 10:31:55 ID:???] あたまおかしい
788 名前:nobodyさん mailto:sage [2009/11/05(木) 12:50:44 ID:???] やっぱり大量規制でいいや。
789 名前:nobodyさん mailto:sage [2009/11/05(木) 13:16:33 ID:???] てst
790 名前:nobodyさん [2009/11/05(木) 15:22:19 ID:17l6YWCO] ユーザー関数は、あちこちのページで使い回すから当然別のファイルにして、その都度インクルードとかするでしょ。 index1.php ↑インクルード user_func.txt ↓インクルード index2.php でもこうなるとindex1.phpにアクセスするということはuser_func.txtにもアクセスする事になるので、鯖に負担がかかる。呼び込むファイルが増えればなおさら。 負荷を無くすにはどうしたらいいでしょうか? 個人的にできたらいいなと思うのは、この様な自作関数もメモリ上に置けるようにしてほしい。 最初に鯖を立ち上げた時に読み込んで後は元々ある関数みたいに使いたい。
791 名前:nobodyさん mailto:sage [2009/11/05(木) 15:33:59 ID:???] >>790 実際、どの程度の負荷がかかってるのさ? 一度user_func.txtが読み込まれれば、2回目からはメモリを見に行くから気にしなくて良いレベルだと思うぞ。
792 名前:nobodyさん [2009/11/05(木) 16:22:18 ID:17l6YWCO] >>791 えっ?そうなの?って事はindex.phpとかも一回読まれたらメモリ見るの? 知らなかった。どの位の負荷がかかってるかはどうやって調べたらいい? 最近サイトを開くと重いんだよね。特に夜。LAN内のPCからでも遅いから回線が原因じゃないかと思うんだけど HDDがあれこれファイルを読んだりして追いついていけないのかもって思って。 CPU仕様率は結構低いんだけど。LANもギガビットLANだし、原因がHDDとしか思えないんです。
793 名前:nobodyさん mailto:sage [2009/11/05(木) 16:39:49 ID:???] >>792 気になるならdataスキーム形式にして埋め込めばいいよ
794 名前:nobodyさん mailto:sage [2009/11/05(木) 16:55:33 ID:???] >>792 普通は一度ファイルを読み込めば、次回はメモリを参照する。 readで毎回必ずHDDを読んでいたら大変な事になるよ。 CPU使用率がわかってて、DISK周りの負荷は調べてない? Linuxならiostatとかで見て見なよ、sarが入ってればそれでもいいし。
795 名前:nobodyさん mailto:sage [2009/11/05(木) 16:59:36 ID:???] >>792 ギガビットは過信しないほうがいい LANカードやHUBがしょぼかったら無意味 転送量が少なくても一度に大量の接続があれば捌ききれなくなる。
796 名前:nobodyさん mailto:sage [2009/11/05(木) 19:35:22 ID:???] >>792 世の中にはキャッシュと言うものがあってだな・・・ てか、HDDからの読み込みが気になるくらいでかいファイルなのか?そのスクリプト。
797 名前:nobodyさん [2009/11/05(木) 20:31:20 ID:17l6YWCO] >>793-795 OSはWindowsなんだけど、とりあえずHDDをSSDとか1万回転のHDDに変えたら速くなりそうな気がするんだよね。 ルータやLANケーブルはそれなりのやつを使ってるけど。 実際商用のサーバーってどうやって負荷計ってるの?そういうフリーソフトないかな? 何を改善すればいいか分からん。 >>796 スクリプトはでかくないよ。ただ動画のダウンロードが多い。これが遅延の原因かも。 あとデータベースとOSのドライブは別のドライブにした方が速い?パーティションじゃなくて完全に個別という意味で。
798 名前:nobodyさん mailto:sage [2009/11/05(木) 23:07:04 ID:???] >>797 流石にスレ違いだろ。 DISKは複数あったほうが速いにきまっとる 書いてるようにOSとDB分けたほうがいい。
799 名前:nobodyさん mailto:sage [2009/11/05(木) 23:39:13 ID:???] >790 PHPのファイルは、OSによってディスクから内容がメモリに読まれた上で、インタプリタによって機械語にコンパイルされ、実行される。 ここまでが基礎知識。 で、まず、今どきのOSはディスクからの読み込みをキャッシュする。 つまり、一度読んだファイルはメモリにそのまま持っておいて、更新がなければ次回以降はそいつを使う。 次に、APCやeアクセラレータといったPHP関連ライブラリを使うと、機械語にコンパイルされたコードを使いまわしてくれるようになる。
800 名前:nobodyさん mailto:sage [2009/11/05(木) 23:55:44 ID:???] >>797 NICかHubが壊れかけてるとか? とりあえず遅延がどの時点で発生しているのか調べないと。 なんかPHPが原因じゃないっぽい感じがする。
801 名前:nobodyさん [2009/11/06(金) 15:02:27 ID:uY82lX0B] Tomcat+Javaで、Javaのローカルページ開くと、コンソール画面に出力できるよね System.out.printlnで あれ、デバッグですごく便利なんだけど、 EclipseでPHPでできないのかな
802 名前:nobodyさん [2009/11/06(金) 15:30:23 ID:+6dsWJpT] GoogleSafeBrowsingで質問です www.madirish.net/?article=245 上記を参考にPostgreSQLで作ってみました。 BL取得→DBに保存→webから利用があったらmd5してdbにSELECT発行 という形で作ってみたのですが、BL取得→DBに保存 ここまで上手くいって294,830件のハッシュがDB内に存在する所までは確認できました ところが実際にwebから本家GoogleSBでBL入りしているようなドメインを送ってもBL判定されません。 どなたかMySQL環境がある方、このソースをまんまで試してみて頂けますでしょうか…。 例として下記 www.google.com/safebrowsing/diagnostic?site=4gameranking.com
803 名前:nobodyさん [2009/11/06(金) 21:29:10 ID:qkr//tmU] 変数に値が入っているか入ってないか調べる時 if(isset($val))かif(!empty($val)) と if($val != "") か if($val <> "") では、どちらの方が処理が速いのでしょうか?
804 名前:nobodyさん mailto:sage [2009/11/06(金) 22:11:01 ID:???] >>803 とりあえず、「empty isset」のキーワードでぐぐってみた方がいいな
805 名前:nobodyさん mailto:sage [2009/11/06(金) 23:17:02 ID:???] >803 Cのコードを読んでみないとなんとも言えないが、もっとも処理の少ないであろうisset()が最速だと思う。 だけど、そんな速度差を気にしないといけないような案件でPHPを使うほうが間違っているので、どうでもいい。
806 名前:nobodyさん [2009/11/06(金) 23:29:19 ID:vBz8RCVv] フレームワークを覚えるのに挫折しました そこでクラスについて勉強したいと思うのですが フレームワークを覚える前にクラスの使い方を覚えると楽になりますか? OOP、デザインパターンを覚えてからフレームワークに入るのが王道でしょうか? プログラミングはPHPが初めてでクラスの基本的なものは分かるのですがクラスだけは敷居が高くて勉強してきませんでした
807 名前:nobodyさん mailto:sage [2009/11/06(金) 23:33:04 ID:???] フレームワークの製作者になるのが目標でなければ フレームワークの使い方だけ学べばいいんじゃないかな。 どこにファイルを置いて、こういう名前にして、どういうAPIがあって・・・みたいな。
808 名前:nobodyさん mailto:sage [2009/11/06(金) 23:34:14 ID:???] クラスなんて書けなくても使えるなら別に困りません。
809 名前:nobodyさん [2009/11/06(金) 23:34:43 ID:vBz8RCVv] class hello_world { private $word = "こんにちは世界さん(^^)"; function view() { return htmlspecialchars($this->word, ENT_QUOTES); } } $obj = new hello_world(); echo $obj->view();
810 名前:nobodyさん [2009/11/06(金) 23:38:43 ID:vBz8RCVv] 借り物のPCなのでデータベースを入れられないのと使い方がわからないのでちいたんは挫折しました cakePHPもなんかドキュメントの通りやりましたがこのファイルにこれを書けという意味が理解できなかったため挫折しました smartyはサンプルみて挫折しました
811 名前:nobodyさん mailto:sage [2009/11/06(金) 23:41:26 ID:???] phpでstaticとかprivateってつかえる?
812 名前:nobodyさん mailto:sage [2009/11/06(金) 23:44:53 ID:???] >>811 >>809 見ろよ
813 名前:nobodyさん mailto:sage [2009/11/06(金) 23:53:40 ID:???] ちいたんは挫折しました
814 名前:nobodyさん [2009/11/06(金) 23:54:01 ID:vBz8RCVv] public protected private が使えます
815 名前:nobodyさん mailto:sage [2009/11/06(金) 23:54:54 ID:???] ちいたんで挫折してたらこの世に使えるFWなくね?w あとSmartyはFWでないしな
816 名前:nobodyさん mailto:sage [2009/11/06(金) 23:59:14 ID:???] symfonyはインストールできましたがドキュメント見ても分からないため挫折しました ZendFrameworkはドキュメントがたくさんあってまだ読んでないです フレームワークって新しい言語を覚えるような感じですね 気合入れないとだめですね
817 名前:816 [2009/11/06(金) 23:59:56 ID:vBz8RCVv] id出し忘れました
818 名前:nobodyさん mailto:sage [2009/11/07(土) 01:02:50 ID:???] 順を追ってステップアップしていくのが一番だよ がんばれ!
819 名前:nobodyさん mailto:sage [2009/11/07(土) 01:04:33 ID:???] ちいたんはコメントないから初心者向きではないよ
820 名前:nobodyさん [2009/11/07(土) 10:59:11 ID:HHoKTIgI] //検索対象 $array = array("inquiry","support"); //検索する文字 $val = "inquiry_form"; // 検索文字が対象に一致するか foreach($array as $item){ if(strstr($val,$item)){ //一致した場合の処理 } } 検索する文字が検索対象に一致するか調べたいと思います。 上のように対象をforeachで回して$valに対象の文字列と一致するか 調べる方法が一番簡単だと思いますが、 検索する文字が複数ある場合、何回も上記の事をしなければいけません。 もう少し効率の良い書き方はないでしょうか?
821 名前:nobodyさん mailto:sage [2009/11/07(土) 11:26:41 ID:???] >>820 array_map使うと楽です
822 名前:nobodyさん [2009/11/07(土) 11:32:59 ID:HHoKTIgI] ありがとうございます。ぜひ参考にします。
823 名前:nobodyさん mailto:sage [2009/11/07(土) 12:00:25 ID:???] function a($a) { $txt = "aaazzzccc"; if (strstr($txt,$a)) echo "一致\n"; } $search = array("aaa","bbb","ccc"); $p = array_map("a",$search);
824 名前:nobodyさん mailto:sage [2009/11/07(土) 12:23:34 ID:???] > 検索する文字が複数ある場合、何回も上記の事をしなければいけません。 別にarray_mapなんか使わなくても単にforeachの二重ループにすればいいのでは?
825 名前:nobodyさん mailto:sage [2009/11/07(土) 12:35:53 ID:???] 質問者は既にforeach使ってるみたいだね
826 名前:nobodyさん mailto:sage [2009/11/07(土) 14:40:11 ID:???] 2重ループwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
827 名前:nobodyさん mailto:sage [2009/11/07(土) 14:42:27 ID:???] 単にin_arrayでいいのでは?
828 名前:nobodyさん mailto:sage [2009/11/07(土) 15:07:14 ID:???] in_array= 配列に値があるかチェックする 質問では配列に格納された文字列が、変数に格納された含まれているかチェックする おk?
829 名前:nobodyさん [2009/11/07(土) 15:09:30 ID:PiVKZwA7] HTML_QuickFormとSmartyの組み合わせだと、1ページに1つのフォームしか作れないんでしょうか? 検索しても複数ページの遷移の件などがヒットして、複数のQuickFormをSmartyに渡す方法が出て来ません
830 名前:nobodyさん mailto:sage [2009/11/07(土) 15:29:08 ID:???] >>828 日本語でおk
831 名前:nobodyさん mailto:sage [2009/11/07(土) 16:00:49 ID:???] >>830 in_arrayはお門違いってことが理解できなかったか 外人さん乙
832 名前:nobodyさん mailto:sage [2009/11/07(土) 16:58:49 ID:???] >>831 えっ・・・? >検索する文字が検索対象に一致するか調べたいと思います。
833 名前:nobodyさん mailto:sage [2009/11/07(土) 17:04:57 ID:???] >>820 の質問理解してる? >>832 さんよおじゃあin_array使ってコード書いてみろよwww
834 名前:nobodyさん mailto:sage [2009/11/07(土) 17:06:46 ID:???] >>832 質問者が少々日本語でおkなんだよ。意訳すると 「検索文字列が検索対象に含まれていたら何らかの処理をする、と言うロジックを 検索対象が複数だった場合にスマートに書きたい」 って事だろうからな
835 名前:nobodyさん mailto:sage [2009/11/07(土) 17:09:04 ID:???] //検索対象 $array = array("inquiry","support"); //検索する文字 $val = "inquiry_form"; // 検索文字が対象に一致するか foreach($array as $item){ if(strstr($val,$item)){ //一致した場合の処理 } } ↑ これをin_arrayを使ってどう書くのか激しく興味あるんだけど
836 名前:nobodyさん mailto:sage [2009/11/07(土) 17:13:26 ID:???] $a=array(1,2,3); foo($a, array(2,8,9)); てやったとき、両方に2が含まれてるからtrueが返って欲しいんだろうな。 if($a!=array_diff($a, array(2,8,9))) ってどうよ?
837 名前:836 mailto:sage [2009/11/07(土) 17:14:31 ID:???] strstrだったか、失礼しました。
838 名前:nobodyさん mailto:sage [2009/11/07(土) 17:19:55 ID:???] in_arrayでコードまだ??
839 名前:nobodyさん mailto:sage [2009/11/07(土) 17:22:59 ID:???] >>827 =>>830 =>>832 逃亡乙
840 名前:nobodyさん [2009/11/07(土) 22:43:03 ID:CwxQOSeK] constってどういう状況で使うものでしょうか? class test { const hiru_aisatu = "こんにちはっ!!"; const yoru_aisatu = "こんばんは・・・"; const hurarerutoki = "さようなら・・2度と会わないで"; } echo test::hiru_aisatu; こんなかんじで書くのと $hiru_aisatu = "こんにちはっ!!"; $yoru_aisatu = "こんばんは・・・"; $hurarerutoki = "さようなら・・2度と会わないで"; echo $hiru_aisatu; というふうに書くのはクラス使うほうがスピードは遅い?ような気がするのですが 複数人でコード書く場合はクラスでconst使ったほうがいいでしょうか?
841 名前:nobodyさん mailto:sage [2009/11/07(土) 23:45:33 ID:???] in_arrayで解決おじさんまだ????????????????
842 名前:nobodyさん mailto:sage [2009/11/07(土) 23:57:06 ID:???] 規制されたままの方が良かったな
843 名前:nobodyさん mailto:sage [2009/11/07(土) 23:57:15 ID:???] >>840 ・定数は上書きされない ・クラス定数は局所化される
844 名前:nobodyさん [2009/11/08(日) 02:32:54 ID:35LWJ8zb] 関数にいくつでも値を渡すことって可能でしょうか? hoge_func($a) でも hoge_func($a,$b,$c,$d,$e,$f) ただし function hoge_func($a=null,$b=null... とは違う方法で
845 名前:nobodyさん mailto:sage [2009/11/08(日) 02:56:24 ID:???] array
846 名前:nobodyさん mailto:sage [2009/11/08(日) 06:59:04 ID:???] >>844 php.net/manual/ja/functions.arguments.php
847 名前:nobodyさん [2009/11/08(日) 08:26:26 ID:H7unfEmK] PHPとMYSQLでお気に入りの本を紹介するアプリ(紹介者は複数)を作ってるんだけど、 これまでに紹介された本の一覧ページで、同じ紹介者の本が連続して出ないようにしたいです。 たとえば登録時に10冊まとめて登録できる場合、主キーのIDを表示時のソートのキーにしたら 同じ人の紹介した本ばかりが一画面に出ることになります。 これを防ぐにはどうしたら良いですか? 登録時にランダム数を入れるカラムを作って、それをキーにして表示するのか、 それともPHPだけで出来るでしょうか?
848 名前:nobodyさん mailto:sage [2009/11/08(日) 08:59:03 ID:???] >>847 全然適当な並びでよければ ORDER BY RAND()
849 名前:nobodyさん [2009/11/08(日) 09:04:36 ID:H7unfEmK] >>848 うおおお、凄い! そんなのがあるんだ? やっぱり聞いて良かったです。ありがとう!
850 名前:nobodyさん [2009/11/08(日) 10:30:15 ID:atd+IQXc] class test { public $v = "test"; public function display() { return $this->$v; } } $obj = new test; echo $obj->display(); testと表示させたいのですが表示できません PHP5.3です どなたかご指導お願い致します
851 名前:nobodyさん mailto:sage [2009/11/08(日) 10:39:14 ID:???] >840 class Greeting{ const AT_MORNING = 'おっはー☆'; const AT_DAYTIME = 'こんにちは'; const AT_NIGHT = 'こんばんわー'; const FIRST_MESSAGE = '初めまして'; } class Love{ const FIRST_MESSAGE = '好きです!'; const END_MESSAGE = 'さようなら…二度と会わないで'; } echo Greeting::AT_MORNING; 例えば定数の場合、そこまでに通ったコードを全部読んで、定義部を探さないといけない。 クラス定数ならば、格納先のクラスさえ分かれば、そこを探すだけで済む。 勿論、「定数はこのファイルに全部書くこと!」という規則で運用しても同じような効果になるが、「立ち入り禁止」というルールだけ設けるのと柵を作るの、どっちが安全かの差だな。 また、Greeting::AT_MORNINGを読むにはGreetingクラスの存在を知らなければ(requireしなければ)ならない。 つまり、この定数を使っている箇所がどこら辺にあるのか特定しやすい。 あとは、全体から見える位置にものを定義すると、変数名被りや定数名被りが発生しやすい。クラス定数なら、クラスさえ違えば同名になっても問題ない。
852 名前:nobodyさん mailto:sage [2009/11/08(日) 10:41:21 ID:???] >>850 エラー出力見ようよ。たぶんこの場合ずばりのエラーが出てる。 return $this->$v; の、vには$要らない。
853 名前:nobodyさん mailto:sage [2009/11/08(日) 10:41:44 ID:???] return $this->$v だと そのクラス内($this)の変数$vが持ってる値の変数になっちゃう return $this->v がただしい
854 名前:nobodyさん mailto:sage [2009/11/08(日) 10:45:24 ID:???] ありがとうございます か >>852-853
855 名前:nobodyさん [2009/11/08(日) 10:46:05 ID:atd+IQXc] ミス ありがとうございます おかげ様で解決できました >>852-853 どうもありがとうございました
856 名前:nobodyさん [2009/11/08(日) 10:55:19 ID:R5NqdoKR] オブジェクト指向の覚え方についてどなたかご指導お願いします ここ見て勉強してます ttp://php.net/manual/ja/language.oop5.php 目次 * はじめに * クラスの基礎 * Properties * オブジェクト定数 * クラスのオートローディング * コンストラクタとデストラクタ * アクセス権 * Object Inheritance * スコープ定義演算子 (::) * static キーワード * クラスの抽象化 * オブジェクト インターフェイス * オーバーロード * オブジェクトのイタレーション * パターン * マジックメソッド * finalキーワード * オブジェクトのクローン作成 * オブジェクトの比較 * タイプヒンティング * 遅延静的束縛 (Late Static Bindings) * オブジェクトと参照 * Object Serialization この目次を上から順番にやりたいのですがどこまでが基礎の部分でしょうか?
857 名前:nobodyさん mailto:sage [2009/11/08(日) 11:46:29 ID:???] スレを使ってデバッグするとはお主やるな
858 名前:nobodyさん mailto:sage [2009/11/08(日) 11:47:34 ID:???] >>855 へのレスね
859 名前:nobodyさん mailto:sage [2009/11/08(日) 11:58:07 ID:???] 857 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん あぼ〜ん 858 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん あぼ〜ん
860 名前:nobodyさん mailto:sage [2009/11/08(日) 12:02:22 ID:???] >856 staticまで知ってればとりあえず問題ない
861 名前:nobodyさん mailto:sage [2009/11/08(日) 12:12:54 ID:???] >>856 「オブジェクト指向の覚え方」(というか学び方)を知りたいんですね? まずは、 とある言語が「オブジェクト指向的な記述を支援してくれる部分」と、 「オブジェクト指向というもの」自体とを 弁別した方が良いかと。 とある言語で後者を実践するときのものが前者。 そのページで得られるのは、基本的には前者のみ。 OOPそのものへの入門だったら、PHP以外の例えばJavaあたりを使ってOOPの 解説してるとこ覗いた方が良いよ。 それでもその質問に答えるとしたら、上から順番でどこまでってことは無いかな。 >* クラスのオートローディング ↑飛ばしてもいいけど、 >* コンストラクタとデストラクタ ↑飛ばせない てな感じで。
862 名前:nobodyさん mailto:sage [2009/11/08(日) 12:30:58 ID:???] Javaが一通り出来るようになればオブジェクト指向はだいたい理解出来るはず 使いこなすにはまだまだだけど
863 名前:nobodyさん mailto:sage [2009/11/08(日) 12:34:58 ID:???] じゃヴぁじゃヴぁうるせえよks!
864 名前:nobodyさん mailto:sage [2009/11/08(日) 12:41:45 ID:???] >>862 理解できてるから使いこなせるわけで。 順序逆だz
865 名前:nobodyさん mailto:sage [2009/11/08(日) 12:52:04 ID:???] PHPみたいな変数に何でも入って、evalもあるような言語に JavaのOOPを持ち込むのは、混乱の元だろう。 頭固くなるからやめとけ。 初心者はSqueakでもやっとけばいい。
866 名前:nobodyさん [2009/11/08(日) 13:33:48 ID:9EHY5xph] インスタンスってどういうときに使うんですか? class SimpleClass{ public $var = 'a default value'; public function displayVar() { echo $this->var; } } $instance = new SimpleClass(); $className = 'Foo'; $instance = new $className(); ってマニュアルにサンプルが載ってますが 下から1〜3行を $obj= new SimpleClass(); で済ましたほうが楽だと思うのですがどうなんでしょうか どなたかご教示お願いします
867 名前:nobodyさん mailto:sage [2009/11/08(日) 13:36:52 ID:???] 済ますも何もSimpleClassではなく別クラスのFooのインスタンスを作ってるように見えるが
868 名前:nobodyさん [2009/11/08(日) 13:41:42 ID:9EHY5xph] すいませんこれです www.php.net/manual/ja/language.oop5.basic.php 例3 インスタンスを作成する <?php $instance = new SimpleClass(); // 変数を使うこともできます $className = 'Foo'; $instance = new $className(); // Foo() ?>
869 名前:nobodyさん mailto:sage [2009/11/08(日) 13:46:05 ID:???] インスタンスを生成したいクラスを動的に指定する場合に便利だよ autoloadしたい時とかFactoryパターンの時とか
870 名前:nobodyさん mailto:sage [2009/11/08(日) 13:48:04 ID:???] new演算子の右辺に変数が使えるって例だな 可変変数の一種だ
871 名前:nobodyさん mailto:sage [2009/11/08(日) 13:52:41 ID:???] 可変変数の一種などではなく可変関数 www.php.net/manual/ja/functions.variable-functions.php
872 名前:nobodyさん mailto:sage [2009/11/08(日) 14:29:44 ID:???] >>866 >$obj= new SimpleClass(); これだってインスタンスを作成してるわけだが・・・
873 名前:nobodyさん mailto:sage [2009/11/08(日) 17:28:03 ID:???] >>866 クラスってのはクッキー生地の型抜き用の型で、 インスタンスはそれで作られた個別のクッキー(生地)。 抜き型だけあってもそれを使わないと(newしないと)食えるクッキーの存在は生成されない。 てな感じでどうだ?
874 名前:nobodyさん mailto:sage [2009/11/08(日) 17:52:29 ID:???] >>873 スタティックメソッドは?
875 名前:nobodyさん mailto:sage [2009/11/08(日) 17:55:43 ID:???] 最初に入れる具を決めて皮を作るか、とりあえず具は後で買ってくると決めて皮を作るかの違い 出来るものはどちらにしても肉まん・あんまん・中華まん。
876 名前:nobodyさん mailto:sage [2009/11/08(日) 18:00:44 ID:???] >868 変数$classNameの値に応じて、生成するインスタンスを変えられる。 class Foo{ function say_name(){ echo 'foo foo foo!'; } } class Bar{ function say_name(){ echo 'Bar, bar, BAAAAAR'; } } $instance = new $className(); $instance->say_name(); クラスに同じ名前同じ引数のメソッドがあり、その中身のロジックが全然違う場合なんかに使える。
877 名前:nobodyさん [2009/11/08(日) 18:32:26 ID:QzQ1Ze2q] class test{ function test(){ throw new Exception('test'); } } try{ $test = new test; $test->test(); }catch(Exception $e){ echo $e->getMessage(); } classからスローした例外って上みたいにキャッチできますか?
878 名前:nobodyさん mailto:sage [2009/11/08(日) 18:59:39 ID:???] なんで試さんの?
879 名前:nobodyさん [2009/11/08(日) 19:13:09 ID:QzQ1Ze2q] できた、役に立たない奴らだ
880 名前:nobodyさん mailto:sage [2009/11/08(日) 20:10:53 ID:???] 次の方どーぞ。
881 名前:nobodyさん [2009/11/08(日) 21:05:50 ID:8S6RVioX] classを作っておくのは同じコードを2度も書かないためってことでしょうか? 掲示板を作るとき「ファイル操作・文字列処理」をしますのでそういうのをクラスにまとめることによtt いろんなスクリプトで再利用できるという認識でよろしいでしょうか?
882 名前:nobodyさん mailto:sage [2009/11/08(日) 22:33:56 ID:???] 再利用できるように作ってあれば。
883 名前:nobodyさん [2009/11/09(月) 09:32:56 ID:utcN5JBF] >>881 同じコードを2個書かなくていいのはfunction(関数化) クラス化は、同じコードを書かなくていいだけでなく、そのときに必要な部分のみ使える感じ
884 名前:nobodyさん mailto:sage [2009/11/09(月) 10:54:46 ID:???] 関数だと必要な部分のみ使えないの?
885 名前:nobodyさん mailto:sage [2009/11/09(月) 10:57:53 ID:???] オブジェクト指向のオの字も知らないようだと、クラスを作る意味はまるで無い
886 名前:nobodyさん [2009/11/09(月) 11:09:38 ID:utcN5JBF] クラスは何つーか、製作ツール作る感じじゃね? RPGツクールとかそんな感じで 逆にfunctionなどの関数はそのまま関数作ったり RPGツクールの中の、敵にダメージを与える計算部分とか
887 名前:nobodyさん mailto:sage [2009/11/09(月) 11:12:00 ID:???] クラスの目的は… 少なくとも出発点はデータの保護、というかデータに対して可能な操作の定義。>>881 つか、もうそれってPHPの質問と違うやん。 OOもしくはOOP一般じゃろ。
888 名前:nobodyさん mailto:sage [2009/11/10(火) 00:04:02 ID:???] 学校にもAクラス、Bクラスってあるだろう。 それと同じ意味だよ。 A組 が 廊下掃除担当 B組 が 体育館掃除担当 C組 が プール掃除担当 という感じにクラス毎に役割を振っておけば、 後々管理が楽になるだろう? 「廊下に関する事なら、A組に聞けばいい。」 ってな具合で。
889 名前:nobodyさん mailto:sage [2009/11/10(火) 00:22:25 ID:???] 関数とオブジェクトのローカル変数をセットにしておける。 継承が使える。 これだろ。
890 名前:nobodyさん mailto:sage [2009/11/10(火) 00:28:25 ID:???] 無駄に難しく考えないで、自分のレベルで便利に使えるところから使えばいいんだよ。 クラスつかうなんてのは、手段であって、目的ではないからな。
891 名前:nobodyさん mailto:sage [2009/11/10(火) 02:31:13 ID:???] 同じく、システムの中である程度一貫性持ってれば扱い方は人によって個性出てもいいと思う
892 名前:nobodyさん mailto:sage [2009/11/10(火) 02:57:15 ID:???] OOP本のサンプルって、 Animalクラスを継承してDogクラスとかCatクラスを作るって例が多いけど、 わかりやすいようで解りづらいよなw
893 名前:nobodyさん mailto:sage [2009/11/10(火) 03:10:25 ID:???] >>892 >Animalクラスを継承してDogクラスとかCatクラスを作るって例 この手の解説は参考にならないって、歴史が証明してるよなw
894 名前:nobodyさん mailto:sage [2009/11/10(火) 03:44:55 ID:???] 最初は関数で作って、後々追加案件で処理毎にクラス化してる 配列でまとめてあると、後で弄り易い。
895 名前:nobodyさん mailto:sage [2009/11/10(火) 05:31:53 ID:???] それ、クラスである必要があるコードでなかったりしないか
896 名前:nobodyさん mailto:sage [2009/11/10(火) 06:59:46 ID:???] >>893 そういう概念の話は腐るほど聞いても、じゃあいざ実装しようとすると あれどれがDogでAnimalなんだっけ、いやそもそもクラスにする必要あるのかこれ? と思考の海に沈む まっとうなOOP本読めばいいんだろうけど
897 名前:nobodyさん [2009/11/10(火) 08:03:12 ID:T58KxytE] 同じような方向の質問になるけど PEARとかでよくファクトリークラス(?)を使って クラスからクラスを作ってたりするけど、 あれってどういう理由があるの?
898 名前:nobodyさん mailto:sage [2009/11/10(火) 09:28:55 ID:???] >>897 ttp://www.techscore.com/tech/DesignPattern/AbstractFactory.html
899 名前:nobodyさん [2009/11/10(火) 09:41:10 ID:lbGcCYju] 自分はフォームのパーツを生成する機能をまとめてクラスにしてるんだ $fmPartsCrass->getUTypePD(10); //DBの登録値10をselectedとするユーザタイプのプルダウンを作る $fmPartsCrass->uTypeToTXT(10); //フォームの確認画面で、選択値10のユーザタイプを出力する クラス内のinit()ではプルダウン元になるname,valueの二次元配列を沢山読み込ませてる感じ。 こんなので良いのかな? クラスの使い方って。。
900 名前:nobodyさん mailto:sage [2009/11/10(火) 09:56:23 ID:???] 俺の好みで言うと、コーディング時に種類が決まってるパーツは new classNameで明示的にインスタンス化したいな。 パラメータ指定してインスタンス作ってからaddとかするように 書くだろうな。 ま、好みの話だからさらっと流してくれ。
901 名前:nobodyさん mailto:sage [2009/11/10(火) 09:57:06 ID:???] 今気づいたがクラスはCrassじゃなくてClassだなw アホすぎワロタ
902 名前:nobodyさん mailto:sage [2009/11/10(火) 10:04:28 ID:???] >>895 関数にすると値渡しが面倒なんだわ 特にお金関係は。
903 名前:nobodyさん mailto:sage [2009/11/10(火) 10:25:02 ID:???] >>895 は「最初は関数で作って」おけるような物なら、 クラス化する必要なくね?って事だと思う。 俺はそうは思わないけど。
904 名前:nobodyさん mailto:sage [2009/11/10(火) 10:51:32 ID:???] ちょっとでも楽になるか、それともクラスにする手間を惜しむか、 必要があるかどうかは結局その人の感覚次第でしょ
905 名前:nobodyさん mailto:sage [2009/11/10(火) 11:05:09 ID:???] どっちが楽かも人によるしね。 でも、殆どの人にとって、クラス化は最初は楽じゃないんだよね。 だから壁を越えようとしない人も多いんだろう。 壁を越えた向こうには、素敵な楽園が広がって・・・ るわけでもないし。 待ってるのは次の壁と、無間壁越え地獄w
906 名前:899 mailto:sage [2009/11/10(火) 11:50:11 ID:???] 上で書いた例ってヘンですか? 自分じゃ間違ってないだろって気持ちと、これはfunctionを束ねただけのものじゃないかって 気持ちが半分半分です。 バラしたら関数として独立化できるものはclassにする必要ないのかななんて考えると 全部そうだろうという気持ちがでてくるし…
907 名前:nobodyさん mailto:sage [2009/11/10(火) 11:57:28 ID:???] >>906 functionを束ねただけのものですね
908 名前:nobodyさん mailto:sage [2009/11/10(火) 11:58:15 ID:???] 変数名にCl(r)assの文字がある時点でおかしいと思うべきだな
909 名前:nobodyさん mailto:sage [2009/11/10(火) 12:01:22 ID:???] >>906 汎用性を持たせればいいんじゃね? リスト意外にもラジオボタンや複数選択でも出力、クラス指定で見た目も変えれるとか
910 名前:nobodyさん [2009/11/10(火) 12:03:13 ID:HgEfIoEe] くだらない質問ですがよろしくお願いします。 ソースを見ていたら <?= $test ?> という書き方をしている箇所を見つけました。 コードを書くときは<?php ?>で囲うと本には書いてありましたが <?php print($test) ?> と、どう違うのでしょうか。 あまり見かけないということは何か問題のある記述方ですか?
911 名前:nobodyさん mailto:sage [2009/11/10(火) 12:03:50 ID:???] だから自分の基準は 「素材があって、料理する方法が複数ある場合」 はクラスにするようにしてる
912 名前:nobodyさん mailto:sage [2009/11/10(火) 12:11:36 ID:???] >バラしたら関数として独立化できるものはclassにする必要ないのかな これはその通り。ただ、 >全部そうだろうという気持ちがでてくるし… こっちは、クラス使える言語でなら、そういうのはやめた方がいいぞ。 データってもんを無視すれば全部そうできるかもしれんけど。 「関数/手続きに(引数等で)データを渡す」だけで考えても一応全てのプログラムは書けるよ、確かに。 昔はそればっかだったし。
913 名前:nobodyさん mailto:sage [2009/11/10(火) 12:20:07 ID:???] >>910 マニュアル嫁
914 名前:nobodyさん mailto:sage [2009/11/10(火) 12:24:15 ID:???] >>910 前者はそろそろ問題になってきてる。
915 名前:nobodyさん mailto:sage [2009/11/10(火) 12:36:32 ID:???] 別にクラスを 関数をひとくくりにするためだけに使ってもいいんだよ。
916 名前:nobodyさん [2009/11/10(火) 13:07:19 ID:n4Nrgy6L] class Oyabun{function buki(){echo "マシンガン";}} class Kobun extends Oyabun{function buki(){echo "ピストル";}} class zako extends Kobun{function buki(){echo "鉄パイプ";}} クラスKobunからクラスOyabunのメソットbukiを呼び出してマシンガンって表示させることはできましたが クラスzakoからクラスOyabunのbukiを呼び出してマシンガンと表示させる書き方がわかりません 直接クラスOyabunで呼ぶ出すのではなくzakoから呼び出す方法をどなたかご指導お願い致します
917 名前:899 mailto:sage [2009/11/10(火) 13:11:58 ID:???] 皆さんどうもありがとう >>915 そうなんですか? そうだとしたら安心(?)しました 何度も同じコード書きたくなくて関数化してまとめてみようと思ったのがきっかけでした クラスの継承とかpublic指定した変数の外部から参照とかしないんで、 複数の関数で使う変数の値やDB接続処理をinit()内部で定義すればいっぺんに書き換えられる、 まとめていつでも呼び出せる以上の利便性なんて感じないんですよね。それで十分だし。 何か損してるのかな。。
918 名前:nobodyさん mailto:sage [2009/11/10(火) 13:16:16 ID:???] 言外の意図を読み取れないのかきみは
919 名前:nobodyさん mailto:sage [2009/11/10(火) 13:37:25 ID:???] >>916 なんか妙な継承だと思うんだな。子分は親分か? >クラスzakoからクラスOyabunのbukiを呼び出してマシンガンと表示させる書き方がわかりません 雑魚が親分を使役するのか? 実はPHPはよく知らないが、 Oyabun::buki(); で呼び出せない? でもなぁ… interface Kouseiin { public function buki(); public function setOyabun($oya); } class Oyabun implements Kouseiin{略} class Zako implements Kouseiin{ private $oyabun; 略 public function tasuketeOyabin(){ $this->oyabun->buki(); } } $chimpira = new Zako(); $chimpira->buki(); $chimpira->tasuketeOyabin();
920 名前:nobodyさん [2009/11/10(火) 16:32:26 ID:k/b4LSiu] よろしくお願いします。 function &set() { ↑このアンドマークの意味を教えてください。
921 名前:nobodyさん mailto:sage [2009/11/10(火) 16:45:26 ID:???] 記述ミス
922 名前:nobodyさん [2009/11/10(火) 18:02:30 ID:hMuYWgxi] PDO::ATTR_PERSISTENT=>true として PDO::prepare を使った場合、prepare ステートメントは接続が維持されている限りキャッシュされていて、前回のキャッシュをphpが勝手に使ってくれるという動作をするのでしょうか? DBサーバーはpostgresqlです
923 名前:nobodyさん mailto:sage [2009/11/10(火) 19:01:07 ID:???] >>922 PDOStatementのデストラクタで毎回削除してしまうようだね ext/pdo_pgsql/pgsql_statement.c > static int pgsql_stmt_dtor(pdo_stmt_t *stmt TSRMLS_DC) > { ... > #if HAVE_PQPREPARE ... > if (S->is_prepared) { > spprintf(&q, 0, "DEALLOCATE %s", S->stmt_name); > res = PQexec(H->server, q);
924 名前:nobodyさん mailto:sage [2009/11/10(火) 19:03:05 ID:???] >>920 www.php.net/manual/ja/language.references.php
925 名前:nobodyさん [2009/11/10(火) 20:40:43 ID:k/b4LSiu] >>924 ありがとうございます。 こちらで質問して良かったです。
926 名前:nobodyさん [2009/11/10(火) 21:11:57 ID:Yr8QXJQk] >>923 ありがとうございます しかし劇的に軽量化が出来ないかと思いましたが残念です pgsqlで関数として定義にしておけば計量化したりしないものだろうか…
927 名前:nobodyさん mailto:sage [2009/11/10(火) 21:28:36 ID:???] 君のシステムはDBの接続が継続してたら軽量化するの?
928 名前:nobodyさん [2009/11/10(火) 21:31:00 ID:Yr8QXJQk] そうですね、view使えばいいんですね。 ちゃんと勉強しましょう…。
929 名前:nobodyさん [2009/11/10(火) 23:50:57 ID:efP4W3lX] GoogleのようなAND検索を実装しようとしています。 以下のように空白で区切ろうと考えています preg_split('/\p{Z}+/', $query); 単純な区切りでは問題ないのですが、 test aaaa => array('test', 'aaaa'); 以下のように一単語として検索したい場合の正規表現が分かりません。 "test aaaa" test => array('test aaaa', 'test'); 分かる方お願いします。