1 名前:nobodyさん [2009/03/09(月) 02:14:28 ID:HyrthkeE] 質問者はまず>>1 を良く読むこと(必須!) 過去スレ、関連スレ、FAQなどは>>2-10 辺り 次スレは>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。 ◆前スレ 【PHP】下らねぇ質問はID出して書き込みやがれ 81 pc11.2ch.net/test/read.cgi/php/1234958956/ ◆質問用テンプレ 【OS名】vine linux 【PHPのバージョン】php5.26 【連携ソフトウェア】mysql 【質問内容】 ◆質問する時の注意 ・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す) ・ 己の行った操作、変更などを詳しく明記すること。 ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。 ・ 質問者として、態度をわきまえること。 ・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。 (PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。) ◆質問後の注意 ・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。 ・解決しなくても回答をもらった場合はお礼を言うこと。 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。) ◆回答者への注意 ・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
16 名前:nobodyさん [2009/03/09(月) 22:04:02 ID:ObAH+zkj] クラスの継承って、機能を追加したいとき親クラスとほとんど変わりなければ、 もう親クラスを書き換えてしまったほうが気持ち悪くないように思えるのですが、 親を書き換えて機能を追加すると面倒くさい作業になるという場合以外に、 プログラムを書く初期段階で敢えて継承を使うときって例えばどんなときありますか
17 名前:nobodyさん [2009/03/09(月) 22:14:56 ID:4+GIMEEF] 質問です。 PHPでHTMLページの解析をやりたいのですが、いろいろな方法があるようです。 今はどの方法がいちばんお薦めなのでしょうか? 個人的には、SimpleXMLのような使い方ができるとありがたいです。
18 名前:nobodyさん mailto:sage [2009/03/09(月) 22:29:28 ID:???] >>17 DomDocument::loadHTML -> simplexml_import_dom でSimpleXMLでHTMLも扱えるようになる でも俺は Simple HTML DOM Parser の方が好きだな
19 名前:nobodyさん mailto:sage [2009/03/09(月) 22:29:49 ID:???] >>16 オブジェクト指向設計を実装するとき >>17 DOMとか
20 名前:nobodyさん mailto:sage [2009/03/09(月) 22:48:20 ID:???] file_get_contents or file + 正規表現
21 名前:nobodyさん mailto:sage [2009/03/09(月) 22:53:19 ID:???] >>20 正規表現では限界がある
22 名前:nobodyさん mailto:sage [2009/03/09(月) 22:54:47 ID:???] 1文字ずつ見ていくやりかたもあるな
23 名前:nobodyさん mailto:sage [2009/03/09(月) 22:55:16 ID:???] >>20 一番下策だろw
24 名前:17 [2009/03/09(月) 22:57:35 ID:4+GIMEEF] 皆さん、ありがとうございます。 SimpleXML ではなく、PEAR XML_Serializer で使うとすると、どうするのが おすすめでしょうか? 特に、タグが整合していないようなHTMLにうまく対応するには、どういう方法 があるでしょうか?
25 名前:nobodyさん mailto:sage [2009/03/09(月) 23:07:37 ID:???] pearのそのライブラリは重大なバグが潜んでるってバグ情報に載ってたぜ
26 名前:17 mailto:sage [2009/03/09(月) 23:14:07 ID:???] >>25 ありがとうございます。XML_Serializerは、すでに自分以外の人間によって 導入済みなので、気をつけて使うことにします。 ところで、こんなのを見つけました。 HTMLを整形式のXML文書に修正するPHPクラス : Under Construction, Baby www.rcdtokyo.com/ucb/contents/i000799.php
27 名前:nobodyさん [2009/03/09(月) 23:49:28 ID:wECRTT84] ちょっと角度の違う質問ですみませんがよろしくお願いいたします プログラミングができることとPHPができることはイコールでしょうか? 基本的なプログラミング作法を習得すればpython,perl,rubyを覚えるのは簡単ですか?
28 名前:nobodyさん mailto:sage [2009/03/09(月) 23:51:12 ID:???] >>27 そういう質問が出るということは あなたはプログラミングはまったくやったことがない?
29 名前:nobodyさん mailto:sage [2009/03/09(月) 23:51:45 ID:???] 努力次第
30 名前:5 [2009/03/10(火) 00:17:26 ID:IndrzJie] >>6 >>8 >>10 あらためて、ありがとうございます。 file_get_contents($url); でエラーがでる原因は、 クエリーにスラッシュが2回連続したのが含まれる場合、 $_GET['url']の値が http:/www.yahoo.co.jpになって、 スラッシュが勝手に省略されるのが原因でした。
31 名前:nobodyさん mailto:sage [2009/03/10(火) 07:31:38 ID:???] >>27 イコールじゃないってのはwikipediaで知らない言語を調べたときに 書いてある内容がチンプンカンプンだったりしたことがあったりしてわかるだろ 図書館なり本屋なりで計算機科学の大学の教科書みたいな本を手に入れてきて、 そんな質問したことで欝になるがいいさ
32 名前:nobodyさん mailto:sage [2009/03/10(火) 08:33:34 ID:???] >>27 >プログラミングができることとPHPができることはイコールでしょうか? PHPもプログラム言語の1つなので間違ってはいないけど PHPができるようになってプログラミングできるとかは公言しないほうがいい 世の中にはすごい人はいっぱいいるので その人たちとの会話するには1歩ひかないと痛い目見る PHPだけをやってるうちは難しい話ふられてもわからないからね >基本的なプログラミング作法を習得すればpython,perl,rubyを覚えるのは簡単ですか? 簡単かどうかは経験次第 基本的にベースができてれば仕様書読めば組むことができるが読み方がわからないと話にならない PHPマニュアルと他言語のAPI仕様書なんかは結構違ってくるので その差をどう吸収できるかが最大の問題 言語をたくさん覚えたいというならPHPを最初にやるのはおすすめしない いろんな言語のベースになってるCやJavaをやったほうが短期間で効率よく移行できると思う
33 名前:nobodyさん mailto:sage [2009/03/10(火) 09:00:49 ID:???] 効率よく移行したいからCやJavaから始めるとか打算的なことやっても 大抵微妙で終わる気がするが
34 名前:nobodyさん mailto:sage [2009/03/10(火) 09:18:01 ID:???] 独学とか言うのは信用ならない 学校がいかに効率的なシステムなのかは後悔したときになって初めて分かるw
35 名前:nobodyさん mailto:sage [2009/03/10(火) 09:22:13 ID:???] WebプログラミングができるということはPHPだけではやっぱだめなんだよな いろんな技術ができてはじめてWebプログラミングができるといえるようになると思う たとえばECサイトの構築なんかに必要なものは HTML+CSS+JavaScript+PHP+XML Schema+XML(RSS等も)+DB(SQL) RIAの選択肢によってはアプレットやFlash(Flex)やSilverlightなんかも そのほかにもプロトコル(http,https)なんかの知識も必要だったり地獄 PHPができるってことは単にPHPができるってことなんだと思うわ
36 名前:nobodyさん mailto:sage [2009/03/10(火) 09:34:24 ID:???] なに語っちゃってんだよ
37 名前:nobodyさん mailto:sage [2009/03/10(火) 09:41:12 ID:???] >>24 Tidyは?
38 名前:nobodyさん mailto:sage [2009/03/10(火) 09:48:07 ID:???] >>35 PHPだけで言えると思ってたなんて甘すぎ
39 名前:nobodyさん mailto:sage [2009/03/10(火) 09:58:42 ID:???] 何をいってんだおまえは
40 名前:nobodyさん [2009/03/10(火) 10:20:12 ID:oLUhH3AJ] 今まで完全に手続き型でやっていたプログラムを、 オブジェクト指向で書き直そうと思うのですが 怖くて一歩前へ踏み出すことができません・・ 書いたプログラムの規模や内容によるとは思いますが、 何かコツとか、やるならこれもやっておけみたいな点がありましたら教えてください
41 名前:nobodyさん mailto:sage [2009/03/10(火) 10:34:24 ID:???] なんのためにやるの?
42 名前:nobodyさん mailto:sage [2009/03/10(火) 10:35:09 ID:???] Javaの入門サイト池
43 名前:nobodyさん mailto:sage [2009/03/10(火) 10:52:25 ID:???] >>40 テストファーストだけはやっといて損はないからやとけ
44 名前:nobodyさん mailto:sage [2009/03/10(火) 10:55:45 ID:???] 41のように答えられないんだったら無理して答えなくていいよ。 散々知識知恵を絞って、うまい回答ができないのを自ら晒しているだけ。
45 名前:nobodyさん mailto:sage [2009/03/10(火) 10:59:09 ID:???] お前は何を言ってるんだ
46 名前:nobodyさん [2009/03/10(火) 11:08:50 ID:uqvOEBO8] こんにちはをオブジェクト指向で書きたいのですがサンプルが見つかりません どなたか教えてくだいさ
47 名前:nobodyさん mailto:sage [2009/03/10(火) 11:10:19 ID:???] こんにちはをオブジェクト指向でって何だ
48 名前:nobodyさん mailto:sage [2009/03/10(火) 11:14:40 ID:???] <?php class hello { function ko(){echo 'こ';return $this;} function n(){echo 'ん';return $this;} function ni(){echo 'に';return $this;} function ti(){echo 'ち';return $this;} function ha(){echo 'は';return $this;} } $obj= new hello(); $obj->ko()->n()->ni()->ti()->ha(); ?>
49 名前:nobodyさん mailto:sage [2009/03/10(火) 11:17:34 ID:???] >>48 それどういうオブジェクト指向設計?
50 名前:nobodyさん mailto:sage [2009/03/10(火) 11:32:55 ID:???] >>48 の理解に苦しむんだが
51 名前:nobodyさん mailto:sage [2009/03/10(火) 11:33:11 ID:???] return $this かっけえ
52 名前:nobodyさん mailto:sage [2009/03/10(火) 11:50:13 ID:???] メソッドチェーンをおぼえて使いたくて仕方なかったんだろ
53 名前:nobodyさん mailto:sage [2009/03/10(火) 11:54:07 ID:???] <? class greeting{ function hello(){ return "こんにちは"; } function goodevening(){ return "こんばんは"; } } class bibiru extends greeting{ function goodevening(){ return "こんばんみ"; } } class arare extends greeting{ function hello(){ return "んちゃ"; } } $bibiru = new bibiru(); echo $bibiru->hello()." ".$bibiru->goodevening()."<br>"; $arare = new arare(); echo $arare->hello()." ".$arare->goodevening()."<br>"; ?>
54 名前:nobodyさん mailto:sage [2009/03/10(火) 12:02:02 ID:???] >>46 class Hello { static function main() { echo "Hello world!"; } } Hello::main(); PHPはメインメソッドが存在しないからいちいち呼び出さないとだめ 純粋なオブジェクト指向言語じゃないので全てをオブジェクトで包む必要がない よってPHPでHello worldを出力するだけなら クラスを使うのは用途としておかしい
55 名前:nobodyさん mailto:sage [2009/03/10(火) 12:06:59 ID:???] サーバでうpしないで読む練習のためソースを読んでみたのですが>>53 さんのを読むと こんにちは こんばんみ んちゃこんばんは って表示されるのでおkですか?
56 名前:nobodyさん mailto:sage [2009/03/10(火) 12:10:21 ID:???] >>55 OK
57 名前:nobodyさん mailto:sage [2009/03/10(火) 12:14:29 ID:???] 単にメソッドをオーバーライドしてるだけじゃん インタフェースはどうした.デザパタはどうした.
58 名前:nobodyさん mailto:sage [2009/03/10(火) 12:18:06 ID:???] 手取足取りしたけりゃ専用スレでやってくれ pc11.2ch.net/test/read.cgi/php/1172205352/
59 名前:nobodyさん [2009/03/10(火) 12:21:04 ID:TmDav5cL] 【data.php】 $title = "タイトル"; $h1 = "見出し1"; $p = "文章です"; 【template.html】 <html> <head> <title>{title}</title> </head> <body> {h1} {p} </body> テンプレート(template.html)を元に{title},{h1},{p}にdata.phpにためてあるデータを値を入れたいのですが データの数は日々追加したり削除することも考えうるのですが どのようにしたらいいでしょうか? 【求める結果】 <html> <head> <title>タイトル</title> </head> <body> 見出し1 文章です </body>
60 名前:nobodyさん mailto:sage [2009/03/10(火) 12:31:53 ID:???] 一番簡単なのは テンプレートエンジンを使うこと。
61 名前:nobodyさん mailto:sage [2009/03/10(火) 12:35:28 ID:???] <?php echo $title; ?>
62 名前:nobodyさん mailto:sage [2009/03/10(火) 12:40:01 ID:???] >>61 そんなの流行らないから
63 名前:nobodyさん [2009/03/10(火) 12:40:40 ID:TmDav5cL] smartyで>>59 みたいに分離してこんにちはと表示させる書き方を教えてください 勉強のために書きたいんです
64 名前:nobodyさん mailto:sage [2009/03/10(火) 12:57:58 ID:???] >>59 function convert() { include func_get_arg(1); return preg_replace( '/\{([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\}/e', 'isset($$1) ? htmlspecialchars($$1, ENT_QUOTES) : \'undefined\';', file_get_contents(func_get_arg(0))); } echo convert('template.html', 'data.php');
65 名前:nobodyさん mailto:sage [2009/03/10(火) 12:59:19 ID:???] コードが少ないけどさっぱりわからんねえわw
66 名前:nobodyさん mailto:sage [2009/03/10(火) 13:02:43 ID:???] >>52 >>48 は単なるメソッドチェーンじゃない。 「流れるようなインターフェース」ってやつだよ。 キーワード引数のかわりに fluent interface (流れるようなインターフェース) を使う - kwatchの日記 d.hatena.ne.jp/kwatch/20080704/1215192591
67 名前:nobodyさん mailto:sage [2009/03/10(火) 13:08:37 ID:???] fluent interfaceになってない件
68 名前:nobodyさん mailto:sage [2009/03/10(火) 13:10:23 ID:???] 匿名関数とかクロージャーとかでいいじゃん・・・
69 名前:nobodyさん mailto:sage [2009/03/10(火) 13:24:59 ID:???] ## PHPによる、連想配列を使ってキーワード引数をエミュレートした例 $rows = Query.find_all('stocks', array('where'=>'price >= 1000', 'order_by'=>'name', 'limit'=>10)); これ本当に例?
70 名前:nobodyさん [2009/03/10(火) 13:53:03 ID:9aCbhHpk] ArrayAccessをある基底クラスにimplementしたら、 その基底クラスより前に拡張クラスを書くと 「クラスがない」というエラーが出るようになりました。 基底クラスの後ろに拡張クラスを移動するとエラーは消えましたが。 なぜ、ArrayAccessをimplementすると こんなRubyやPhthonのような動作をするようになるのでしょうか?
71 名前:nobodyさん [2009/03/10(火) 14:09:35 ID:v2XXMSa6] >>70 日本語で書いてくれ 基底クラスより先に拡張クラスを書けば、基底がないって言われるのはあたりまえ。 ArrayAccessをimplementしたなら、interfaceを実装すればいいだけ。 ArrayAccessがどうとかは関係ない。
72 名前:nobodyさん mailto:sage [2009/03/10(火) 15:24:38 ID:???] >>69 >>1
73 名前:nobodyさん mailto:sage [2009/03/10(火) 16:02:30 ID:???] >>70 が言いたいのはこの現象だろう 1: class C extends B {} // 1: をコメントアウトすると動く 2: class B extends A {} 3: class A {} コンパイル時、 C は未定義のクラス B を参照しているので解決を保留する B もまた同様に保留され、A のみ定義した時点で終端に達しそのまま打ち切る そして実行時に入って再度 C>B を解決しようとするが B が未定義のままなので Class 'B' not found になる 1: をコメントアウトした場合は、B は A しか参照していないので実行時に解決できエラーも出ない ただ組み込みクラス、インターフェイスによって実行前解決が出来る出来ないの違いが出る理由は分からない ソースを追いかけられる人に任せる var_dump(class_exists('Klass', false)); // false var_dump(interface_exists('IA', false)); // true var_dump(interface_exists('IB', false)); // false interface IA {} // 実行前に解決 eval('interface IB {}'); // 実行時に解決 class Klass implements IA, IB {} // 未解決の IB があるので実行時まで解決を遅らせる var_dump(class_exists('Klass', false)); // true var_dump(interface_exists('IA', false)); // true var_dump(interface_exists('IB', false)); // true
74 名前:nobodyさん mailto:sage [2009/03/10(火) 16:16:23 ID:???] >>73 =>>70 本人乙
75 名前:nobodyさん mailto:sage [2009/03/10(火) 16:26:30 ID:???] >>73 それが不思議に思うのは、実装系以外におまいさんルールのほうが理想的とおもってるからじゃね? 普通に、実行時のロードされてるかどうかの違いでしかない > 組み込みも含めて。
76 名前:73 [2009/03/10(火) 17:02:25 ID:AQjjLY2m] >>75 遅延評価の一例上げただけだ、説明が下手なら悪い 俺がソースを読まないと説明できないと言ってるのは次の挙動 // SPL組み込みクラス true true var_dump(class_exists('ArrayObject', false), class_exists('XArrayObject', false)); class XArrayObject extends ArrayObject {} // SPL組み込みインターフェイス true false var_dump(interface_exists('ArrayAccess', false), interface_exists('XArrayAccess', false)); interface XArrayAccess extends ArrayAccess {} あと>>70 と俺は別人だからな、IDは出しとく
77 名前:nobodyさん mailto:sage [2009/03/10(火) 17:10:59 ID:???] >>76 それが説明できないって言ってるけど、何を説明してほしいんだ? あるがままだろ
78 名前:nobodyさん mailto:sage [2009/03/10(火) 17:13:24 ID:???] >>76 一応説明しとくか。 上のケース、 XArrayObjectはvar_dump評価時にすでにロードされてる。 下のケース XArrayAccessはvar_dump評価時にロードされていない。 よって、そのような動作になっている。
79 名前:73 [2009/03/10(火) 17:35:45 ID:AQjjLY2m] 分かりました質問としてやりなおします 【OS名】 Windows XP SP3, FreeBSD 6.4 【PHPのバージョン】 5.2.9, 5.3-dev, 6.0-dev 【質問内容】 組み込みのクラスとインターフェースで、 定義済みになるタイミングに違いが出る理由もしくは原因を教えて下さい ソースコードは>>76 です >>77 ,78のような観察日記な回答は要りません
80 名前:nobodyさん mailto:sage [2009/03/10(火) 17:43:40 ID:???] >>79 仕様です
81 名前:73 [2009/03/10(火) 17:49:35 ID:AQjjLY2m] >>80 仕様ですね、ありがとうございます
82 名前:nobodyさん [2009/03/10(火) 19:29:40 ID:U6ySWdbJ] 先輩方に質問です。 phpの掲示板を運営しているのですが、海外からの宣伝書き込みを阻止したいのですが、半角英数記号のみ書込禁止は↓の構文で大丈夫だったんですが、半角スペースが含まれると対応できません。。。 何か良い方法はありませんか? if (preg_match(\"/^[!-~]+$/\", 変数名))
83 名前:nobodyさん mailto:sage [2009/03/10(火) 19:49:22 ID:???] >>82 Akismet
84 名前:nobodyさん mailto:sage [2009/03/10(火) 20:30:26 ID:???] 逆の発想でひらがなかカタカナが含まれていなければはじくとか そっちの方が効率的だと思うよ
85 名前:nobodyさん mailto:sage [2009/03/10(火) 20:37:13 ID:???] >>82 \b
86 名前:nobodyさん mailto:sage [2009/03/10(火) 20:38:17 ID:???] 半角英数の書き込みができないその手の対策はもう去年までの話だろ 時代に取り残されるぜ
87 名前:nobodyさん mailto:sage [2009/03/11(水) 15:51:06 ID:???] やっておくのが無駄とは思わないけどな
88 名前:nobodyさん mailto:sage [2009/03/11(水) 16:49:42 ID:???] すいません。ラウンドロビンや負荷分散の説明見ました。 PHP側としてはどうしたらいいでしょうか? 同期ってレンタルサーバーの複数台プラントかは 勝手にやってくれるんですか?
89 名前:nobodyさん mailto:sage [2009/03/11(水) 16:50:50 ID:???] 当然
90 名前:nobodyさん mailto:sage [2009/03/11(水) 16:53:54 ID:???] ありがとう。複数台運営が将来の夢でしたので調べていました
91 名前:nobodyさん [2009/03/11(水) 17:14:13 ID:Txff9mTl] $a=isset($_REQUEST['b'])?$_REQUEST['b']:''; php学習2日目の名無しです このスクリプトの意味を教えていただけませんか
92 名前:nobodyさん [2009/03/11(水) 17:16:18 ID:L2Yi36ri] $a = 0; if($a === 0){ echo "ok"; }else{ echo ""; } で問題なく、okが出るのですが、 pdoで、$aをbindParamしたものを間に挟むと、elseしてしまいました $a = 0; ・・・ $result->bindParam(":A",$a,PDO::PARAM_INT); ・・・ if($a === 0){ echo "ok"; }else{ echo ""; } しかし、 $a == 0 とすればokでした。 原因は何なのでしょうかよろしくおねがいします php5.2.6 OS windows
93 名前:nobodyさん mailto:sage [2009/03/11(水) 17:16:19 ID:???] >>91 三項演算子
94 名前:nobodyさん mailto:sage [2009/03/11(水) 17:17:34 ID:???] >>87 やらなくていいって話ではなくて、それは古いって話だ 素人乙
95 名前:nobodyさん [2009/03/11(水) 17:27:49 ID:Txff9mTl] >>93 理解できました ありがとう
96 名前:nobodyさん [2009/03/11(水) 17:54:26 ID:aBj2wILp] PHPで、端末のOS・ブラウザ・IPなどを取得できるのは知っているんですが、固体識別番号(?)を取得することは可能でしょうか? 以前に、他人の家から漏れている無線LANの電波を悪用して、殺人予告したヤツが捕まりましたが、ノートPCリカバリ→他人の電波で殺人予告→再リカバリとやればバレないような気がします。 厨房質問でお恥ずかしいですが、よろしくお願いします
97 名前:nobodyさん mailto:sage [2009/03/11(水) 18:04:38 ID:???] 通報しました
98 名前:nobodyさん [2009/03/11(水) 19:13:57 ID:TxDdMOL9] 「最新記事一覧」とか「サイト内検索」とかの機能を プラグインとしてまとめて、下のようにして読み込んでいます。 $plugin_name = "new_list.php"; define("PLUGIN_DIR",プラグインまでのパス); if(file_exists(PLUGIN_DIR."/".$plugin_name)){ include PLUGIN_DIR."/".$plugin_name; newList(); //プラグイン内の関数を実行 } こうするとプラグインの数だけ毎回includeする事になるのですが 負荷がかからないか、後々めんどうなことにならないかと懸念しています。 自分では予測できないのですが、「こういうやり方だとこうなる」 というような指摘があれば、教えて下さい。
99 名前:nobodyさん mailto:sage [2009/03/11(水) 19:55:56 ID:???] >>96 リカバリしてもmacアドレス変わらないから無理じゃね?
100 名前:nobodyさん mailto:sage [2009/03/11(水) 20:05:36 ID:???] >>98 そういう時のためにinclude_onceとかrequire_onceという組み込み関数が用意されてるけど、負荷が高くなるのでお勧めしない なのでプラグインがクラスで実装されているなら、ファイル名とクラス名を統一しておいて $files = glob(PLUGIN_DIR .'/*.php'); foreach ($files as $file) { if (!class_exists(pathinfo($file, PATHINFO_FILENAME))) require $file; } などとすればいいんじゃない?
101 名前:nobodyさん [2009/03/11(水) 20:09:31 ID:BrBOeywI] 初めて書き込みさせて頂きます。 【OS名】Windows XP 【PHPのバージョン】php4.4.9 【連携ソフトウェア】Apache2.0.63, MySQL Server 6.3 【質問内容】 pearを導入したく、go-pear.batを実行して試みたのですが、 Extracting installer.................. Using local package: PEAR.............ok Using local package: Structures_Graph....ok Preparing installer.................. Warning: fopen(XML/RPC.php): failed to open stream: No such file or directory in C:\php\temp\PEAR\Remote.php on line 187 For this remote PEAR operation you need to load the xmlrpc extension or install XML_RPC 続行するには何かキーを押してください . . . というエラーが出てしまい、途中で止まってしまっているようです。 インストールされていないためにPEARコマンドも実行できません。 php.iniのinclude_pathにpearディレクトリへのパスや、extensions_dirなども 見直しましたが、他に何が悪いのかわからず困っております。
102 名前:nobodyさん mailto:sage [2009/03/11(水) 20:16:34 ID:???] 困っておりますじゃなくて、何が知りたいのか書けば? 困っておりますじゃぁ、「そうですか」としか言えない気もするが、 めっちゃ親切な人がいれば答えてくれるのかもしれんけど。 それはそうと、PHP5にして試してみたら? go-pearが古いのかもしれないよ。
103 名前:101 [2009/03/11(水) 20:34:19 ID:BrBOeywI] すみません、自己解決までには至っていませんが、少し先に進むことができました。 上記失敗の原因はphp.iniのphp_xmlrpc.dllがコメントアウトでした。 これを外し、必要となるiconv.dllをsystem32にコピーしてから試したところ、 PEAR_Remote (pear.php.net:80) : unexpected HTTP response という別のエラーが出るようになりました。 こちらの対処法を調べてみることにします。 >>102 その通りですね、失礼しました。 以後、質問の意図を明確にするよう注意しようと思います。
104 名前:認定回答者 [2009/03/11(水) 20:39:09 ID:nPJIwFx5] >>102 は素人だからスルーでおk
105 名前:nobodyさん mailto:sage [2009/03/11(水) 21:01:13 ID:???] >>104 他の回答者を格付けできるほどの立派な頭脳をお持ちなら、何故そこで最適解をお示しにならないのでしょうか? 不思議で仕方がありません><
106 名前:nobodyさん mailto:sage [2009/03/11(水) 21:18:55 ID:???] ファイルアップロードの質問です。 クライアントの方はJavaScript/VBScriptで、バイナリファイルをサーバー(PHP)へ アップロードしたいのですが、どのようにすればいいでしょうか? JavaScript は var xmlhttp = new ActiveXObject("MSXML2.XMLHTTP"); //XMLHttpRequest(); xmlhttp.open('POST', 'hoge/recieve ', true); xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xmlhttp.send('formdata=123'); とすると、PHPの方で'123'は取れるのは確認しました.問題はバイナリで、 "ADODB.Stream"でバイナリファイルを str=Read(); strをBase64変換しようとするのですが 使っている変換用モジュールが駄目なのかもしれませんが、ここでこけてしまいます。 まずはBase64変換でポピュラーなやり方を説明しているサイトなどありませんでしょうか お願いいたします。
107 名前:nobodyさん mailto:sage [2009/03/11(水) 21:46:49 ID:???] >>106 <input type="file">
108 名前:nobodyさん mailto:sage [2009/03/11(水) 22:14:08 ID:???] 任意のフォルダ名を入力させて、その中のファイルをULさせようとしております。 <input type="file">はひとつひとつファイル選択しないといけないので、、、
109 名前:nobodyさん mailto:sage [2009/03/11(水) 22:14:35 ID:???] >>105 必死だな
110 名前:nobodyさん mailto:sage [2009/03/11(水) 22:20:34 ID:???] ,..-─‐-..、 /.: : : : : : : .ヽ R: : : :. : pq: :i} |:.i} : : : :_{: :.レ′ ノr┴-<」: :j| /:r仁ニ= ノ:.ノ|! _ /:/ = /: :/ }! |〕) コツン {;ハ__,イ: :f | /´ / }rヘ ├--r─y/ / r'‐-| ├-┴〆 _, 、_ '⌒ ☆ 仁二ニ_‐-イ | | ∩`Д´) | l i 厂  ̄ニニ¬ ノ ⊂ノ >>108 ,ゝ、 \ \ __厂`ヽ (__ ̄) ) / /\_i⌒ト、_ ノrr- } し'し′ └-' ̄. | |_二二._」」__ノ
111 名前:nobodyさん mailto:sage [2009/03/11(水) 22:23:31 ID:???] ,..-─‐-..、 /.: : : : : : : .ヽ R: : : :. : pq: :i} |:.i} : : : :_{: :.レ′ ノr┴-<」: :j| /:r仁ニ= ノ:.ノ|! _ /:/ = /: :/ }! |〕) コツン {;ハ__,イ: :f | /´ / }rヘ ├--r─y/ / r'‐-| ├-┴〆 _, 、_ '⌒ ☆ 仁二ニ_‐-イ | | ∩`Д´) | l i 厂  ̄ニニ¬ ノ ⊂ノ >>109 ,ゝ、 \ \ __厂`ヽ (__ ̄) ) / /\_i⌒ト、_ ノrr- } し'し′ └-' ̄. | |_二二._」」__ノ
112 名前:nobodyさん mailto:sage [2009/03/11(水) 22:23:43 ID:???] >>10 8 氏ね
113 名前:98 mailto:sage [2009/03/11(水) 23:04:15 ID:???] >>100 こういうやり方、はじめて知りました! ちょっとよく分からない関するとかありますが、調べてみます。 ありがとうございました。
114 名前:nobodyさん mailto:sage [2009/03/11(水) 23:06:48 ID:???] <img src="xxx.com/xxxx.php?sz=160x240&type=11 "> サーバーを引っ越したらこういうような画像が表示ができなくなりました。 いろいろ試してみたところどうも引越し先のサーバーが上の表記のものを 画像として認識してないと思われます。 画像元は他サイトなのでいじれません。 どうすれば画像として認識してくれるのでしょうか? accessで何かすればいいのかなとは思っていますがどう書けばよいでしょうか ご教授お願いします。
115 名前:nobodyさん [2009/03/11(水) 23:32:05 ID:Co0l4rZT] >>114 どうかな? <? header("Content-type: image/gif"); $url = "xxx.com/xxxx.php?sz=160x240&type=11 "; readfile("{$url}"); ?>
116 名前:nobodyさん mailto:sage [2009/03/11(水) 23:47:01 ID:???] >>92 使用しているDBまた、どんなSQLを実行したか分からないけど、 bindParamは変数は参照としてバインドされるので、 メソッドの中でPDOドライバが何か余計なことをしたのかもしれないね。 bindParamの前後で、デバッガか、var_dumpで変数をチェックしてみては?
117 名前:114 mailto:sage [2009/03/12(木) 00:02:38 ID:???] >>115 できました!! ありがとうございます
118 名前:nobodyさん mailto:sage [2009/03/12(木) 00:11:31 ID:???] 初歩的な質問で恐縮です。 正規表現で複数回続く文字 。 を一回に置換したいです。 以下で試しましたがうまくいきません。 最長マッチ?のしかた教えて下さい。 mb_regex_encoding("sjis"); $text = "今日は木曜日です。。天気は晴れ。。。。"; $text = preg_replace("/。+/","。", $text);
119 名前:nobodyさん mailto:sage [2009/03/12(木) 00:22:47 ID:???] >>118 preg_replace('/(。)+/', '。', '今日は木曜日です。。天気は晴れ。。。。'); で、できた。 括弧が必要な理由は分からん。
120 名前:nobodyさん mailto:sage [2009/03/12(木) 00:23:56 ID:???] それじゃ”。”にしか対応できてへん
121 名前:nobodyさん mailto:sage [2009/03/12(木) 00:25:48 ID:???] >>119-120 できました。ありがとうございます。
122 名前:nobodyさん mailto:sage [2009/03/12(木) 01:21:32 ID:???] オブジェクト指向なるものを調べ始める ↓ みんなで開発するときは作業分担効率化 ↓ フレームワークを使うのが当たり前 ↓ ある程度自動でさくさくプログラム書けるらしい ↓ なんか自分でやった感がなさそうな気がしてモチベーション下がってきた・・・ まだ初心者すぎるし、ずっと手続き型でやるほうがいいのだろうか・・・ でも作業分担ですっきり綺麗にプログラムかけるのとか憧れるし、 そんなことができるなら今のうちにやっておいたほうがいいし、 でもプログラム自動生成とかになるらしい?からそれになれちゃうと、 今度は手続き型で覚えてきた基礎がおろそかになって忘れそうな部分が多そうで怖い・・・ 一体どうしたら
123 名前:nobodyさん mailto:sage [2009/03/12(木) 01:37:44 ID:???] 別に手続き型言語でもフレームワークとか自動生成とかあるだろ 問題を分けて考えるべきだ
124 名前:nobodyさん mailto:sage [2009/03/12(木) 01:54:01 ID:???] 一人OOPで作業分担もヘチマもないだろw
125 名前:nobodyさん mailto:sage [2009/03/12(木) 01:59:09 ID:???] 誰にも見せないプログラムでも 後から見て、 おお〜これは見やすくて編集しやすいな〜 みたいに言われそうなの書いてみたい
126 名前:nobodyさん mailto:sage [2009/03/12(木) 02:19:19 ID:???] >122 ・21世紀にもなってOOPができないエンジニアはゴミ ・OOPでないコードは、ひとりで書くコードでもゴミ ・「手続き型のコード」が何を指すか知らんが、PHPの文法はどのみち完璧にしないと何も出来ない ・個々のフレームワークの知識は要らん MVC構造とは何かを頭に叩き込んでから、必要なものを自分で書け OOP分かってない奴はクラス使っても糞コードしか書けないのと同じで、フレームワークを使おうが基礎が出来てない奴のコードはやっぱりクズだ ・ガタガタ抜かす前に動くコードを書けよハゲ 自動でサクサクできる?んじゃあやってみろよハゲ 手を動かさないエンジニアはゾウリムシ以下だ
127 名前:nobodyさん mailto:sage [2009/03/12(木) 04:31:24 ID:???] >>118 ,119 補足 mb_regex_encoding()はmb_ereg*()にしか適用されないので マルチバイト文字だと認識できていない事が原因 その例ならpreg_replace()ではなくmb_ereg_replace()を使う
128 名前:nobodyさん mailto:sage [2009/03/12(木) 09:10:37 ID:???] 今はアスペクト指向なんてものがあるんですよ
129 名前:nobodyさん mailto:sage [2009/03/12(木) 09:36:10 ID:???] 手続きとかオブジェクトとかアスペクトとか手段でしかないからそれありきで考えるなんてアホ 成果上げるためにどう開発するのがいいか個別に考えればええやん
130 名前:nobodyさん mailto:sage [2009/03/12(木) 09:55:01 ID:???] 開発速度を犠牲にしても初心者は手続きで何がどうなっているのかを ちゃんと見極めたほうがいい 仕事になればたいした技術もおそわらず FWとAPIの使い方を覚えさせられてラピッド開発させられるだけ 短期間で効率的に開発というのは業務では中核となる課題だが 結果ゆとりを多く生み出してる
131 名前:nobodyさん mailto:sage [2009/03/12(木) 11:25:18 ID:???] すいませんブログを作りたいのですが必要最低限の機能は以下でそろってますか? トラックバック 書き込み(コメント、記事投稿) ログ出力
132 名前:nobodyさん [2009/03/12(木) 11:26:19 ID:blHr3iRk] すいませんid出し忘れました
133 名前:108 mailto:sage [2009/03/12(木) 11:41:37 ID:???] さっさと回答しろよ初心者ども
134 名前:nobodyさん mailto:sage [2009/03/12(木) 11:46:49 ID:???] ブログに必要なものは ↓
135 名前:nobodyさん mailto:sage [2009/03/12(木) 11:48:27 ID:???] 根気
136 名前:nobodyさん mailto:sage [2009/03/12(木) 13:49:23 ID:???] >>131 最低限、カテゴリ別一覧とカレンダーと月別一覧は必要だろう
137 名前:nobodyさん mailto:sage [2009/03/12(木) 13:56:45 ID:???] >>136 最低限、占いとポストペットとログールは必要だろう
138 名前:nobodyさん mailto:sage [2009/03/12(木) 14:26:31 ID:???] ウェブログリングをお忘れでない?
139 名前:nobodyさん mailto:sage [2009/03/12(木) 17:18:46 ID:???] >>136 カテゴリ別一覧とかカレンダーとか月別一覧とか 生きた化石がこんなところにもいるんですね
140 名前:nobodyさん [2009/03/12(木) 17:39:53 ID:w9p/Xb/s] カテゴリ別一覧の仕組みがいまいちわからないんですけど どのような仕組みでしょうか?
141 名前:nobodyさん mailto:sage [2009/03/12(木) 17:50:28 ID:???] SELECT title,body,entrydate FROM entry WHERE categoryid=1;
142 名前:nobodyさん mailto:sage [2009/03/12(木) 17:52:19 ID:???] >>139 あなたは使いにくいものはかっこいいと勘違いしてるクリエイターさんですね
143 名前:nobodyさん [2009/03/12(木) 19:04:33 ID:y65Mhsc8] 配列から要素を抜き出し、その分を詰めたいのですが、どうするのがスマートですか? $array = array('a','b','c'); $str = pick($array,1); ↓ $array : array('a','c') $str : 'b' のような動作をさせたいです
144 名前:nobodyさん mailto:sage [2009/03/12(木) 19:11:59 ID:???] >>143 $str = $array[1]; unset($array[1]);
145 名前:nobodyさん mailto:sage [2009/03/12(木) 19:26:26 ID:???] unset使うコーディングはクズだな
146 名前:nobodyさん mailto:sage [2009/03/12(木) 19:26:42 ID:???] >>143 list($str) = array_splice($array, 1, 1); >>144 unsetは数値キーを再割り当てしない
147 名前:nobodyさん mailto:sage [2009/03/12(木) 19:44:54 ID:???] >>146 ありがとうございました
148 名前:nobodyさん [2009/03/12(木) 21:50:39 ID:Y3aY0Tvp] PHP+MYSQLで、MySQL寄りの質問になると思うんですが、 MySQLのスレッドがなかったので…。 スレ違いなら申し訳ないです。 [testテーブル] no(オートインクリメント) name 1・フォームからnameデータを受け取り、testテーブルにINSERTで入力。 2・その後すぐに、1の入力で作成されたレコードのnoを引き出す。 これを行うのに最適な方法はなんでしょう? nameはキーではなく重複する可能性があるのでnameでのselectは不可です。 とりあえず2で select * from test order by no desc limit 0,1 で取り出す方法を考えたんですが、 その場合1と2の間に一貫性?を持たせなければなりません。 この一貫性を保持させる方法がMySQLにあるのかPHPにあるのか・・・。 もしこの方法が最適なら一貫性を持たせる方法 (できれば例のコード)を教えてください。 また他に最適な方法があるならぜひお願いします。
149 名前:nobodyさん mailto:sage [2009/03/12(木) 21:53:28 ID:???] >>148 説明 int mysql_insert_id ([ resource $link_identifier ] ) 直近の INSERT クエリにより AUTO_INCREMENT カラム用に生成された ID を取得します。
150 名前:nobodyさん [2009/03/12(木) 22:12:31 ID:w9p/Xb/s] classの継承についてちょとよく分からないので質問です。 class Main{ function dbList(){ // MySQLから特定のテーブルリスト一覧を取得する } } class Sub extends Main{ function output(){ $list = $this->dbList(); // Mainからテーブルリストを取得 } function output2(){ $list = $this->dbList(); } } こういうclassがあったとして、Sub内のoutput()を実行すると MainのdbList()を実行することになりますよね? そしてoutput2でdbList()を使いたい場合、再度実行する事になりますよね? そうではなくて、Mainで設定した内容を使い回しするような事って出来ないのでしょうか?
151 名前:nobodyさん mailto:sage [2009/03/12(木) 22:29:49 ID:???] >150 function dbList(){ if(false === isset($this->dbList){ $this->dbList = mysql_fetch_なんとか(); } return $this->dbList; } 遅延初期化とか呼ばれるテクニックで、割と定石。 使いすぎるとカオスになるので、どの値をどのクラス/インスタンスで保持するかは慎重に検討したほうがいい。
152 名前:nobodyさん [2009/03/12(木) 23:11:07 ID:Y3aY0Tvp] >>149 まずint mysql_insert_id ([ resource $link_identifier ] ) について調べてみます。 助言本当にありがとうございます。
153 名前:nobodyさん [2009/03/12(木) 23:53:49 ID:ZuCT+g0F] file.txtにcsvで以下のように記録しました これからファイルからデータベースにデータを移し替えたいと思ってます id,name,age 1,木村,10 2,佐藤,20 3,木下,30 4,山田,40 5,坂本,50 mysqlを使用した場合でダイレクトにid2の佐藤さんのデータのみを取得するにはどうしたらよろしいでしょうか? ファイルですとforeachでまわしてexplodeで区切る感じで、データを全部読み込んで処理させてるのですが データベース使ってもデータは全部読み込んでまわして取得するのでしょうか?
154 名前:nobodyさん [2009/03/12(木) 23:59:52 ID:qegdPp88] タブ区切りのbbs.cfgからexplodeで設定値を取り出す このとき、配列の要素が100個ぐらいだとして、 こういう場合はいちいち使うものに変数名をつけるか、 それとも配列の[数字]でつかうのか、 どっちが一般的なんでしょ? こういう場合に限らず、一般的に他の言語とかでも たくさんの値を使う場合はどういう管理をしてるんでしょう??
155 名前:nobodyさん mailto:sage [2009/03/13(金) 00:15:24 ID:???] >>153 データーベースの場合は、 WHERE id=2 とかって指定すれば、id=2のデーターだけ 読み込める。
156 名前:nobodyさん mailto:sage [2009/03/13(金) 00:27:47 ID:???] >154 個数はあんま関係ないな。 論理的に「同じようなものが100個」ならば、100要素の配列を使う、というだけ。 例えば>153のデータが100行ならば、人間が100人なわけで、100要素の配列に格納するのは理にかなっているわけだ。 だが、列が3列だからといって、各行を3要素の配列で表現したりはしない。idと年齢は別の概念だからな。 たとえスリーサイズとか干支とか住所とかで各行の要素が何十とあったとしても、数字添字の配列にはしない。 $person[0] = array( 'id' => 1, 'name => '木村', 'age' => 10); $person[1] = array( 'id' => 2, 'name => '佐藤', 'age' => 20); みたいな連想配列に格納する。もしくはクラスを使う。 1行ずつ処理する場合も list($id, $name, $age) = explode(',', $line); みたいにやった方が、コードが読みやすいはず。
157 名前:nobodyさん mailto:sage [2009/03/13(金) 00:43:01 ID:???] >>154 >>156 俺は100も200もあって意味とか型とかが同一のデータなら(試験の点数など)、 いちいち列名なんてつけずに数字で扱うけどな。まあどっちもでいいんじゃね
158 名前:nobodyさん [2009/03/13(金) 11:07:13 ID:eI4NlDZU] classの中で変数を宣言するときvarにしようと思ったのですが どこかのサイトで、php5はvarは使うな的なことを書いてありました そのサイトどこか忘れてしまったのですが、varの他に何を使うのが適当なのでしょうか
159 名前:nobodyさん mailto:sage [2009/03/13(金) 11:28:27 ID:???] >>158 www.php.net/manual/ja/language.oop5.visibility.php > 注意: キーワード var で変数を宣言する PHP 4 の方法は、 > 互換性を保つために今でもサポートされています (これは public と同じ扱いになります)。 > PHP 5.1.3 より前では、 これを使用すると E_STRICT 警告が発生します。
160 名前:nobodyさん mailto:sage [2009/03/13(金) 13:37:40 ID:???] PHPである程度の量の文(300KBぐらい)を処理するために ヒアードキュメントを使っています。 フォームで処理すればコピペの時のスクロールが省けると思いフォームの POST経由で変数を処理しましたが100KBぐらいしか処理できません。 これはフォームの入力制限等があるからでしょうか?
161 名前:nobodyさん mailto:sage [2009/03/13(金) 14:01:14 ID:???] >>160 そんなことはないと思うぞ。ブログとか文章が長くて容量がでかいだろ。 おそらく、設計にミスがあるんじゃないか?
162 名前:nobodyさん mailto:sage [2009/03/13(金) 14:14:40 ID:???] >>153 DBの場合、主にSQL文を使う。その場合なら SELECT id,name,age FROM テーブル名 WHERE id = 2; こんな感じのSQLをデータベースに投げることによって、idが2のやつのデータを返してくる。 ファイルよりも細かい検索ができるからいろいろやってみると面白いよ。 詳しくはMySQLのオンラインマニュアルとかSQLの入門サイトを参照のこと。
163 名前:nobodyさん mailto:sage [2009/03/13(金) 14:17:06 ID:???] >>153 ufcpp.net/study/csharp/ap_ver3.html#linq
164 名前:nobodyさん [2009/03/13(金) 15:02:30 ID:6EGCx2Tu] PHPで痴漢、いやっ置換する関数などはありますか?
165 名前:nobodyさん mailto:sage [2009/03/13(金) 15:04:59 ID:???] str_replace preg_replace
166 名前:nobodyさん [2009/03/13(金) 15:05:04 ID:OOgBCn1Z] Cache_Liteを使って、 一つのフォルダに50万以上のページのキャッシュを保存してます。 今後も+1万/日のペースで増加します。 やはり、キャッシュを保存するフォルダは適度に分散した方がいいのでしょうか? 動作が遅くなる可能性はありますか。
167 名前:nobodyさん [2009/03/13(金) 15:19:24 ID:DZKgFtDb] classの中でevalを使う方法を教えていただけませんか 使えなかったらすみません class hoge{ var $hoge = eval("a"); } このようなエラーが返ってきます。Parse error: syntax error, unexpected T_EVAL
168 名前:nobodyさん mailto:sage [2009/03/13(金) 15:32:23 ID:???] eval(笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑
169 名前:nobodyさん mailto:sage [2009/03/13(金) 15:42:15 ID:???] class hoge{ var $a; function hoge(){ $this->a = eval... } } こうしてみたら? eval使ったことないけど。
170 名前:nobodyさん [2009/03/13(金) 16:00:26 ID:XJCetXbH] 自動で、毎日ある時間になったら、スクリプトを実行させたいのですが、 ループ文で四六時中、time()関数を実行して、設定した時間になったら、ループを抜け出しスクリプトを実行する、 というやり方はありですか?
171 名前:nobodyさん mailto:sage [2009/03/13(金) 16:06:22 ID:???] >>170 おぉ、その手があったか。是非、max_execution_timeの限界ってどのくらいか試してくれ。 でもそのスクリプト、ずーっと実行し続けられる保証がないよね? そしたらそれを定期的に監視するするスクリプトもそれで動かせばいいね。うんうん。
172 名前:nobodyさん mailto:sage [2009/03/13(金) 16:07:30 ID:???] 現実的には cron だな。
173 名前:nobodyさん [2009/03/13(金) 16:13:19 ID:DZKgFtDb] >>169 なるほど! 思いつきませんでした。ありがとうございます >>170 ものすごく負荷がかかると思います。 レンタルサーバーなら、コンパネからcron使えないですかね
174 名前:nobodyさん mailto:sage [2009/03/13(金) 16:19:46 ID:???] >>170 クライアントPCつけっぱなしか。電気代もったいないな
175 名前:170 [2009/03/13(金) 16:21:18 ID:XJCetXbH] レスありがとうございます。 まったくの入門者でwinで自鯖をやる予定です。 max_execution_timeというので、負荷がわかるわけですね、勉強になりました。 まだ、試してないんですが、cronだと細かい設定が出来ないですよね?
176 名前:nobodyさん mailto:sage [2009/03/13(金) 16:37:25 ID:???] >>174 ignore_user_abortがある >>175 工夫すれば負荷なんてそんなにかかんないよ。 1クライアント分消費するだけ。 max_execution_timeを無限設定して ignore_user_abortで起動して、forループにSleepを巨大な秒数でセットしてやれば。 あとは、プロセスを一つに絞るのに、どっかにPIDファイル作るとか
177 名前:質問させて下さい [2009/03/13(金) 21:45:58 ID:75Yme90V] php5.25です。 phpで下記を書いてます。 <?php $mainrss = array ( 'www.123.net/ ○○', '456.net/ ○○' ); ?> URLは取得できるようになるんですが、URLの後ろに短い紹介文を書きたいのですが、 カンマじゃなくて何を使ってあげるといいのでしょうか? ○○に短い紹介文を記入したいです アドバイスをお願いします。
178 名前:nobodyさん mailto:sage [2009/03/13(金) 21:48:38 ID:???] 意味が分からんけど=>でキーにでもすれば?
179 名前:質問させて下さい [2009/03/13(金) 21:50:51 ID:75Yme90V] >>178 レスありがとうございます。 下記のような感じで記入できたと思うんですが、思い出せなくて。 'www.123.net/ ','あいうえお',
180 名前:nobodyさん mailto:sage [2009/03/13(金) 21:56:15 ID:???] .
181 名前:質問させて下さい [2009/03/13(金) 22:06:25 ID:75Yme90V] >>180 レス有り難うございます! それでも無理でした 'www.123.net/, '123', でもだめでした。 難しいですね。
182 名前:nobodyさん mailto:sage [2009/03/13(金) 22:09:21 ID:???] カンマじゃなくてドットだって
183 名前:質問させて下さい [2009/03/13(金) 22:15:49 ID:75Yme90V] それでもだめでした。 レスを有り難うございます。 本を買ってきて勉強したいと思います。
184 名前:nobodyさん mailto:sage [2009/03/13(金) 22:25:13 ID:???] いや、つか何をしたかったの?
185 名前:nobodyさん mailto:sage [2009/03/13(金) 23:25:30 ID:???] >175 Unix/Linuxならcronだが、同じ事はWindowsではタスクスケジューラで実現する。 (Windows上で動くcronも存在するが) 無限ループを回すよりはこちらのほうがスマート。 「cronだと細かい設定が出来ない」の意味が良く分からんな。 1分以下の精度で実行タイミングを指定したい(12時30分15秒じゃないとダメなんだ!とか)とか言う意味ならcronの仕様上無理だが。 曜日指定とか時刻指定とかなら余裕で可能。cron覚えるのがダルいならスクリプト側で制御してもいいしな。 任意のスクリプトを動作させられるのだから、そのPC上で可能な事はなんだって出来る。
186 名前:nobodyさん mailto:sage [2009/03/13(金) 23:57:37 ID:???] >>176 >max_execution_timeを無限設定して 笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑 笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑 笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑 笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑 笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑 笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑
187 名前:nobodyさん mailto:sage [2009/03/14(土) 00:00:05 ID:???] >>177 $ary = array( array("url"=>"127.0.0.1","shoukai"=>"しょうかい1"), array("url"=>"yahoo.co.jp/ ","shoukai"=>"しょうかい2"), array("url"=>"2ch.net/ ","shoukai"=>"しょうかい3") );
188 名前:170 [2009/03/14(土) 01:07:17 ID:u9lyCe1c] 170です。レスくれた方ありがとうございます。 いまいちよくわからないので、もう少し勉強してからもう一度質問させて頂きます。
189 名前:質問させて下さい [2009/03/14(土) 07:04:33 ID:hOLVrRGN] >>187 わああああああ! レスありがとうございました。 このようにやりたかったです。 無事に出来ました!本当にありがとうございます。 phpの本は買って勉強をしておきます。
190 名前:nobodyさん mailto:sage [2009/03/14(土) 07:21:36 ID:???] >>189 >>178 勉強する前に人の話を聞け
191 名前:nobodyさん mailto:sage [2009/03/14(土) 11:14:07 ID:???] >>187 に超図解シリーズで本を出してもらうしかないな って、超図解の出版元って倒産してるのかよ!w
192 名前:nobodyさん [2009/03/14(土) 11:44:37 ID:sxFlkHR4] phpって一つの.phpに何行くらい書いても大丈夫なんでしょう 5000行くらいなら平気ですかね?もちろん文字数や処理にもよると思うのですが、 (適度に改行したとして)大体何行くらいに納めるみたいなのがあればよろしくおねがいします
193 名前:nobodyさん mailto:sage [2009/03/14(土) 11:51:38 ID:???] 特にないよ
194 名前:nobodyさん mailto:sage [2009/03/14(土) 13:20:33 ID:???] >192 俺の場合、1ファイル1クラスは死守。 1クラス500行上限が目安で、1メソッドは基本的にスクロールせずに全部見える分量に収める。 1ファイルが大きくなると、当然その分パフォーマンスに影響するし、保守もしづらい。
195 名前:nobodyさん mailto:sage [2009/03/14(土) 13:25:01 ID:???] 同サイズだったらファイル数が多い方がパフォーマンス悪くなるわ
196 名前:nobodyさん mailto:sage [2009/03/14(土) 13:43:06 ID:???] >>195 クラスローダーを書いて、頻繁に使うクラスはパッキングしてキャッシュすればOK
197 名前:194 mailto:sage [2009/03/14(土) 13:56:17 ID:???] >195 毎回毎回すべての処理を呼び出すならその通り。 だが、呼び出しの9割は参照系へのアクセスで、そのうち8割はトップページだ。 つうか、パフォーマンスなんぞどうでもいいんだけどな。管理しづらい、読みづらいというのが最大の問題点。
198 名前:nobodyさん mailto:sage [2009/03/14(土) 14:35:42 ID:???] 自分で書いたくせに何言ってんだお前www
199 名前:質問させて下さい [2009/03/14(土) 19:52:27 ID:hOLVrRGN] 2度目の質問失礼します。 file_getについてアドバイスをお願いします。 下記にするとエラーが出ます。 <?php echo mb_convert_encoding(file_get_contents("111.php"), "shift-jis", "auto"); ?> エラー内容 Warning: mb_convert_encoding() [function.mb-convert-encoding]: Unable to detect character encoding in 111.php on line 59 下記にするとエラーは出ません。 <?php echo mb_convert_encoding(file_get_contents("111.php"), "shift-jis", "shift-jis"); ?> "shift-jis", "shift-jis"と2重にしたんですが、おかしな書き方になるのでしょうか? 別の書き方がありましたら教えて下さい。
200 名前:nobodyさん mailto:sage [2009/03/14(土) 20:02:04 ID:???] >>199 >>190 に関しては?
201 名前:nobodyさん [2009/03/14(土) 20:37:03 ID:qjtwBjoL] キーと値の組み合わせとしてではなく、 array('a','b','c') のように値の羅列の形式で代入された配列の正式名称って何ですか?
202 名前:nobodyさん mailto:sage [2009/03/14(土) 20:44:32 ID:???] >>201 そのまんま配列 キーと組み合わせたのは連想配列
203 名前:nobodyさん mailto:sage [2009/03/14(土) 20:48:34 ID:???] >>199 file_get_contentsに設定するパラメータは以下だけです filename flags flags context offset maxlen よって君は何か勘違いをしている マニュアルをよく読みましょう
204 名前:nobodyさん mailto:sage [2009/03/14(土) 21:06:31 ID:???] 君が勘違いしている
205 名前:nobodyさん mailto:sage [2009/03/14(土) 21:10:32 ID:???] >199 111.phpのエンコードが事前に分かっているなら後者の書き方のほうが望ましい。 前者だと、間違ったエンコード判定がされた場合文字化けの原因になるしな。 Shift_JISからShift_JISに変換しているわけで、ヘンっちゃあヘン、というか無駄だな。 状況によっては100%無意味というわけでもないが… echo file_get_contents("111.php"); とほぼ同じ意味だ、というのは理解してるのかな。
206 名前:nobodyさん mailto:sage [2009/03/14(土) 21:36:24 ID:???] $hoge = "hoge"; var_dump($hoge); echo "<br>"; function hogehoge(){ $hogehoge = "hogehoge"; echo $hogehoge; } var_dump(hogehoge()); echo "<br>"; function hogehogehoge(){ return "hogehogehoge"; } var_dump(hogehogehoge()); の結果が、上から順に string(4) "hoge" hogehogeNULL string(12) "hogehogehoge" このNULLってどうしてでてくるんですか?><
207 名前:nobodyさん mailto:sage [2009/03/14(土) 21:41:55 ID:???] 値戻してないからだろ
208 名前:nobodyさん mailto:sage [2009/03/14(土) 21:44:54 ID:???] >206 $a = hogehoge(); $b = hogehogehoge(); として、$aと$bの中身をvar_dumpで見てみろ。
209 名前:nobodyさん [2009/03/14(土) 22:01:33 ID:fYsVSce/] >>207 hogehoge()の中にreturnをいれて、 function hogehoge(){ $hogehoge = "hogehoge"; echo $hogehoge; return "ho"; } にしたらNULLなくなりました>< ありがとうございました >>208 こうでしょうか>< $a = hogehoge(); $b = hogehogehoge(); var_dump($a); echo "<br>"; var_dump($b); 結果、 hogehogeNULL string(12) "hogehogehoge" になりました><
210 名前:nobodyさん [2009/03/14(土) 22:20:14 ID:S24jNTMx] <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <form method="post" action="<?php $_SERVER["PHP_SELF"]; ?>"> <input type="checkbox" name="bbb[]" value="かきくけこ"> あいうえお<br> <input type="submit" value="選択"> </form> <?PHP if(isset($_POST['bbb'])){ foreach ($_POST['bbb'] as $a){ print ($a); print "<br>"; } } ?> </body> </html> これで、ローカルで試すと問題なく動くのですが、 レンタルサーバーにアップロードして試すと 文字化けになります。なんででしょうか?
211 名前:nobodyさん mailto:sage [2009/03/14(土) 22:33:52 ID:???] >>210 自己レス サーバーのphp.ini の mbstring.internal_encoding = UTF-8を設定して 上書きしてファイルを再読み込みしてリトライしたらできた。 サーバーのデフォルトではEUCになってた。氏ね。
212 名前:質問させて下さい [2009/03/14(土) 22:37:16 ID:hOLVrRGN] >>203 そういうことについては全然勉強足りていないので頑張って覚えてみます。 アドバイス有り難うございます。 >>205 詳しい解説有り難うございます。 おかげでよく理解出来ました! 感謝しております。 >>200 意味がわかりませんでした。 失礼致しました。
213 名前:nobodyさん mailto:sage [2009/03/14(土) 23:02:29 ID:???] >>210 php_selfは推奨されてないのに使うバカ発見
214 名前:nobodyさん mailto:sage [2009/03/14(土) 23:43:47 ID:???] >>210 マルチ乙
215 名前:nobodyさん [2009/03/14(土) 23:52:54 ID:da46lvzd] トラックバックの送受信の処理を書こうと思うのですが もし既存のライブラリがございましたら教えてください
216 名前:nobodyさん mailto:sage [2009/03/14(土) 23:54:59 ID:???] >>215 google
217 名前:nobodyさん mailto:sage [2009/03/14(土) 23:56:50 ID:???] >>216 きも
218 名前:nobodyさん [2009/03/15(日) 00:05:25 ID:yySd7NKe] cliでpg_connectを実行したらSegmentation faultが出るんだけど。 PHP 5.2.6-2ubuntu4.1 with Suhosin-Patch 0.9.6.2 (cli) <?php $DB = pg_connect("host=$DbIp dbname=$DbName user=$DbUser password=$DbPass"); ?> これはうちの環境の問題なのか、誰か教えて欲しい。
219 名前:nobodyさん mailto:sage [2009/03/15(日) 00:27:37 ID:???] >>218 そりゃ変数に何も格納されてないなら無理だろ
220 名前:nobodyさん mailto:sage [2009/03/15(日) 06:06:20 ID:???] PHP5.3使ってるんですが、メモリ不足を例外処理みたく捕まえることってできますか? 方法をご存じの方がいらっしゃいましたら教えてください。
221 名前:nobodyさん [2009/03/15(日) 06:06:51 ID:+CIxhGml] >>220 sageちゃいました。すいません。
222 名前:nobodyさん mailto:sage [2009/03/15(日) 06:23:33 ID:???] 残念ながらそういうのは無い
223 名前:220 mailto:sage [2009/03/15(日) 06:27:45 ID:???] >>222 やっぱそうですか。 踏ん切りがつきました。ありがとう。
224 名前:nobodyさん [2009/03/15(日) 08:14:23 ID:yySd7NKe] >>219 書き方が悪かった。 実際の変数部分には正しい値が入る。 ちなみに接続も成功するしSQLの結果もかえってくる。 apacheで実行した時は何も問題ない。 でもcliの時だけfaultが最後に出るから悩んでる。
225 名前:nobodyさん mailto:sage [2009/03/15(日) 08:41:14 ID:???] >>224 使ってるphp.iniが違うとかはないの? それで落ちるかといえば疑問だけど。 とりあえずphpinfo() で使ってるphp.ini確認してみたら。 あとバージョンが違うライブラリにパスが通ってるとか。
226 名前:nobodyさん mailto:sage [2009/03/15(日) 08:44:40 ID:???] 実行ユーザーが違うので ・ログに書けないよエラー ・そのエラーログを書こうとしてエラー ・そのエラーログのエラーログを書こうとしてエラー ・その・・・・ とか。
227 名前:nobodyさん mailto:sage [2009/03/15(日) 09:24:05 ID:???] pc11.2ch.net/test/read.cgi/tech/1232712334/350- 前の子が来てる
228 名前:nobodyさん [2009/03/15(日) 09:58:53 ID:qN1+xeFs] foreachの中から、そのループが1回目か/最後か等を調べるいい方法を 教えてください
229 名前:nobodyさん mailto:sage [2009/03/15(日) 10:10:56 ID:???] >>228 いい方法かはわからないけど、 $i = 0; foreach(){ $i++; } みたいなやり方はだめなのかな count()を使えば配列の要素の数も得られるから、それで最後かどうかもわかるのでは
230 名前:nobodyさん mailto:sage [2009/03/15(日) 10:44:14 ID:???] >>225 ubuntuなんで、php.iniは別なんだけど設定は同じ。 ライブラリ系もまったく同じ。 今思ったけど、linux板で聞いたほうがいいのかも。 ちょっと移動してきます。 ありがとう。
231 名前:nobodyさん mailto:sage [2009/03/15(日) 11:14:01 ID:???] >228 無い。 ループの何巡目かが処理に影響するような場合はforを使え。
232 名前:nobodyさん [2009/03/15(日) 11:18:55 ID:Ok7zsTbr] セッションIDって基本的にはクッキーに保存されるじゃん じゃあ、クッキーが無い時代はどうやってたの?
233 名前:nobodyさん mailto:sage [2009/03/15(日) 11:23:01 ID:???] >>231 プログラミングに「ない」を考えるあなたの考えにナイワ
234 名前:nobodyさん mailto:sage [2009/03/15(日) 11:35:16 ID:???] >>232 パン。
235 名前:nobodyさん mailto:sage [2009/03/15(日) 11:38:48 ID:???] >>232 原初、最初にクッキーだけがあった したがってクッキーのない時代などない
236 名前:nobodyさん mailto:sage [2009/03/15(日) 11:47:29 ID:???] クッキー使えなくても埋め込みがある どっちも平文で送信されるから似たようなもんだ
237 名前:nobodyさん mailto:sage [2009/03/15(日) 12:18:21 ID:???] >>232 飛脚→伝書鳩→クッキー
238 名前:nobodyさん mailto:sage [2009/03/15(日) 14:33:41 ID:???] 本来、1つのクラスは、1つのファイルに分けるべきみたいなのを よくみるんだけど、数行程度でも?
239 名前:238 mailto:sage [2009/03/15(日) 14:40:11 ID:???] あ、そうか エラー見つけやすいから分けるのか とりあえず小分けにしておくわ
240 名前:nobodyさん [2009/03/15(日) 14:45:54 ID:L+gdJUIE] >>238 数行程度のクラスがわんさかあってもウザイと思うが
241 名前:nobodyさん [2009/03/15(日) 14:46:54 ID:L+gdJUIE] >>235 クッキーの無い時代もあったんじゃね? それよか、フォームすらなかった時代もあったんじゃね? ネットスケープ社が頑張って実装したんじゃね?
242 名前:nobodyさん mailto:sage [2009/03/15(日) 16:01:31 ID:???] >>241 おまえ大丈夫?
243 名前:nobodyさん [2009/03/15(日) 16:35:04 ID:L+gdJUIE] >>242 お前の方が大丈夫か?最初のHTMLは画像すら使えなかったって知ってるか?
244 名前:nobodyさん mailto:sage [2009/03/15(日) 18:44:14 ID:???] これ以上ない「ゆとり」と発言したくなるシチュ
245 名前:nobodyさん [2009/03/15(日) 18:46:33 ID:tXlRktlT] 複数行入力できるtextareaを使って入力してもらい それをmysqlのtext型としてinsertしました それをselectクエリで取り出して表示してみた所、改行されずに 表示されてしまうんですが、入力の時と同じように表示させる ためにはどうすればいいんですか?
246 名前:nobodyさん mailto:sage [2009/03/15(日) 19:00:19 ID:???] >>245 改行するには何がいるか?
247 名前:nobodyさん mailto:sage [2009/03/15(日) 19:05:30 ID:???] 昔はクックーもフォームも使えなかったことを知らないとは
248 名前:nobodyさん mailto:sage [2009/03/15(日) 19:08:08 ID:???] >>245 nl2br
249 名前:nobodyさん [2009/03/15(日) 19:25:38 ID:tXlRktlT] >>246 >>248 できました! こんな便利なものがあるなんて知らなかったです まだまだ勉強不足ですね がんばります ありがとうございました!
250 名前:nobodyさん mailto:sage [2009/03/15(日) 19:29:36 ID:???] PHPを使うにはサーバをレンタルすると思いますが、 無料のジオシティーズでもPHPが使えるみたいです。 金を払ってサーバをレンタルするとどういういいことがあるのですか? ttp://help.yahoo.co.jp/help/jp/geo/perl/perl-02.html
251 名前:nobodyさん mailto:sage [2009/03/15(日) 19:32:02 ID:???] >>249 独習PHPに載ってるよ
252 名前:nobodyさん mailto:sage [2009/03/15(日) 19:33:13 ID:???] >>250 (1) MySQLでPDOが使える(無料のところはPDO使えないことが多い) (2) 強制挿入される広告が消える (3) 場合によっては有料のところでは独自ドメインが使えるかも (無料でも一部使えるところはある)
253 名前:nobodyさん mailto:sage [2009/03/15(日) 19:34:26 ID:???] (4) sendomailが使える (無料のところではsendmailは無効化されていることがおおい) sendmailが使えないとメールが送れない。 PHPのmail関数は、サーバーのsendmailに仕事を 丸投げしているだけなので、sendmailが動いていないと 何も起きない
254 名前:nobodyさん mailto:sage [2009/03/15(日) 19:36:53 ID:???] >>250 使うってどういう状況で?
255 名前:nobodyさん mailto:sage [2009/03/15(日) 19:40:38 ID:???] DBやメールなんかでいろいろ制限があるんですね。 ありがとうございました。
256 名前:nobodyさん mailto:sage [2009/03/15(日) 19:44:18 ID:???] よく見たら、CGIを利用するには有料じゃないとダメですね。
257 名前:nobodyさん mailto:sage [2009/03/15(日) 19:50:20 ID:???] 無料/安価なサーバーはだいたい重い。 少数のサーバーに人を大量に詰め込むからな。 (そうしないと初期投資を回収できないので仕方ないが)
258 名前:nobodyさん mailto:sage [2009/03/15(日) 19:50:22 ID:???] ifの代わりにswitchを使ってやろうとしたのですが、 <?php $i = 3; switch($i){ case 0: case 1: case 2: case 3: case 4: echo "iは0〜4"; break; default: echo "iは不明"; break; } ?> これがもし、case 0:〜case 4:の部分で、 case 0:〜case 100:までを判断したいとき どういう風に記述すればいいのでしょうか。
259 名前:nobodyさん mailto:sage [2009/03/15(日) 19:53:05 ID:???] 100行書くしかないのでは?
260 名前:nobodyさん mailto:sage [2009/03/15(日) 19:53:58 ID:???] 横に繋げれば1行で済むのでは?
261 名前:nobodyさん mailto:sage [2009/03/15(日) 20:19:50 ID:???] なんでifにしないのか理解に苦しむ。
262 名前:nobodyさん mailto:sage [2009/03/15(日) 20:25:12 ID:???] iが0〜100までかを調べたいなら if ($i >= 0 && $i <= 100) { echo "iは0〜100"; } else { echo "iは不明"; } でいいのでは?
263 名前:nobodyさん mailto:sage [2009/03/15(日) 20:30:46 ID:???] >>251 宣伝乙
264 名前:nobodyさん mailto:sage [2009/03/15(日) 20:33:50 ID:???] >>258 switchでcaseが大量になる場合は配列をうまく利用することをおすすめする function func1() { } ・ ・ ・ $case = array(func1(),func2(),func3(),・・・・・func999), $case[0];
265 名前:nobodyさん mailto:sage [2009/03/15(日) 21:34:38 ID:???] >>264 www
266 名前:nobodyさん mailto:sage [2009/03/15(日) 22:37:58 ID:???] >>265 shosinsha otu
267 名前:261 mailto:sage [2009/03/15(日) 22:54:26 ID:???] >264 せめて $case = array('func1', 'func2', 'func3'); call_user_func($case[0]); // $case[0]();でも多分動く にしとけ。 とりあえずそのコードは実行効率、可読性、保守性などあらゆる観点で最低だ。 後者2つについてはこのコードも大差ないが。
268 名前:nobodyさん mailto:sage [2009/03/16(月) 01:35:07 ID:???] ふと思ったんだけど、例えば見栄え良く 改行いっぱい使って、 $hoge = "hoge1" . "hoge2" . "hoge3" ; こうしたのと、単に $hoge="hoge1hoge2hoge3"; ってしたのとでは、 上のような改行いっぱい使った場合のが 積み重なってくると、改行使ってないものよりも 読み込みが遅くなる? 改行やスペースは無視になるとはきくけどなんか不安なのです。
269 名前:nobodyさん mailto:sage [2009/03/16(月) 02:37:08 ID:???] >268 文字列の結合の分遅くなるな、理論上は。 改行も、確かに理屈の上では遅くなる。人間に知覚できる差じゃないけどな。 仮に10000行空行があったとしても、目に見える応答速度差は出ない。 1MB分改行があっても気づかないと思う。 つうか、お前は、ペーパー代を惜しんでウンコした後ケツを拭かなかったりするのか? ゴミみたいな高速化と可読性を天秤にかけるなら、どう考えても可読性を優先すべきだ。
270 名前:nobodyさん mailto:sage [2009/03/16(月) 06:04:33 ID:???] javaだと文字列リテラル同士の結合はコンパイル時にオプティマイズされて 結合された文字列になるんだっけか。 スクリプト言語で拘ってもしょうがないとは思うが、気分的にはやってほしいところではあるな。 APCとかのキャッシュ環境なら差がでるかも知れんし。
271 名前:nobodyさん mailto:sage [2009/03/16(月) 11:58:48 ID:???] 「PHPでOOPで書く場合の、helloが出てくるまでの長い一日」 (1)さーって、、、まんず、helloって出すわけだから、 print "hello"; だろ、、、これはまず100%確実、、、 (2)そんで、クラスの宣言せんといかんな、、、 class { } 、、、っと、、、 あ、、、クラス名、考えないといかんな、、、 はじめてのだから、firstでいいか? class first { }
272 名前:nobodyさん mailto:sage [2009/03/16(月) 12:00:24 ID:???] (3) そんで、さっきの print "hello"; を、メソッドの中に入れないといかんのだよな、、、 あ!メソッド名も考えないといかんのだよな、、、 helloを出すメソッドだから、helloでいいか? function hello(){ print "hello"; }
273 名前:nobodyさん mailto:sage [2009/03/16(月) 12:01:11 ID:???] (4) よしよし、、、作業は順調だな、、、 これで、このメソッドを、さっき作った クラスの中に、放り込めばいいのだよな、、、 class first{ function hello(){ print "hello"; } }
274 名前:nobodyさん mailto:sage [2009/03/16(月) 12:02:05 ID:???] (5) これでクラスは完成、、っと、、、 次は、このクラスをnewして、 オブジェクトに代入せなあかんのだよな、、、 $obj=new first();
275 名前:nobodyさん mailto:sage [2009/03/16(月) 12:03:00 ID:???] (6) よしよし、、、 これでインスタンスができたから、 このインスタンスから、->で、クラス内の メソッドにアクセスすればええんだよな、、、 print $obj->hello();
276 名前:nobodyさん mailto:sage [2009/03/16(月) 12:03:51 ID:???] >>274 括弧ついてるよ初心者クン
277 名前:nobodyさん mailto:sage [2009/03/16(月) 12:05:51 ID:???] (7) <?php class first{ function hello(){ print "hello"; } } $obj=new first(); print $obj->hello(); ?> 完成、、、と、、、。 カンタンに説明すると、 firstというクラスを定義しhello()というメソッドを定義し そのメソッドの中でhelloを出力する命令を書きnewでfirstクラスの インスタンスを作成しオブジェクト変数に代入しそのできてきた インスタンスからhello()メソッドにアクセスして最終的にhelloを 画面に出すことに成功しました。
278 名前:nobodyさん mailto:sage [2009/03/16(月) 12:06:40 ID:???] >>276 どちらでも実行できるんだけど、なんか問題あるなら それを解説したページをプリーズ
279 名前:nobodyさん mailto:sage [2009/03/16(月) 12:08:53 ID:???] ちなみに手続型でhelloを出すソースは以下の通り <?php print "hello"; ?>
280 名前:nobodyさん mailto:sage [2009/03/16(月) 12:10:12 ID:???] >>276 お前が初心者なのは分かった
281 名前:nobodyさん mailto:sage [2009/03/16(月) 12:19:32 ID:???] >>276 普通はつけます
282 名前:nobodyさん mailto:sage [2009/03/16(月) 12:21:35 ID:???] クラス使えばOOPってわけじゃないべ。
283 名前:nobodyさん mailto:sage [2009/03/16(月) 12:25:30 ID:???] つか全然OOPじゃないわな
284 名前:nobodyさん mailto:sage [2009/03/16(月) 12:29:26 ID:???] >>282 ものの考え方・概念のことだから本質的にはそうだね ただOOPの核となる継承やらカプセル化をする為にはクラスを使わないといけない helloを出力するだけにわざわざクラス使うのはPHPではただの冗長
285 名前:nobodyさん mailto:sage [2009/03/16(月) 13:00:26 ID:???] hello出力するだけのただの形ではあるから参考にならないなあ OOP勉強してる人いないの?
286 名前:nobodyさん mailto:sage [2009/03/16(月) 13:10:52 ID:???] >>285 一応、スレはある。 が、もう死にかけの体。 PHPでOOP ttp://pc11.2ch.net/test/read.cgi/php/1172205352/l50
287 名前:nobodyさん mailto:sage [2009/03/16(月) 13:11:01 ID:???] >>279 おお、さすが最強PHPw。 ハーディ・ラマヌジャン数を出力するプログラムは、 Cで書いても、実行に数十秒かかる。 perlやpythonに至っては数分以上かかる。 だが、PHPなら、一瞬。むしろ、計算する必要すらない。 <?php echo "1729"; ?> もちろん、パクリネタだ。
288 名前:nobodyさん mailto:sage [2009/03/16(月) 13:25:45 ID:???] >>285 本気で勉強したいならJavaでやったほうがいいって散々言われてるだろ オブジェクト指向という考え方を理解するためだけなら わざわざPHPでやる必要はない OOPに関するドキュメントの多いJavaでやったほうがいい PHPでOOPなんてJavaやC#なんかをやってるやつの為にあると思っていい
289 名前:nobodyさん [2009/03/16(月) 15:26:16 ID:zNDXWAna] くだらない質問ですがお願いします。 ($a < $b) ? $key = $a : $key = $b; これの意味がちょっとわからないのですがif文で表すことってできますか?
290 名前:nobodyさん mailto:sage [2009/03/16(月) 15:33:02 ID:???] if ($a < $b) { $key = $a; } else { $key = $b; }
291 名前:nobodyさん mailto:sage [2009/03/16(月) 15:33:12 ID:???] $key= ($a < $b) ? $a : $b; 普通はこう書く if ($a < $b) $key= $a; else $key= $b;
292 名前:nobodyさん [2009/03/16(月) 15:52:09 ID:zNDXWAna] >>290 >>291 なるほど!ありがとうございます。 ちなみに>>289 の書き方とif使った書き方、どっちがいいとかあるのですか?
293 名前:nobodyさん mailto:sage [2009/03/16(月) 15:59:13 ID:???] >>292 上記のような簡単なif文なら三項演算子でもいいと思うけど、複雑なものになると 可読性が落ちるので、その場合は素直にif文で済ませた方がよい
294 名前:nobodyさん mailto:sage [2009/03/16(月) 16:01:19 ID:???] >>292 三項演算子は変数に入れることができる なので結果を変数に入れたいときとかは便利だが 条件文をかくためだけに使うなら可読性を重視して 普通のif-else文を使ったほうがいい 三項演算子なんてなくてもコーディングできるので 他の人と共同開発なんかの場合は使わないほうがいい
295 名前:nobodyさん [2009/03/16(月) 16:34:41 ID:zNDXWAna] >>293 >>294 ありがとうとざいました。 使わないほうがよさそうですね。
296 名前:nobodyさん [2009/03/16(月) 16:46:33 ID:TMtB/4sw] オープンな掲示板へのスパム投稿をブロックするにはどうしたらいいでしょうか? メジャーな方法だとcaptchaを入れるんでしょうが、他に方法あったら教えてください。 たとえば、スパム業者(国内・国外問わず)のIPリストなんかはないんでしょうか? よろしくお願いします
297 名前:nobodyさん mailto:sage [2009/03/16(月) 16:49:43 ID:???] >>296 そのリストがあったら既に大手ブログサービス業者は導入して平和になってるはずだよな
298 名前:nobodyさん mailto:sage [2009/03/16(月) 17:14:59 ID:???] >>296 基本的な対策として 本文中のhttp://文字列を禁止する もしくは出てくる回数を制限する (最近はttp://からはじめたりドメインからはじめたりするスパムもある) 文字がどういうもので構成されてるかを見る 日本語[あ-ん]が必ず入っていないと駄目とか [\x00-\x7f]のみの文字列だったら駄目とか (最近は文章の最後のほうに日本語を適当に入れてくるスパムもある) スパムをあえて投稿させてパターンを分析し 自分でリストを作成する(IPなり禁止文字列なり) (IPはできればサーバ側ではじく) このほかによく見る方法としては ひらがなに対応するカタカナを入力してもらうとか (captchaはすでに効果がないので代替手段を) 他の閲覧者にスパムかどうかを判定してもらってJavaScriptで非表示にする (youtubeなんかで見るパターン) とかかな いずれも限界があるので閲覧者に被害が出ないようにだけ配慮すればいいんじゃない? そういう観点では誤クリ防止にhttp://のオートリンクをしないとかが一番効果的
299 名前:nobodyさん mailto:sage [2009/03/16(月) 17:19:04 ID:???] どれもいまいちな方法だな
300 名前:nobodyさん mailto:sage [2009/03/16(月) 17:21:48 ID:???] >>299 いまいちでない方法をどうぞ
301 名前:nobodyさん mailto:sage [2009/03/16(月) 17:28:15 ID:???] あなたはスパム業者ですか? はい いいえ ↑これを入力させればいい
302 名前:nobodyさん mailto:sage [2009/03/16(月) 17:30:34 ID:???] >>301 天才
303 名前:nobodyさん mailto:sage [2009/03/16(月) 17:55:37 ID:???] 2chはどうやってんだろ?
304 名前:nobodyさん [2009/03/16(月) 18:04:29 ID:GOOX8xiJ] PHPで効率化を突き詰めていくと、 MVCを考えた、フレームワークのような形になるのですが、 やっぱり皆さんもそうですか?それとも最初からフレームワーク使いますか?
305 名前:nobodyさん mailto:sage [2009/03/16(月) 18:06:47 ID:???] >>298 日本語が入ってないとダメってのはもう古い 日本語スパムははじけないよ
306 名前:nobodyさん mailto:sage [2009/03/16(月) 18:10:14 ID:???] やっぱり、画像認証(ランダムの数字を入力するやつ) しか対処できないんじゃないか? ライブラリも多いし、作るのも難しくないだろ。
307 名前:nobodyさん mailto:sage [2009/03/16(月) 18:21:17 ID:???] >>303 2chは管理に協力してる人間がいっぱいいるから 手動でどうにかなるレベルなんだよ
308 名前:nobodyさん mailto:sage [2009/03/16(月) 18:49:09 ID:???] PHPの初心者用参考書をちょっと読んだだけの初心者です register_globalsをonにするとセキュリティ上よくなく また、PHP6からはonにすることができなくなると聞きました そこで質問なのですが、ハイパーリンクにごとにページの内容を変えたり 処理の内容を変えたりしたい場合は他にどのような方法があるのでしょうか 質問とは関係ないのですがスパム対策で 1 + 2 = [ ] といのを見たことがありますね (数値は画像でランダムでした
309 名前:nobodyさん mailto:sage [2009/03/16(月) 19:11:39 ID:???] >>308 基本的には POST あるいは GET メソッドでクエリを渡して、その値に応じて処理を分ける。 ハイパーリンクでなら GET 。
310 名前:nobodyさん [2009/03/16(月) 19:21:10 ID:TMtB/4sw] >>298 たくさんの意見ありがとうございます カタカナをひらがなにっていうのはいいですね! キャプチャの文字列をカタカナにするってのは無理なんでしょうか?
311 名前:nobodyさん mailto:sage [2009/03/16(月) 19:25:46 ID:???] スクリプトでは理解できない&日本人にしかわからないような 質問をランダムに生成できればいいんだが 質問と答えがあらかじめ決まってるようなものだとそのうち解析されるし 画像のひらがなをみてカタカナにしろぐらいだとCaptcha解析技術応用すれば 解析したひらがなに対応するカタカナに置き換えればできちゃうし 完全な対策なんてないからどこかで妥協するしかない いろんなことやった上でなんとかして投稿してやろうなんて考える 海外のスパマーなんてそうはいないよ 仮にいろんな対策をした上で変なのが投稿されたらそれは日本人の愉快犯だ というわけでそんな神経とがらせてスパマー対策しなくてもいいんじゃないだろうか
312 名前:nobodyさん mailto:sage [2009/03/16(月) 19:32:15 ID:???] >>310 できますよ そういうライブラリは探せばあるんじゃないかな? 単に文字を画像に出力するだけなら簡単なんですけどね 画像をゆがめたりする処理が難しいんじゃないかな
313 名前:nobodyさん mailto:sage [2009/03/16(月) 21:48:57 ID:???] 普通にCAPTYAいれとけば?
314 名前:nobodyさん mailto:sage [2009/03/16(月) 21:50:47 ID:???] ちなみに2ちゃんがやってるのは、、、 (1)書き込みをしようとしてきたら、クッキーを 受け入れてるかどうかを確認する。クッキーないやつは 書き込みできない (2)書き込みしてきようとしたサーバーに簡易ポートスキャンをかけ、 オープンプロキシでないことを確認する。もしオープンプロキシだったら拒否 (3) プロキシからの書き込みについては、手動で リストを作成して、そのリストにIPが載っていたら、拒否。 こんな感じ。一部だけど。
315 名前:nobodyさん [2009/03/16(月) 23:05:32 ID:l8gT672P] セッションを使って、 ログインしないと見れないページを作ったんだが、 画像はどうやって守ればいいんだ?
316 名前:nobodyさん mailto:sage [2009/03/16(月) 23:07:02 ID:???] >296 >297 DNSBL(DNSブラックリスト)でぐぐれ スパムちゃんぷるーが手軽
317 名前:nobodyさん mailto:sage [2009/03/16(月) 23:21:56 ID:???] >>315 そこでPHPですよ
318 名前:nobodyさん [2009/03/16(月) 23:35:54 ID:l8gT672P] >>317 PHPで画像を送出するってことかな? ぐぐったけど具体的なコードがわからない
319 名前:nobodyさん mailto:sage [2009/03/16(月) 23:51:20 ID:???] 2行でおk ヘッダ送信 readfile()で出力
320 名前:nobodyさん mailto:sage [2009/03/16(月) 23:53:20 ID:???] セッションも処理しないとwwwwwwwwww
321 名前:nobodyさん [2009/03/17(火) 00:28:16 ID:PIugUbr/] $sql = "SELECT name FROM address"; $res = mysql_query($sql); $row = mysql_fetch_array($res); echo $row["name"]; こうしたらMySQLから1行取得出来ますが、もっと簡略化する方法は無いでしょうか? 特に、結果が1行・1フィールドだと分かっている場合、 mysql_fetch_arrayをして一旦配列に入れるのは不効率な気がしています。
322 名前:nobodyさん mailto:sage [2009/03/17(火) 00:35:15 ID:???] echo (mysql_fetch_array(mysql_query("SELECT name FROM address")))["name"];
323 名前:nobodyさん mailto:sage [2009/03/17(火) 00:38:22 ID:???] >321 SELECT name FROM address LIMIT 1 配列に代入云々は数マイクロ秒とかのゴミみたいな差しかつかない。 こいつは測定可能なレベルで実行性能に影響する。
324 名前:321 mailto:sage [2009/03/17(火) 01:11:49 ID:???] >>323 >>321 のようなテーブルにアクセスして、指定値を取得する関数を 作っているのですが、 321のソースでフィールド「name」が異なる場合、 echo $row["name2"]; というように名称を指定して出力しなければいけません。 まぁ、関数を function dbSelect($fld_name){ echo $row[$fld_name]; } とすれば良いだけの気がしますが、 何か良い関数があるのかと思い、質問しました。
325 名前:nobodyさん mailto:sage [2009/03/17(火) 02:58:59 ID:???] 1からCMS作ろうと思います。 応援よろしくお願いします
326 名前:nobodyさん mailto:sage [2009/03/17(火) 03:15:35 ID:???] がんば〜
327 名前:nobodyさん mailto:sage [2009/03/17(火) 07:54:44 ID:???] >>324 PDOが使用可能であれば… jp.php.net/manual/ja/pdostatement.fetchcolumn.php
328 名前:nobodyさん mailto:sage [2009/03/17(火) 08:04:24 ID:???] 実はおれもCMS自作してるけど ネックなのは一度もCMSを使ったことがないことだ・・
329 名前:nobodyさん mailto:sage [2009/03/17(火) 09:18:29 ID:???] CMSを使ったことがない人がCMS作っても劣化品にしかならない
330 名前:nobodyさん [2009/03/17(火) 10:44:32 ID:Ib1RB6YL] キーワード自動リンクの仕組みを作っています。 データベースなどに以下のようなデータがあるとします。 id,word 1,日本 2,日本海 3,日本海溝 4,太平洋 これらを辞書として、 ・日本海溝は太平洋側にあります。 という文章に最長で一致するものからリンクを張っていくのですが、 <a href="word/3"><a href="word/2"><a href="word/1">日本</a>海</a>溝</a>は<a href="word/4">太平洋</a>側にあります。 のように、重複してリンクが張られてしまいます。 すでにリンクが張られている言葉の内側にはリンクを張らないようにしたいのですが、 どのような対処法が考えられますでしょうか? PHPで処理する場合の対処法を教えてください。
331 名前:nobodyさん mailto:sage [2009/03/17(火) 11:14:15 ID:???] マッチさせてるコードは?
332 名前:nobodyさん mailto:sage [2009/03/17(火) 11:32:03 ID:???] $words = array( array( 'id' => 1, 'term' => '日本' ) ); 辞書がこんなかんじの配列にあって、 foreach ($words as $word) { str_replace($word['term'], '<a href="word/' . $word['id'] . '">' . $word['term'] . '</a>', $body); } 辞書は単語の文字数の長い順にソートさせてあります。 実際のコードとは違うのでどこか変かもしれませんが、流れはこんな感じです。 単純に、辞書の配列をforeachさせて、 str_replaceでアンカータグをつけたものに置き換えているだけです。 なので、重複して置き換えられてしまうのは当然なのですが、 対処法が思い浮かばなくて; よろしくお願いします。
333 名前:nobodyさん mailto:sage [2009/03/17(火) 11:33:23 ID:???] すみません、訂正です; × str_replace($word['term'], '<a href="word/' . $word['id'] . '">' . $word['term'] . '</a>', $body); ○ $body = str_replace($word['term'], '<a href="word/' . $word['id'] . '">' . $word['term'] . '</a>', $body);
334 名前:330 [2009/03/17(火) 11:34:31 ID:Ib1RB6YL] >>332 >>333 ID出し忘れました・・・スレ汚してすみません;
335 名前:nobodyさん [2009/03/17(火) 11:45:00 ID:PBdJ+iXh] 宜しくお願いします。 【OS名】Windows XP 【PHPのバージョン】php4.4.4 【質問内容】 『−』を含んだ文字列を preg_match で検索するとエラーが発生するのでキーワードを preg_quote で処理すると 『ホームページ』が『ホ―[ムペ―[ジ』となってしまいます。 お知恵を貸して下さい。お願いします。
336 名前:nobodyさん [2009/03/17(火) 11:48:44 ID:Vq5xUXrn] >>335 mb_internal_encoding('utf8'); mb_regex_encoding('utf8');
337 名前:nobodyさん [2009/03/17(火) 11:49:06 ID:qY/TJCjN] たまにGDでjpeg画像を処理した時にエラーが出て何も描かれてないjpeg画像がブラウザに出る時があるんだけど そのエラーを表示しない方法はphp.iniで指定するってのは分かった。 これでエラーは出なくなったわけだが、画像はやっぱり出ない。 どうやらいつも同じファイルを処理した時にエラーになるので 画像ファイル側の問題だと思うけど これをうまく処理する事はできるの? そもそも何でこんなエラーがでるの? 知ってる人 教えてYO!
338 名前:nobodyさん mailto:sage [2009/03/17(火) 11:53:27 ID:???] その画像をうpれ
339 名前:nobodyさん mailto:sage [2009/03/17(火) 12:02:31 ID:???] >>335 はやく5に移行しろよ
340 名前:nobodyさん [2009/03/17(火) 13:22:05 ID:PBdJ+iXh] >>336 さん。 有難う御座います。 mb_regex_encodingでUTF-8にしてもやはりホ―[ムペ―[ジとなってしまいます。 >>339 さん。 まだ勉強中の為に5への以降は難しいです…
341 名前:nobodyさん mailto:sage [2009/03/17(火) 13:33:39 ID:???] まず検索する対象とキーワードの文字コードを把握できてないと解決できんぞ
342 名前:nobodyさん mailto:sage [2009/03/17(火) 14:22:48 ID:???] 4で勉強してから5にうつるより、最初から5で勉強しちゃったほうがいいような気もするんだけど。
343 名前:nobodyさん mailto:sage [2009/03/17(火) 14:23:55 ID:???] 4とか過去の汚物なんだから使う価値0
344 名前:nobodyさん mailto:sage [2009/03/17(火) 15:16:01 ID:???] 移行ってほど変わらんだろ。さっさと5使え
345 名前:nobodyさん [2009/03/17(火) 15:52:24 ID:s4aiV5Ak] 質問です。 このサイト(みんなのキャンパス:campus.nikki.ne.jp/ ) のように掲示板の情報を一部だけ閲覧することができ、 登録・ログイン後に情報をある程度投稿すると全ての情報が閲覧できるような 会員制サイトを作成したいと思っています。 WordPressやOpenPNEで色々試したのですがいまいちうまくいきません。 こういうものは、どうやったら実現できるのでしょうか? よろしくお願いします。
346 名前:nobodyさん mailto:sage [2009/03/17(火) 15:55:22 ID:???] if (未ログイン) { 一部表示処理 } else { 全表示処理 }
347 名前:nobodyさん mailto:sage [2009/03/17(火) 16:03:10 ID:???] CMSで駄目なら何をやっても駄目な気がする とりあえず Wordpress の方なら is_user_logged_in() でログインしてるかどうか調べられるよ
348 名前:nobodyさん mailto:sage [2009/03/17(火) 16:22:38 ID:???] >>345 フレームワークで作るという手もある。
349 名前:nobodyさん mailto:sage [2009/03/17(火) 16:56:04 ID:???] フレームワーク使っているかもしれないけど、 各プラグインは自作しなければいけないからな。 俺も自作システムを作る時にWordpressやらOpenPNEやらを見たけど、 やっぱり「目的の仕様に合った作り方」をしているので、 それらを改造してオリジナルのシステムを作るのは無理があるよ。
350 名前:345 [2009/03/17(火) 17:04:11 ID:s4aiV5Ak] みなさんご回答有難うございます。 質問の仕方が悪くて申し訳ありません。 みんなのキャンパス:campus.nikki.ne.jp/ というサイトは登録後ログインしても、 大学の講義情報を3件書き込まないと全ての情報を見ることができません。 このように書き込まないと掲示板の他のページが見れない、といったように するにはどういった処理が必要なのでしょうか? よろしくお願いします。
351 名前:335 [2009/03/17(火) 17:08:29 ID:PBdJ+iXh] >>341 さんとレスを頂いた皆さん。 お陰で解決致しました。有難う御座います。 出来るだけ早く5に以降するよう努力致しますf^^; 有難う御座いました!
352 名前:nobodyさん mailto:sage [2009/03/17(火) 17:13:30 ID:???] >>350 そこがどんな風な実装をしてるかは知らないけど。 ユーザー情報に「書き込んだ回数」を記録する。 一緒に「全ての情報を見れる権限」もフラグとしてDBに記録しておいて、書き込み回数が3回を越えた時点で true にする。 で、ページを表示するときにその権限を持ってるか持ってないかを判断する。
353 名前:nobodyさん mailto:sage [2009/03/17(火) 17:17:13 ID:???] 俺だったら「書き込んだ回数」か「全ての情報を見れる権限」のどちらかしか属性作らないな
354 名前:nobodyさん mailto:sage [2009/03/17(火) 17:22:32 ID:???] >>353 確かに書き込み回数だけでも十分だな、すまん。
355 名前:330 [2009/03/17(火) 17:37:21 ID:Ib1RB6YL] >>330 の回答をどなたかお願いできませんでしょうか?
356 名前:nobodyさん mailto:sage [2009/03/17(火) 17:44:56 ID:???] >>355 自分がどうやってるか書いてないよな。推測すると、再帰でpreg_matchでもやってんのか? まぁ、それはいいや。 単語リストをベースにトークナイザーにかけて処理するのがいいと思うよ。
357 名前:345 [2009/03/17(火) 18:00:29 ID:s4aiV5Ak] >>352 さん >>353 さん、回答下ったみなさん、有難うございました! 2ちゃんねるはじめてだったのですが回答いただけてうれしかったです。 なんとなく方向がわかったので色々やってみます。
358 名前:330 [2009/03/17(火) 18:07:06 ID:Ib1RB6YL] >>356 すみません; >>332 に書いたのですが、IDを出し忘れてしまって・・・ 恥ずかしながら、トークナイザーというのをはじめて聞いたのですが、 どういったものなのでしょうか? PHPには、その機能は備わっているのでしょうか?
359 名前:nobodyさん mailto:sage [2009/03/17(火) 19:00:40 ID:???] wikiのソース参考にしてみたら?
360 名前:nobodyさん mailto:sage [2009/03/17(火) 19:31:59 ID:???] >>330 アルゴリズムの問題だと思うけど、マッチングした文字列をいったん置き直して、展開しなすとかしたら? 日本海溝は太平洋側にあります。 <3>は太平洋側にあります。 <3>は<4>側にあります。 みたく文字列を順次置き直して、あとから <id>をリンクつきのHTMLで展開。
361 名前:330 [2009/03/17(火) 19:43:02 ID:Ib1RB6YL] >>359 それだけの力があればそうしたいのですが・・・ 基本的な考え方だけでもお願いしたいです。 >>360 おぉ!そういう方法がありましたね。 しかし、元の文章に<1>という文字列が含まれていた場合、面倒なことにならないでしょうか? 元の文章は、ユーザーが自由に投稿できる類のものなので・・・ <<<1>>>のように、括弧を増やしたり、!?!1!?!のように、複雑なものにすれば 出現する確立は減らすことができるのでしょうが、それでも0パーセントではないですし・・・ おっしゃるとおり、PHPに関する質問という範囲を超えているかもしれませんが、 どうかお付き合いお願いしたいです。
362 名前:nobodyさん mailto:sage [2009/03/17(火) 19:51:31 ID:???] キーワードをrsortして順にリンク外文字列に対して処理していけばいい
363 名前:nobodyさん mailto:sage [2009/03/17(火) 19:51:53 ID:???] ユーザの投稿に<1>があったら\<1\>とかにまず置き換えればいいじゃん そんで>>360 の処理のあとにもとにもどせばよい
364 名前:nobodyさん mailto:sage [2009/03/17(火) 20:07:16 ID:???] >>330 優先順位が悪い 1,日本海溝 2,日本海 3.日本 の順でループして探索して見つかったら置き換えてbreakして位置を記録 最後に置き換えた位置から同様にして探索 これをEOFに達するまで繰り返す
365 名前:364 mailto:sage [2009/03/17(火) 20:10:19 ID:???] ごめんよくよく考えたら非効率だな 忘れてくれ
366 名前:330 [2009/03/17(火) 21:04:12 ID:Ib1RB6YL] >>362 リンク外かどうかの判定の仕方がわからなくて・・・ >>360 さんに提示していただいたように、特殊な記法に置き換える方向で行こうかと思います。 >>363 そうでした!一度エスケープのような処理をすればよかったのですね! ・・・これでなんとか解決したように思ったのですが、今度は、辞書に<id>という単語が含まれていた場合に、 問題が発生しました。 たとえば、辞書にこんな感じの単語があると、 id,word 5,<3> 長いものから置き換えるので、 まず「日本海溝」が<3>に置き換えられ、 その後、「<3>」がふたたびマッチしてしまい、 <5>に置き換えられてしまいます。 最終的に出力されるのは <a href="word/5"><3></a> になってしまいます。 意外と難しいですね; >>364 位置を記憶するというのはやってみたのですが、 文字数の長い順に出現するとは限らないのでだめでした・・・;
367 名前:nobodyさん mailto:sage [2009/03/17(火) 21:13:49 ID:???] >>366 そもそも最終的に生成するHTMLにタグじゃない < > を入れてどうする気だ。 テキストとキーワードにあらかじめhtmlspecialchars しておけばいいやん。
368 名前:366 [2009/03/17(火) 21:20:04 ID:Ib1RB6YL] >>367 そうでした;; キーワードもエスケープ処理しておくことでうまくいきました! おかげさまで、当初の目的が達成できました。 もっと精進します・・・w レスをくれたみなさん、ありがとうございました!
369 名前:nobodyさん mailto:sage [2009/03/17(火) 21:26:48 ID:???] キーワードは最長一致させるのが原則。 "WEBプログラミング"なら、"WEB"や"プログラミング"より "WEBプログラミング"の方が指定がより明確だから重要度が高いよね。 それに最長一致なら被らない。 処理の重さに関しては、保存時はゆっくり反映で良いので問題ない。 はてダみたいに、外部リンクのサイトのタイトルの文字列まで取得して 投稿を書き換えようとするのは外部サイトの都合で時々タイムアウトしてるけど、 自鯖の中でのリンクの置き換え程度なら、よっぽどキーワード数が多いとかじゃなければ タイムアウトはまず起こらない。 キーワードを使うケースの場合、ROMユーザーが書き込むユーザーより圧倒的に多いし そうでなければそのサービスは成り立たないから、ROMユーザーに対して 内容がキャッシュされてれば投稿時はかなり重い処理でも構わない。
370 名前:nobodyさん mailto:sage [2009/03/17(火) 21:29:46 ID:???] またWikiやはてなみたいなスパムサイトが増えるのか。
371 名前:nobodyさん [2009/03/17(火) 23:09:10 ID:whdlEm3/] array('a'=>'b','c'=>'d') を array('a','b','c','d') にする簡単な方法があれば教えて下さい
372 名前:nobodyさん mailto:sage [2009/03/17(火) 23:25:11 ID:???] >>371 foreach( $oldarray as $key => $value ){ array_push( $newarray, $key ); array_push( $newarray, $value ); }
373 名前:nobodyさん mailto:sage [2009/03/17(火) 23:50:49 ID:???] >>371 $newArray = array_merge(array_keys($oldArray), array_values($oldArray));
374 名前:nobodyさん mailto:sage [2009/03/17(火) 23:52:05 ID:???] ああこっちだったわ $newArray = array_keys($oldArray) + array_values($oldArray);
375 名前:nobodyさん mailto:sage [2009/03/18(水) 02:04:43 ID:???] pc11.2ch.net/test/read.cgi/php/1236265877/ こっちで懐かしいやつが暴れてるぞ
376 名前:nobodyさん [2009/03/18(水) 03:57:38 ID:Zcgp4DkA] 文字列がintとして妥当かどうか調べるにはどうしたらいいですか?
377 名前:nobodyさん mailto:sage [2009/03/18(水) 04:05:19 ID:???] 死ぬほど既出
378 名前:nobodyさん mailto:sage [2009/03/18(水) 08:50:19 ID:???] 「intとして妥当」を説明してみろ。
379 名前:nobodyさん mailto:sage [2009/03/18(水) 09:22:56 ID:???] is_numeric is_int のことじゃないかとエスパーしてみる
380 名前:nobodyさん mailto:sage [2009/03/18(水) 09:24:58 ID:???] is_intは型判定だろ
381 名前:nobodyさん mailto:sage [2009/03/18(水) 09:39:50 ID:???] /) ///) /,.=゙''"/ / i f ,.r='"-‐'つ____ こまけぇこたぁいいんだよ!! / / _,.-‐'~/⌒ ⌒\ / ,i ,二ニ⊃( ●). (●)\ / ノ il゙フ::::::⌒(__人__)⌒::::: \ ,イ「ト、 ,!,!| |r┬-| | / iトヾヽ_/ィ"\ `ー'´ /
382 名前:nobodyさん mailto:sage [2009/03/18(水) 10:52:55 ID:???] >>376 正規表現で調べればよい if (preg_match("/^[0-9]+$/", $string)) { 妥当 }
383 名前:nobodyさん mailto:sage [2009/03/18(水) 10:55:30 ID:???] >>382 それだとunsigned intじゃ...
384 名前:nobodyさん mailto:sage [2009/03/18(水) 11:00:44 ID:???] 負も調べたいってこと? なら if (preg_match("/^-?[0-9]+$/", $string)) { 妥当 } かな
385 名前:nobodyさん mailto:sage [2009/03/18(水) 11:03:09 ID:???] ちなみに指数表記やInfinityまで対応というなら またパターンを増やせばよい
386 名前:nobodyさん mailto:sage [2009/03/18(水) 11:07:58 ID:???] あと厳密にintならPHPの場合何バイトかしらないけど(たぶん4?) その辺も考慮しないといかんかな strlenで32ビット以内かどうか調べる処理とか
387 名前:nobodyさん mailto:sage [2009/03/18(水) 11:10:31 ID:???] strlenは関係ない 2^32を2の補数で表した値の範囲かどうかだな ?2147483648〜2147483647
388 名前:nobodyさん mailto:sage [2009/03/18(水) 11:22:00 ID:???] preg_match("/^-?[0-9]+$/", $string) && $string >= -2147483648 && $string <= 2147483647
389 名前:nobodyさん mailto:sage [2009/03/18(水) 11:46:44 ID:???] $は改行にもマッチするから、D修飾子を付ける それから、0123は整数か?
390 名前:nobodyさん mailto:sage [2009/03/18(水) 12:01:38 ID:???] >>388 厳密な数値かはわからないよね だってそれだと下のどれでも引っかかるからね 123 -123 "123" "-123"
391 名前:nobodyさん mailto:sage [2009/03/18(水) 12:13:56 ID:???] つ[:digit:]
392 名前:nobodyさん mailto:sage [2009/03/18(水) 12:33:33 ID:???] 質問者があいまいなまま補足してくれないのにこぞって答えなくても
393 名前:nobodyさん mailto:sage [2009/03/18(水) 13:00:35 ID:???] 0xa0 だって立派にint型を表現した文字列として妥当といえるよねー
394 名前:nobodyさん mailto:sage [2009/03/18(水) 13:17:37 ID:???] 答えるのが簡単だからだろ?
395 名前:nobodyさん mailto:sage [2009/03/18(水) 13:24:34 ID:???] 死ぬほど既出だけどな
396 名前:nobodyさん mailto:sage [2009/03/18(水) 13:27:19 ID:???] テンプレ守ってる以上答えてやってもいいだろ いちいちグチグチ言うやつは黙ってればいい
397 名前:nobodyさん [2009/03/18(水) 14:23:57 ID:R7u4YHhc] なぜimagecreatefrombmpは無いんですか? デジカメとかだとBMPで出力するカメラも結構有るし需要あると思うけど。 ビットマップからイメージ作れるユーザー関数ありますか?
398 名前:nobodyさん mailto:sage [2009/03/18(水) 14:25:50 ID:???] >>397 User Contributed Notesの一番上
399 名前:nobodyさん [2009/03/18(水) 14:47:40 ID:meKzf6DJ] クラス内のメソッドはだいたい何行くらいで収めるのが目安でしょうか?
400 名前:nobodyさん mailto:sage [2009/03/18(水) 15:58:45 ID:???] 50行くらい
401 名前:nobodyさん mailto:sage [2009/03/18(水) 16:21:37 ID:???] >>399 そんなのきまってない
402 名前:nobodyさん mailto:sage [2009/03/18(水) 16:42:30 ID:???] hightide.blog2.fc2.com/blog-entry-146.html
403 名前:nobodyさん mailto:sage [2009/03/18(水) 17:10:10 ID:???] >>399 画面半分に納めるのはよいプラクティスだって昔だれかがいってた。 スクロールしないと見れないメソッドはクソの匂いがするとも。
404 名前:nobodyさん mailto:sage [2009/03/18(水) 19:19:39 ID:???] >>392 ザコは黙ってろ
405 名前:nobodyさん mailto:sage [2009/03/18(水) 19:20:32 ID:???] >>399 pearのコーディング規約に1行何文字程度に収めるか決めてるから参考に読んでこれば
406 名前:nobodyさん mailto:sage [2009/03/18(水) 19:48:17 ID:???] 1行あたりの文字数と メソッドを何行に収めるかの話が 関係あるのか?
407 名前:nobodyさん mailto:sage [2009/03/18(水) 20:07:04 ID:???] 掛け軸ぐらいな縦長のモニタだったら余裕だなw
408 名前:nobodyさん mailto:sage [2009/03/18(水) 20:37:37 ID:???] フォントを1ドットにしてもいいぞ
409 名前:nobodyさん mailto:sage [2009/03/18(水) 21:09:42 ID:???] >>406 既に答えが出てるだろ ゆとりかおまえ
410 名前:nobodyさん mailto:sage [2009/03/18(水) 21:14:44 ID:???] お前は何を言ってるんだ
411 名前:nobodyさん mailto:sage [2009/03/18(水) 22:22:03 ID:???] >>410 はゆとりだから気にしなくていいよ
412 名前:nobodyさん [2009/03/18(水) 23:15:59 ID:gf2MXR+O] 本運用のリモートのunix系鯖か、 開発のローカルのwinかで、 デバッグ云々用とかで判別するのは if (DIRECTORY_SEPARATOR == '/') { ... で問題なし?
413 名前:nobodyさん mailto:sage [2009/03/19(木) 00:18:23 ID:???] 開発環境をunixにしたくなったら詰むな。 それと、Win環境で本番環境同様の状態をエミュレートしたくなった場合も身動きが取れなくなる。 function isDevelopEnvironment() とかをどこかグローバルにアクセスできる場所(グローバル関数か、クラスのstatic関数)に置いとけ。 他の場所からはこの関数で判定するようにしておけば、判定方法が変わっても変更が一箇所で済む。 実装と意図の分離は設計の基礎。 呼び出し側でやりたい事(意図)は環境の判別なのだから、関数名はそうなっているべき。 環境を識別するのにDIRECTORY_SEPARATORを使う、ってのは実装の話で、意図じゃない。 (もっと言うなら、開発環境がWinで運用環境がUnixなのも「たまたまそうなってる」だけの、つまり実装依存な話) で、実装の話だが。 俺ならホスト名を開発環境と本番環境で変えておいて、それで識別する。もしくは設定ファイルか何かに書いておく。 WinとUnixを識別できればそれでいい、ってんなら>412で問題ない。 php_uname()関数の例にもディレクトリ・セパレータでOSを判別するコードが載っている。
414 名前:nobodyさん mailto:sage [2009/03/19(木) 00:19:30 ID:???] >>379 それ。 is_numeric()は"."を許したよーな気がする。 気をつけたほうがいいよ〜 D:\tools\php-5.2.8-Win32>php -r "var_dump( is_numeric( '1.5' ) ) ;" bool(true)
415 名前:nobodyさん mailto:sage [2009/03/19(木) 00:31:24 ID:???] ((string)(int) $string === $string) これはどう?int判定
416 名前:nobodyさん mailto:sage [2009/03/19(木) 00:34:08 ID:???] PHP_OS
417 名前:nobodyさん mailto:sage [2009/03/19(木) 00:35:21 ID:???] >>399 行数っていうのとは違うけど コメントを書かなくていいくらいに分かり易い っていうのを目安にするといいっていう考え方もあるね。 コメントで「○○を処理する」とか入れるくらいなら そのまとまりをprivateなメソッドにする感じ。 まぁ好き嫌いもあるけどねー。
418 名前:nobodyさん mailto:sage [2009/03/19(木) 00:46:01 ID:???] >>285 OOPっていう概念よりも そもそもプログラミングにおいてクラス使うと何が便利? って考えたほうが分かりやすいかもしんない。
419 名前:nobodyさん mailto:sage [2009/03/19(木) 00:49:33 ID:???] DIRECTORY_SEPARATORでOS判定なんてどう考えてもスジが悪いだろ 常識で考えて・・
420 名前:nobodyさん mailto:sage [2009/03/19(木) 01:56:19 ID:???] >>414 ctype_digit でいいんじゃないの、バージョン注意だけど
421 名前:nobodyさん [2009/03/19(木) 09:10:09 ID:8+csUcRF] fsockopenのテストをしているのですが、 ローカルのサーバ(localhost)上ではオープンできないのでしょうか? if(!$sock = fsockopen("localhost",80,$errNo,$errStr,10)){ echo "エラーです"; } として開こうとしても、エラーになります。
422 名前:nobodyさん mailto:sage [2009/03/19(木) 09:28:15 ID:???] なんのために$errNoと$errStrを指定してるんだ
423 名前:421 mailto:sage [2009/03/19(木) 09:32:30 ID:???] localhostを127.0.0.1にしたら出来ました・・。
424 名前:nobodyさん mailto:sage [2009/03/19(木) 09:39:19 ID:???] もしかして環境はVistaか? 最近のアップデートで、hostsを書き換えてlocalhostを消すものがあったと話題になってた。 3/10のWindows Defender更新でhostsが書き換えられる!? - スラッシュドット・ジャパン ttp://slashdot.jp/articles/09/03/11/0924257.shtml
425 名前:nobodyさん [2009/03/19(木) 11:06:59 ID:GwakzSEQ] 【PHPのバージョン】php5.2.8 【質問内容】 クラスのメンバ変数についての質問です。 あるメンバ変数が宣言されたかどうかを調べるにはどうしたらよいでしょうか? 代入はされていないのでissetではダメでした。
426 名前:nobodyさん mailto:sage [2009/03/19(木) 11:10:22 ID:???] get_object_vars もしくは get_class_vars
427 名前:425 mailto:sage [2009/03/19(木) 11:16:32 ID:???] >>426 超速でありがとうございます さっそくテストコードにかかってきます。
428 名前:nobodyさん mailto:sage [2009/03/19(木) 11:18:46 ID:???] is_nullのほうがいいよ
429 名前:nobodyさん mailto:sage [2009/03/19(木) 11:37:30 ID:???] issetのほうがいいよ
430 名前:nobodyさん mailto:sage [2009/03/19(木) 12:38:06 ID:???] 普通こっちじゃねぇの。 jp.php.net/manual/ja/function.property-exists.php
431 名前:nobodyさん mailto:sage [2009/03/19(木) 13:18:49 ID:???] h1タグの部分を置換したいです。 もっと、スマートの方法ありますか? (h1の要素は不特定、ない場合もあります。) <?php $file = " <html><body> <h1 id=\"news\" name=\"news\" style=\"size: medium;\">WBC速報</h1> <p>4回裏 2 - 0</p> </body></html> "; preg_match_all('/<h1[^>]*?>(.*?)<\/h1>/is',$file , $match); $tag = $match[0][0]; $title = $match[1][0]; $file = str_replace($tag,"<div>{$title}</div>", $file); echo $file; ?>
432 名前:nobodyさん mailto:sage [2009/03/19(木) 13:21:15 ID:???] 訂正 スマートな方法
433 名前:nobodyさん mailto:sage [2009/03/19(木) 13:32:20 ID:???] >>420 ctype_digitってマイナス値の場合falseになるから使えなくね
434 名前:nobodyさん mailto:sage [2009/03/19(木) 14:15:42 ID:???] >>431 何に置換したいのか書いてないよ あと>>1
435 名前:nobodyさん mailto:sage [2009/03/19(木) 21:43:36 ID:???] まだやってんのか。 strval(intval($str)) === $str でいいだろ、面倒くせえ。
436 名前:nobodyさん mailto:sage [2009/03/19(木) 22:14:40 ID:???] >>435 これはひどい
437 名前:nobodyさん mailto:sage [2009/03/19(木) 23:11:37 ID:???] >>420 その関数はバグがあるから使い物にならない
438 名前:nobodyさん mailto:sage [2009/03/20(金) 04:10:54 ID:???] phpspot.org/blog/archives/2009/03/phpblog.html
439 名前:nobodyさん mailto:sage [2009/03/20(金) 04:22:45 ID:???] >>438 この人前も誰かにつつかれてキレてたよなw
440 名前:nobodyさん mailto:sage [2009/03/20(金) 08:33:43 ID:???] 三行でまとめてくれ
441 名前:nobodyさん mailto:sage [2009/03/20(金) 08:38:37 ID:???] お前と同じで内容もロクに読まずに転載してるだけですよ、と言ってあげたい
442 名前:nobodyさん mailto:sage [2009/03/20(金) 08:40:35 ID:???] phpspotのアフィ厨がきもいのは確かだが、 「悪名高きda.me..@docomo.ne.jpを引っ掛ける一方で、dankogai+regexp@gmail.comを弾いてしまう」 ってのはどうなん? ドキュモでda.me..@docomo.ne.jpが取得できる以上、 それをウェブアプリ側ではじくわけにはいかないじゃん RFCを守るべきはdocomoであって、ウェブアプリは現実に準拠するしかない
443 名前:nobodyさん mailto:sage [2009/03/20(金) 08:45:13 ID:???] phpspotの人は正規表現について語らないほうがいいのでは labs.cybozu.co.jp/blog/akky/archives/2007/10/phpspot-bad-regex.html このトラウマを刺激されたから過剰反応したんだなw
444 名前:nobodyさん mailto:sage [2009/03/20(金) 08:47:16 ID:???] Diggのトップページやdel.icio.us/popularで表示されたページの概要を訳しているだけなんだから、 せめて自分で確かめてから紹介しようよw >>phpspot
445 名前:nobodyさん mailto:sage [2009/03/20(金) 08:57:25 ID:???] >442 dankogai+regexp@gmail.com はRFCに準拠している。 ドキュモを弾くかはか方針次第だが、このアドレスを弾いてはいけない。 元々phpspotの提示していたコードが役に立たないのは確か。 出力例が「正しいかもしれない」「間違ってるかもしれない」な事からも明らか。 こういうのは「絶対正しい」「間違ってるかも」、もしくは「正しいかも」「絶対間違ってる」のいずれかを返さなければ糞の役にも立たん。
446 名前:nobodyさん mailto:sage [2009/03/20(金) 09:47:11 ID:???] 準拠してようがおれはそんなメアドは通さねーぞwwwwwwwwwwwwwwwww
447 名前:nobodyさん mailto:sage [2009/03/20(金) 09:59:17 ID:???] ttp://d.hatena.ne.jp/elf/20060809/1155100104
448 名前:nobodyさん mailto:sage [2009/03/20(金) 10:02:52 ID:???] プロバイダのメールアドレスをなるべき通したい場合は別にそこまでこだわる必要なし +\とか記号を入れるメアドなんて普通の人は持ってないだろ
449 名前:nobodyさん mailto:sage [2009/03/20(金) 10:23:25 ID:???] >448 なんというか、ここにも馬鹿が多いな。 「食べやすい大きさに野菜を切るには」という記事に「カレーは野菜が大きいほうが美味しい」とか言ってるようなものだぞ、それ。
450 名前:nobodyさん mailto:sage [2009/03/20(金) 10:31:42 ID:???] それ話が通ってるじゃん
451 名前:nobodyさん mailto:sage [2009/03/20(金) 10:49:03 ID:???] RFCに準拠してさえすればいいってもんじゃない
452 名前:nobodyさん mailto:sage [2009/03/20(金) 10:50:52 ID:???] >>449 プロバイダやgmailを除いたメジャーなアドレスで記号付きのメールアドレスを取得できる所教えてください
453 名前:nobodyさん [2009/03/20(金) 11:54:25 ID:MICYHS4W] 【OS名】debian etch 【PHPのバージョン】php5.2.0-8 PukiWiki Plus!で「ajaxtree.inc.php」プラグインを使おうとしたのですが キャッシュファイルの作成が正常に行われず色々と調べてみていたところ 下記の部分でよくわからない動きをしていることがわかりました。 (ajaxtree.inc.php 198行目付近) foreach ($pages as $page) { if ($leaf[$page] === false) { plugin_ajaxtree_update_cache($page); } echo $page . " " . $leaf[$page] . "<br>\n"; //debug } 具体的には「plugin_ajaxtree_update_cache」関数が一度でも実行されると その時点でループが終わってしまい配列の残りの要素が処理されなくなってしまうといった感じです。 (関数から戻ってきたあとのechoまでは処理されています) ループ後の「$pages」の値には特に変化が無く、エラーも発生していませんでした。 なぜforeachが途中で止まってしまうのかわからずに困っています。 この場合、どういった原因が考えられるのでしょうか?
454 名前:nobodyさん [2009/03/20(金) 11:55:01 ID:uQ1BNnXR] トラックバックやpingの受信機能を作っています。 fsockopenで送信されたPOSTやGETを受け取ると思うのですが、 連続送信防止の処理って入れられるのでしょうか? WEBページのフォーム処理からだと、cookieで制御できると思うのですが fsockopenは出来ないような気がしています。
455 名前:nobodyさん mailto:sage [2009/03/20(金) 12:00:40 ID:???] >>453 display_errors error_reporting >>454 内容を比較すればいいのでは?
456 名前:nobodyさん mailto:sage [2009/03/20(金) 12:02:10 ID:???] ゴガギーン ドッカン m ドッカン =====) )) ☆ ∧_∧ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( )| |_____ ∧_∧ < おらっ!出てこい>>449 「 ⌒ ̄ | | || (´Д` ) \___________ | /  ̄ | |/ 「 \ | | | | || || /\\ | | | | | へ//| | | | | | | ロ|ロ |/,へ \| | | | | ∧ | | | |/ \ / ( ) | | | |〈 | | | | / / / / | / | 〈| | | / / / / | | || | | / / / / =-----=-------- | |
457 名前:nobodyさん mailto:sage [2009/03/20(金) 12:06:26 ID:???] 小飼の正規表現はda.me..@docomo.ne.jpを通せないだろ RFCに準拠するばかりで現実で使えないんじゃ同じようにクソ
458 名前:453 [2009/03/20(金) 12:31:15 ID:MICYHS4W] >>455 ありがとうございます。 該当するコードに特にエラーなどは発生していませんでしたが解決しました。 配列を関数の戻り値の参照として受け取っていたためおかしな挙動をしていたようでした。 $pages =& plugin_ajaxtree_get_pages(); 失礼いたしました。
459 名前:449 mailto:sage [2009/03/20(金) 12:38:12 ID:???] docomoの非準拠アドレスを通すかとか、gmailの無限アドレスを通すかとかは、メールアドレス正規表現とは別の問題だろ? 実装の問題じゃない。ビジネスロジックの問題だ。何をどこまで許容するかは技術の問題じゃない。 コーディングする奴が勝手に決めてはいけない問題だし、従って前提条件が提示されないと「正しい」コードなんぞ書けっこない。 何が「正しい」のか、仕様が決まってないんだから当たり前だな。 「正しい」メールアドレスを「RF2822準拠」と定めるなら、PHPSPOTや百式のコードは明白に間違っていて、小飼のコードは正しい。 docomoの非準拠アドレスを許容しなければいけない、とか、gmailの無限アドを拒否しないといけない、という条件下なら小飼のコードは間違っているだろう。 実際、小飼の出力メッセージはちゃんと「RFCに準拠しているか」で出るだろ。 あのコードが解こうとしている判定問題は「RFCに準拠しているか」であって、「一般社会で通用するメールアドレスか」じゃない。 それをてめえらは勝手に問題を取り替えてガタガタ抜かしてるだけなんだよ。これだからPHPerは馬鹿だとか言われるんだ。 RFCに準拠していないアドレスが通ったり、準拠しているアドがNGだったら文句を言うべきだが、それ以外は筋違いだ。
460 名前:nobodyさん mailto:sage [2009/03/20(金) 12:41:36 ID:???] じゃなんで正規表現をblogに書いちゃいけないの?
461 名前:nobodyさん mailto:sage [2009/03/20(金) 12:47:51 ID:???] >>459 RFCに準拠してる正規表現はブログに書いてもOK RFCに準拠してない現実に即した正規表現はブログに書いたらNG ってことですね、わかります
462 名前:nobodyさん mailto:sage [2009/03/20(金) 13:09:05 ID:???] >>459 ってブログの張本人だろ
463 名前:nobodyさん mailto:sage [2009/03/20(金) 16:03:22 ID:???] >>459 自分ルールを持ち出したのは「PHPer」とか言って悦に入っている人だよな。 っていうか誰この人?
464 名前:nobodyさん mailto:sage [2009/03/20(金) 16:20:44 ID:???] ほとんどの無料有料サービスの登録時にRFCに100%準拠されたメアドは使えない件
465 名前:nobodyさん mailto:sage [2009/03/20(金) 16:21:47 ID:???] ._-0-9a-zA-Zぐらいしかたいていのサービス登録では使えない件 何が言いたいかというとRFC必死だな(笑)
466 名前:nobodyさん mailto:sage [2009/03/20(金) 18:48:51 ID:???] 弾もPHPERも文末判定に$を使っているが $は行末判定なので最後に改行コードが付いてても通ってしまう。 ちゃんと\zを使えよ 弾&phpspotともどもm9(^Д^)プギャー!
467 名前:nobodyさん mailto:sage [2009/03/20(金) 18:51:14 ID:???] $が末尾の改行コードに一致するのってPHPだけじゃなくて?
468 名前:nobodyさん mailto:sage [2009/03/20(金) 18:56:31 ID:???] preg_matchはperl互換だからそれはないだろ
469 名前:nobodyさん mailto:sage [2009/03/20(金) 19:01:48 ID:???] perlが死滅した、といっても、 ある程度のシェアを取った言語なので、 perlの正規表現の文法は他の言語にも そのまま受け継がれていくわけだな。 つまり勉強したことが無駄にならず 再利用できると。 シェアととると、こういう「いいこと」があるんだよな。
470 名前:nobodyさん mailto:sage [2009/03/20(金) 20:16:44 ID:???] 何年か前にperl厨が騒いでた その上でどんなスクリプトでも走るエンジンみたいのどうなったんだよ えーこら
471 名前:nobodyさん [2009/03/20(金) 22:34:03 ID:oZ8fGjsV] javascriptがオンかオフかの情報を知りたいのですがどのような方法が妥当かわかりません 以下のような方法も考えたのですがページを移動するか更新しないとクッキーを読めないので困ってます どなたかアドバイスお願いいたします javascriptでクッキーを発行する ↓ クッキーが読み込めたらjavascriptがオン・読み込めなければオフ
472 名前:nobodyさん mailto:sage [2009/03/20(金) 22:44:55 ID:???] >471 処理の順序を考えれば分かるが、無理。
473 名前:nobodyさん mailto:sage [2009/03/20(金) 22:53:31 ID:???] ajaxでやればできるでしょ
474 名前:nobodyさん mailto:sage [2009/03/20(金) 23:15:48 ID:???] そもそも、ページを移動も更新もしてない状態で、サーバ側でJavascript有効かどうか判断しなきゃ いけない状況って何だろう?
475 名前:nobodyさん mailto:sage [2009/03/20(金) 23:17:56 ID:???] その状況を考えられないならこの業界で食えませんよ
476 名前:nobodyさん mailto:sage [2009/03/20(金) 23:23:33 ID:???] ajaxでリクエスト飛んできたらon、飛んでこなかったらoff
477 名前:nobodyさん mailto:sage [2009/03/20(金) 23:42:53 ID:???] >>475 なんで? Ajax使う前提なら、こんなことで悩まんでしょ。 有効な時にメッセージ出したいなら、Javascriptで出せば良いし、使えない時にメッセージ出したいなら NOSCRIPT使えばいいし。 トップページへのアクセスだけで、Javascriptを有効にしてるかどうかサーバ側に記録を取りたいとか、そんな感じ?
478 名前:nobodyさん mailto:sage [2009/03/20(金) 23:59:59 ID:???] >477 だとしても、JavaScript経由で鯖にアクセスさせるだけだしな。 PHPではできない、というのは正しい。 まあ、質問が抽象的すぎるんでなんとも言えん。どうして質問掲示板の類の質問者は情報を出し惜しみするんだか。
479 名前:nobodyさん mailto:sage [2009/03/21(土) 00:11:32 ID:???] >>478 それはいいがかり。 おまえだって18世紀にペストにかかったら 「ネズミが運んできた病原菌のせいで感染しました」 とは医者には報告しないはずだ
480 名前:nobodyさん mailto:sage [2009/03/21(土) 00:49:23 ID:???] たとえのほうがわかりづらいってどういうことよ
481 名前:nobodyさん mailto:sage [2009/03/21(土) 02:16:36 ID:???] www
482 名前:nobodyさん mailto:sage [2009/03/21(土) 02:24:45 ID:???] そうか?非常に分かりやすい例えに感じたけど
483 名前:nobodyさん mailto:sage [2009/03/21(土) 02:34:45 ID:???] 479=482wwwww
484 名前:nobodyさん [2009/03/21(土) 19:33:45 ID:Kz7V9K+/] 掲示板を作るのですが共同で作る場合、どのようなシステムを導入するといいですか?
485 名前:nobodyさん mailto:sage [2009/03/21(土) 19:35:17 ID:???] >>484 git
486 名前:nobodyさん mailto:sage [2009/03/21(土) 22:18:16 ID:???] サーバサイドのプログラムが永久ループしたらどうやって止めるんですか? そういうのがあると、レンタルサーバ屋に怒られるんですか?
487 名前:nobodyさん mailto:sage [2009/03/21(土) 22:29:13 ID:???] コンセント抜けばおk
488 名前:nobodyさん mailto:sage [2009/03/21(土) 22:35:15 ID:???] >>486 30秒で止まる。
489 名前:nobodyさん mailto:sage [2009/03/21(土) 22:39:17 ID:???] 設定次第だがデフォルトは30秒
490 名前:nobodyさん mailto:sage [2009/03/21(土) 22:46:46 ID:???] 止めるのは鯖屋の仕事だから好きなだけ無限ループさせておk
491 名前:nobodyさん mailto:sage [2009/03/21(土) 23:10:45 ID:???] とっくに想定済みなんですね。 ありがとうございました。
492 名前:nobodyさん mailto:sage [2009/03/21(土) 23:18:28 ID:???] まぁ鯖潰したら損害賠償だけどな
493 名前:nobodyさん mailto:sage [2009/03/21(土) 23:38:44 ID:???] >>492 そんなヤワな鯖ねーよ
494 名前:nobodyさん mailto:sage [2009/03/21(土) 23:40:05 ID:???] >>492 ちょっと中級者ぶりたい年頃だけど外してるの図
495 名前:nobodyさん mailto:sage [2009/03/22(日) 01:29:46 ID:???] いきなり本番とかやらなければ普通起こさないと思うけど>無限ループ
496 名前:nobodyさん mailto:sage [2009/03/22(日) 01:34:00 ID:???] よくCMSなんか見てると、全てのファイルの頭に /** * * @package hogehoge * @version $Id: index.php 0000 2010-01-01 14:00:00Z hogehoge$ * @copyright (c) 2010 fugafuga * @license ttp://opensource.org/licenses/gpl-license.php GNU Public License * */ こんなの見かけるけど、これは手動で書いてるんですか? まさかね?
497 名前:496 mailto:sage [2009/03/22(日) 01:35:02 ID:???] ID
498 名前:496 [2009/03/22(日) 01:35:33 ID:pWqW8Yq7] また間違えたorz ごめんなさい
499 名前:nobodyさん mailto:sage [2009/03/22(日) 03:37:07 ID:???] >>494-495 マジレスつまらん
500 名前:nobodyさん mailto:sage [2009/03/22(日) 05:17:23 ID:???] すいません。CMSなどはHTMLファイルを生成するんですよね メニューに一項目増えた場合 全部のHTMLページを 書き換える処理ってしてるんですか?
501 名前:nobodyさん mailto:sage [2009/03/22(日) 06:09:27 ID:???] >>500 テンプレートにして動的にしてる場合が多い気がする。 スタティックなHTML吐くのはあまり見たことがない。
502 名前:nobodyさん mailto:sage [2009/03/22(日) 06:19:05 ID:???] >>501 つまりmod rewriteってことですか? 素人ですいません。
503 名前:nobodyさん mailto:sage [2009/03/22(日) 06:19:37 ID:???] mod_rewriteがどう関係あるんだ?
504 名前:nobodyさん mailto:sage [2009/03/22(日) 06:22:33 ID:???] つまりHTMLじゃないけれど、HTMLとしてって方法ですか? 自分はプログラムで呼び出すか、SSIしか思い浮かばないです
505 名前:nobodyさん mailto:sage [2009/03/22(日) 06:23:55 ID:???] プログラムで呼び出せば?
506 名前:nobodyさん mailto:sage [2009/03/22(日) 06:25:11 ID:???] CMSってHTMLファイルを作っていくイメージがあったんです すいません。ただ、require include で呼び出したページは グーグルランクつきにくいです SSIにしてみたところ、それよりはわずかにつきやすかったです CMSがHTMLファイルなら、どうやって外部からメニューを 呼び出しているかわからなかったので
507 名前:nobodyさん mailto:sage [2009/03/22(日) 06:28:00 ID:???] 別に動的でもSEO考慮する方法はいくらでもあるべ?
508 名前:nobodyさん mailto:sage [2009/03/22(日) 06:30:30 ID:???] >>507 具体的に教えて下さい お願いします もっどりライトは厳しい感じがしました 結果が
509 名前:nobodyさん mailto:sage [2009/03/22(日) 06:31:26 ID:???] 結果がって?
510 名前:nobodyさん mailto:sage [2009/03/22(日) 06:32:34 ID:???] >>509 グーグルランクのつきが明らかに悪いです(個人の弱小HP) そしてSSIに変えたところ、3つほどつきました 現在SSIのほうがPHPによる外部ページ呼び出しよりランクがつきやすいです 内部は全く変えてないです
511 名前:nobodyさん mailto:sage [2009/03/22(日) 06:33:30 ID:???] じゃSSIでいいじゃん
512 名前:nobodyさん mailto:sage [2009/03/22(日) 06:37:40 ID:???] (;^Д^) そうですか
513 名前:nobodyさん mailto:sage [2009/03/22(日) 07:18:32 ID:???] そう
514 名前:nobodyさん mailto:sage [2009/03/22(日) 09:24:55 ID:???] ひどい自演を見た><
515 名前:nobodyさん mailto:sage [2009/03/22(日) 09:59:58 ID:???] >>492 =499 自分はマジレスじゃなかったことにしようとして外してるの図
516 名前:nobodyさん mailto:sage [2009/03/22(日) 10:04:27 ID:???] >>492 がマジレスなわけないだろ。初心者は半年ROMれよ
517 名前:nobodyさん mailto:sage [2009/03/22(日) 10:06:20 ID:???] またその話かよ A型はひつこいな
518 名前:nobodyさん mailto:sage [2009/03/22(日) 10:11:46 ID:???] ホントに鯖潰したら、普通に損害賠償だけどな。
519 名前:nobodyさん mailto:sage [2009/03/22(日) 10:11:46 ID:???] 初心者(笑)は半年ROMれ(笑)よ
520 名前:nobodyさん mailto:sage [2009/03/22(日) 10:24:48 ID:???] 普通は損害賠償とか面倒なことに発展する前に、凍結されたり追い出されたりする Nucleusでアクセス解析いれたら劇重になって、翌日、鯖停止->強制解約になったよ。オレ
521 名前:nobodyさん mailto:sage [2009/03/22(日) 10:24:54 ID:???] >>515 図星で逆ギレの図
522 名前:nobodyさん mailto:sage [2009/03/22(日) 10:56:19 ID:???] >>492 =499=521 m9
523 名前:nobodyさん mailto:sage [2009/03/22(日) 11:33:37 ID:???] 粘着すぎる いつもむかむかしてるのかな
524 名前:nobodyさん mailto:sage [2009/03/22(日) 11:39:35 ID:???] 邪魔なんだよね〜 これ以上やるなら専用スレ立ててやるからそっちで共食いしてくれ
525 名前:nobodyさん mailto:sage [2009/03/22(日) 11:46:58 ID:???] >>484 バージョン管理システムを導入するといいです >>496 いくつかのIDEでは/**と入れて改行すると自動で作ってくれます EclipseのPHPプラグインあたりだと 最初に関数を定義してからその上に/**を入れて改行すると 下の関数を見て引数があったら@param 返り値があったら@returnを生成してくれます その他については必要であったら自分で記述するか デフォルトの値として設定可能なものなら設定するしかありません
526 名前:nobodyさん [2009/03/22(日) 11:49:05 ID:dhNIUg3n] 多次元配列へのアクセスを動的にやりたいのですが、 どうすればいいですか? get_multi_array($array,array('hoge','fuga','poge')) →$array['hoge']['fuga']['poge']を取得 こういう動作をさせたいのです
527 名前:nobodyさん mailto:sage [2009/03/22(日) 12:30:00 ID:???] >>492 =499=521=523=524 立場が悪くなって第三者のフリをしようとしてるけど外してるの図
528 名前:nobodyさん mailto:sage [2009/03/22(日) 12:43:51 ID:???] >>527 邪魔なんだよね〜 これ以上やるなら専用スレ立ててやるからそっちで共食いしてくれ
529 名前:nobodyさん mailto:sage [2009/03/22(日) 12:56:54 ID:???] >>528 無視できない時点で同類だって教わらなかったの? というより自演バレバレだよ初級者君(笑)
530 名前:nobodyさん mailto:sage [2009/03/22(日) 12:57:11 ID:???] おまえらケンカしろ byひきこもり塾っぽいの いいんだよ byスレ回り先生 自作自演する若者はためが無い by湯浅誠 自作自演格差社会 〜492のレス能力格差がスレッドを引き裂く >>528 は、新自由主義者 何でも排除して、格差を作ろうとする
531 名前:nobodyさん mailto:sage [2009/03/22(日) 13:10:43 ID:???] >>529 邪魔なんだよね〜 これ以上やるなら専用スレ立ててやるからそっちで共食いしてくれ
532 名前:nobodyさん [2009/03/22(日) 14:07:27 ID:ofSdd/CM] モバイルからなのでID固定できませんが質問です "<a href='".$value."'>"などとしたときに htmlspecialcharsだけでは変数にscript:〜が含まれていた場合に回避できませんが 変数の前に"sample.com/ "とURLがあれば問題ないのでしょうか 実際Firefox,safariなどでは普通にnot foundになります
533 名前:nobodyさん mailto:sage [2009/03/22(日) 14:09:38 ID:???] >>526 こんなのどう?連想配列でも多分問題ないと思う。 <?php function get_multi_array(array $a, array $keys) { $tmp = &$a; foreach ($keys as $key) { if (! is_array($tmp) || ! array_key_exists($key, $tmp)) return null; $tmp = &$tmp[$key]; } return $tmp; } // 以下テスト $array =array( array( array(1,2,3), array(4,5,6), ), array( array(7,8,9), array(11,12,13), array(14,15,16) ) ); var_dump(get_multi_array($array, array(0, 1, 2)));
534 名前:nobodyさん mailto:sage [2009/03/22(日) 14:32:22 ID:???] >>529 は見えない敵と戦ってるとみた
535 名前:nobodyさん mailto:sage [2009/03/22(日) 14:33:52 ID:???] こんな過疎板で煽り合って自分が上にしたい奴ってうつ病だろな
536 名前:nobodyさん mailto:sage [2009/03/22(日) 15:07:18 ID:???] >>535 よくぞ見抜いた・・ 社会不適合者な俺万歳
537 名前:nobodyさん [2009/03/22(日) 17:29:33 ID:XWTxCtFo] test
538 名前:nobodyさん [2009/03/22(日) 17:35:05 ID:XWTxCtFo] <form action="log/200902.htm" method="POST"> <input type="text" name="title" value=""><br> <textarea cols="80" rows="7" name="text"></textarea> <input type="submit" value="send"> </form> <?php $title="<h2>".$_POST["title"]."</h2>"; $text='<div class="text">'.$_POST['text'].'</div>'; if ( get_magic_quotes_gpc()) { $title = stripslashes($title); $text=stripslashes($text);} $text = nl2br($text); $log = 'log/200902.htm'; $lock = 'lock.txt'; $lock_fp = fopen($lock,"w"); flock($lock_fp,LOCK_EX); $old_log = file_get_contents($log); $fp = fopen($log,"w"); fwrite($fp,$title); fwrite($fp,$text); fwrite($fp, $old_log); fclose($fp); flock($lock_fp,LOCK_UN); fclose($lock_fp); ?> これ、とあるサイトから引用してきたスクリプトなんですけど、どうやっても$_POSTの値を取得できずにlog/200902.htmの内容が<h2></h2><div class="text"></div>と内容が空になってしまいます。 POSTの値を取得するにはどうしたらいいんでしょう?どなたか知識のある方、ご教授下さい。
539 名前:nobodyさん mailto:sage [2009/03/22(日) 17:37:44 ID:???] とりあえず、<?php の直後で var_dump($_POST);exit;
540 名前:nobodyさん mailto:sage [2009/03/22(日) 17:39:58 ID:???] それと form のアクションプロパティはそれでいいのか?>action="log/200902.htm" 自身に送るなら空白
541 名前:nobodyさん mailto:sage [2009/03/22(日) 17:50:34 ID:???] >>535 よくぞ見抜いた・・ 社会不適合者な君万歳
542 名前:nobodyさん [2009/03/22(日) 17:52:24 ID:XWTxCtFo] 早速ありがとうございます。var_dump($_POST);exit;としてみたのですがarray(0) { }としか表示されません... formのアクションプロパティは合ってるかと思いますが…。log/200902.htmというファイルに書き込みたいので。
543 名前:nobodyさん mailto:sage [2009/03/22(日) 17:55:25 ID:???] formのactionには データを渡すスクリプトのパスを書くんだよ どのファイルに書き込むかとかは、 スクリプトの方で処理すること $_POSTの中身が空の配列ってことは、 データが渡されてないってこと
544 名前:nobodyさん [2009/03/22(日) 18:02:21 ID:XWTxCtFo] あ!formのaction属性を空にしてみたらこんな表示が出ました。 array(2) { ["title"]=> string(4) "test" ["text"]=> string(4) "test" } これはデータが渡されてるということなんでしょうか。しかしlog/200902.htmの中身は相変わらずです…。
545 名前:nobodyさん mailto:sage [2009/03/22(日) 18:09:39 ID:???] exitしてるからログは書き込まれないよ それはそうとまずHTMLを理解しないと
546 名前:nobodyさん [2009/03/22(日) 18:12:30 ID:XWTxCtFo] すみません…。あまりにも無知でした。exitすると処理が終了するということはリファレンスサイトで見たはずなのに…。恥ずかしいです。 HTMLにも理解がありませんでした。重ね重ね恥ずかしいかぎりです…。
547 名前:nobodyさん [2009/03/22(日) 18:17:48 ID:XWTxCtFo] できました!ご教授下さった方のいう通りにしたらlog/200902.htmに書き込むことができました! 本当に無知な私にここまで親身になってくれてありがとうございました。本当に感謝します。 また何かわからないことがあったら自分で調べて、それでもわからなかったらまたこのスレにお世話になると思います。その時はどうか暖かい目で見てやってください…
548 名前:nobodyさん mailto:sage [2009/03/22(日) 18:27:06 ID:???] ログファイルがhtmってのなんだかな〜
549 名前:nobodyさん [2009/03/22(日) 18:34:08 ID:XWTxCtFo] はい。htmlにさせて頂きました...
550 名前:nobodyさん mailto:sage [2009/03/22(日) 18:45:54 ID:???] いやそういうことをいってんじゃないんだけど まあいいや
551 名前:nobodyさん mailto:sage [2009/03/22(日) 19:52:51 ID:???] 普通はログはテキストのまま、つまり記事本文だけを保持する。 例えば2chは、以下のようなテキスト形式でデータを保存している(本当は違うんだが、まあ割愛)。 nobodyさん<><>2009/03/22(日) 18:34:08 ID:XWTxCtFo<> はい。htmlにさせて頂きました... <> そのログファイルの内容を読み込んで、HTMLとして整形して書き出すPHPで本文を表示させるわけだ。 HTMLで保持しない理由はいくつかある。パッと思いつくのは 柔軟性 例えば、表示されるHTMLを別の形にしたいとか、RSSも書き出したい、という時に再利用しづらい。 記事削除passをつけたいとか、データ保持先をDBにしたいとか、色んな拡張性が失われたりもする。 セキュリティ 本文に<script>alert('うけけけけけ');</script>と書かれたらどうなる?とか。 どちらにせよ対策は必要なのだが、ログをHTMLとして持っていると、どこで対策すりゃいいのかが曖昧になりやすい。 容量 無駄にデカくなる。大した問題じゃないが。
552 名前:nobodyさん mailto:sage [2009/03/22(日) 20:56:06 ID:???] 実体参照化してからHTML化すれば?
553 名前:nobodyさん mailto:sage [2009/03/22(日) 23:17:35 ID:???] やり方にもよるかな ログをhtmlとして書き出す掲示板はkentも作ってたな
554 名前:nobodyさん mailto:sage [2009/03/22(日) 23:23:17 ID:???] やり方にもよるって・・ ログをHTMLとして書き出しておくのは 論外といったら失礼かもしれないけど、 明らかに保守性なさすぎじゃないか?
555 名前:554 mailto:sage [2009/03/22(日) 23:29:53 ID:???] 書き出しておく・・じゃなくて 保持しておくだった
556 名前:nobodyさん mailto:sage [2009/03/22(日) 23:30:00 ID:???] テンプレートとログを分けておいて、記録するときにテンプレートを元にhtml化すればおkだけどな
557 名前:nobodyさん mailto:sage [2009/03/22(日) 23:30:47 ID:???] XMLみたいなもんと思えば、アリじゃないかとも思う。 一件一行で、ヘッダとフッタを除いた状態で保存するなら、そんなに保守性もわるくないと思うが。
558 名前:nobodyさん mailto:sage [2009/03/22(日) 23:34:55 ID:???] 閲覧が多くて書き込みが少ないのならhtml化してもいいかな
559 名前:nobodyさん mailto:sage [2009/03/22(日) 23:43:37 ID:???] あめぞうスクリプト見れ
560 名前:nobodyさん [2009/03/22(日) 23:49:52 ID:cLpptsUH] 現在自分が作成しているPHPとMySQlを使ったログイン認証システムで 穴がないか不安になってきたので、質問します。 要点のみを記載します。 ・ID(又はメールアドレス)とパスワードをフォームに入力して、 MySQL内の情報を照合 ・正しければトークン用のコードを発行し、ユーザ情報を更新 (テーブルのtokenフィールドに作成した値を追加) ・その他、セッション変数にはログイン時のUAとIPアドレスを代入 ・各ページアクセス毎にセッション情報が正しいかをIFで調べる (会員情報編集などの場合、ユーザIDとトークンコードが正しいか照合) ・パスワードはmd5で保存 と言うことをしています。他に「これもしろ」と言うことはありますでしょうか?
561 名前:nobodyさん mailto:sage [2009/03/22(日) 23:50:51 ID:???] ソースを見せるのが早い
562 名前:nobodyさん mailto:sage [2009/03/22(日) 23:51:39 ID:???] ID(又はメールアドレス)とパスワードをフォームに入力して、 MySQL内の情報を照合 (1)この時に、SQLインジェクション対策はされているのか?
563 名前:nobodyさん mailto:sage [2009/03/22(日) 23:52:30 ID:???] md5は破られるのでsha2にしたほうが無難
564 名前:nobodyさん mailto:sage [2009/03/22(日) 23:52:40 ID:???] >>560 そういうしつもんすると>>562 みたいな質問がきりがなく出てくるのでソース出したほうが早い
565 名前:nobodyさん mailto:sage [2009/03/23(月) 00:10:54 ID:???] >>533 やっぱり再帰ですね ありがとうございました
566 名前:560 mailto:sage [2009/03/23(月) 00:16:39 ID:???] >>562 しています。まず入力値にhtmlspecialcharsをかけて DBアクセス時にmysql_escape_stringをしています。 ソースに関してですが、莫大な量になるので掲載を控えます。 それにソースや構文の組み立てを聞きたいのではなく、 自分の足りない知識・誤っている知識を指摘していただきたく思い、質問しました。
567 名前:nobodyさん mailto:sage [2009/03/23(月) 00:29:46 ID:???] ( ゚д゚)
568 名前:nobodyさん mailto:sage [2009/03/23(月) 01:02:57 ID:???] >>566 >まず入力値にhtmlspecialcharsをかけて らめぇええええ
569 名前:nobodyさん mailto:sage [2009/03/23(月) 01:35:27 ID:???] >>565 否。ただのループ。
570 名前:nobodyさん [2009/03/23(月) 02:53:59 ID:RPfvHZ0v] test.txt > 0123456789 test.php > $fp = fopen("test.txt", "r"); > while(!feof($fp)) { > print fread($fp, 1); > flush(); > sleep(1); > } > fclose($fp); test2.php > $fp = fopen("test.txt", "w"); > fwrite($fp, "aaaaaaaaaa"); > fclose($fp); > > $fp = fopen("test.txt", "r"); > print fread($fp, 10); > fclose($fp); test.phpが走ってる最中にtest2.php走らせても test.phpの出力にtest2.phpの書き換えは反映されなかった。 読み出しに関してはルーズな実装してもOKって事?
571 名前:nobodyさん mailto:sage [2009/03/23(月) 05:27:55 ID:???] flushされるタイミングの都合で、たまたまじゃないかなぁ。
572 名前:nobodyさん mailto:sage [2009/03/23(月) 05:29:12 ID:???] 良く見たら明示的にflush は、してるのか。 ごめん。
573 名前:nobodyさん mailto:sage [2009/03/23(月) 22:30:27 ID:???] >>560 とは別人で悪いんだけど、気になったからよこやり入れさせて。 >>568 ID(もしくはメールアドレス)は、必ずしもブラウザで表示するわけじゃないから、 ・DB内の情報と照合する時 → mysql_escape_string(mysql_real_escape_string) ・ブラウザに表示する時 → htmlspecialchars みたいにする、ってことでおk? じゃないと、ID(もしくはメールアドレス)を更新する際に、'<'が'<'って保存されてしまうからっていうことかな。 見当違いだったらすまん。
574 名前:nobodyさん mailto:sage [2009/03/23(月) 22:33:45 ID:???] 連続書き込みスマソ >>573 訂正 じゃないと、ID(もしくはメールアドレス)を更新する際に、'<'が'&lt;'って保存されてしまうからっていうことかな。
575 名前:nobodyさん mailto:sage [2009/03/23(月) 22:38:01 ID:???] そうやって保存されてしまうからっていうのと、 保存されてしまうことによって再利用するとき不便になるからだね
576 名前:nobodyさん mailto:sage [2009/03/23(月) 22:58:16 ID:???] test
577 名前:nobodyさん mailto:sage [2009/03/23(月) 23:07:14 ID:???] >>575 なるほど、いい勉強になった。 ありがとう。
578 名前:nobodyさん [2009/03/23(月) 23:45:08 ID:uVBii4+5] サーバを再起動したらapacheのerr.logに PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\PHP\\ext\\php_curl.dll' と同じようなログがたくさん出ます。 でも、該当のファイルは存在します 何が原因でしょうか?
579 名前:nobodyさん mailto:sage [2009/03/23(月) 23:53:02 ID:???] >>573-575 でもさ、ID・メールアドレスを更新する時に<を使う場合ってあるの? IDはだいたい半角英数字だし、メールアドレスもそうでしょ?
580 名前:nobodyさん mailto:sage [2009/03/24(火) 00:01:55 ID:???] どこでサニタイズするかは勝手だが、 100%ってことはないので出口でサニタイズしろってエロい人が言ってた
581 名前:nobodyさん mailto:sage [2009/03/24(火) 00:17:34 ID:???] サニタイズニダ!
582 名前:nobodyさん mailto:sage [2009/03/24(火) 00:41:05 ID:???] >>578 PHPのバージョンは? DOS窓から、php -mや、php -iって打っても、エラー出る? 5.2.9-1なら > Please note that the cURL related function is disabled when open_basedir or safe_mode enabled. ってニュースが出てたけど、関係しそうなとこある?
583 名前:nobodyさん mailto:sage [2009/03/24(火) 04:21:02 ID:???] すいません。PHP勉強して半年になります。順調に進んでいたのですが echo $a[0] = 'aaa'; echo $a[0][0] = 'news'; こうすると、なぜかバグルのですが、なぜですか?
584 名前:nobodyさん mailto:sage [2009/03/24(火) 04:25:00 ID:???] そりゃechoですからね 出力だけしてくださいよ
585 名前:nobodyさん mailto:sage [2009/03/24(火) 04:25:16 ID:???] それは、君が>>1 を読めない子ちゃんだから。
586 名前:nobodyさん mailto:sage [2009/03/24(火) 04:26:30 ID:???] すいません、なぜこれでバグになるかわからないんです echo $a[0] = 'aaa'; echo $a[0][0] = 'news'; print_r($a); ↓結果 Array ( [0] => jaa )
587 名前:nobodyさん mailto:sage [2009/03/24(火) 04:26:58 ID:???] >>584 おまいさんは、輪をかけてドアホーみたいだけどな
588 名前:nobodyさん mailto:sage [2009/03/24(火) 04:28:52 ID:???] >>586 バグってないじゃん。仕様通り 文字列の1文字目を置換してる
589 名前:nobodyさん mailto:sage [2009/03/24(火) 04:30:23 ID:???] バグって増すよ <?php $a[0] = 'aaa'; $a[0][1] = 'jjjjk'; print_r($a); Array ( [0] => aja )
590 名前:nobodyさん mailto:sage [2009/03/24(火) 04:32:35 ID:???] >>589 バグじゃないよ。 $a[0]は文字列 $a[0][1]はその2文字目を代入しようとしてる文字列の1文字目で置換せよ だから、$aは1要素配列のまま。 そんだけ。
591 名前:nobodyさん mailto:sage [2009/03/24(火) 04:34:04 ID:???] >>590 そうなるんですか。知りませんでした。今までやってきて そんな配列あったんですか 適当に使ってました
592 名前:nobodyさん mailto:sage [2009/03/24(火) 04:34:50 ID:???] >>591 マニュアルに書いてあるよ。
593 名前:nobodyさん mailto:sage [2009/03/24(火) 04:35:22 ID:???] 自分は初心者なので、配列=箱としか書いてあるものをみたことが なかったんです。助かりました>>1-589
594 名前:nobodyさん mailto:sage [2009/03/24(火) 04:39:30 ID:???] 変数を array で初期化しないで、いきなり配列として使うのは、どうも生理的・本能的にダメ。
595 名前:nobodyさん mailto:sage [2009/03/24(火) 04:42:07 ID:???] arrayで初期化しても置き換えられますよ 自分初心者だったのでこんなのあったんだとびっくりしました
596 名前:nobodyさん mailto:sage [2009/03/24(火) 04:46:27 ID:???] 残念ながら>>594 が言ってるのは次元の違う話だ PHP使いは適当がモットーだから気にしなくていい
597 名前:nobodyさん mailto:sage [2009/03/24(火) 04:49:11 ID:???] >>596 そうですか。今まで掲示板とブログ作ったんですか そのような配列の使い方を書いてあるのがみたことなくて 気になりました
598 名前:nobodyさん mailto:sage [2009/03/24(火) 07:45:46 ID:???] 2重配列って呼び方であってる?
599 名前:nobodyさん mailto:sage [2009/03/24(火) 07:53:32 ID:???] 2次元配列じゃないよ。そのケース。 単に、1次元配列の要素が文字列で その文字列にstring offsetでアクセスしてるだけ
600 名前:586 mailto:sage [2009/03/24(火) 08:34:05 ID:???] 難しいなあそんなの出てこなかった 初心者本には、 あくまで 配列は個々の箱だと意識してました データ型を指定しなくていいように、箱も好きに使っていいと 思ってました。
601 名前:nobodyさん mailto:sage [2009/03/24(火) 08:34:37 ID:???] そりゃ初心者本だからだろ
602 名前:nobodyさん mailto:sage [2009/03/24(火) 08:52:05 ID:???] >>589 バグ >>590 は下のコードと勘違いしてるんじゃないのかね $str = "12345"; $str[0] = "a"; echo $str; // a2345
603 名前:nobodyさん mailto:sage [2009/03/24(火) 08:55:32 ID:???] >>602 いや、だからそれとやってることは一緒だろ
604 名前:nobodyさん mailto:sage [2009/03/24(火) 08:56:49 ID:???] 602が勘違いしてるんじゃないのかね
605 名前:nobodyさん mailto:sage [2009/03/24(火) 09:01:48 ID:???] コンパイラ言語はデータ型ちゃんと指定するから 静的な変数(配列)の型定義というのは 型に応じたメモリ領域を確保するということ(Javaでint型なら4バイトlong型なら8バイト等) PHPはインタプリタだからその辺を動的にやってるわけ この辺をちゃんと理解してないと正しいイメージはわかない 配列は箱ではなく連続したデータというイメージが正しい メモリ上ではそのように配置されている
606 名前:nobodyさん [2009/03/24(火) 09:45:45 ID:VfITkfEn] >>582 versionは5.2.3だったと思います C:\php>php -m としたら、「isqlt09a.dllが見つからなかったため、このアプリケーションを開始できませんでした。 インストールし直すと解決する場合があります」 とアラートが出ました C:\php>php -m PHP Warning: PHP Startup: Unable to load dynamic library 'C:\PHP\ext\php_ifx.dl l' - 指定されたモジュールが見つかりません。 in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'C:\PHP\ext\php_oci8.d ll' - 指定されたモジュールが見つかりません。 in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'C:\PHP\ext\php_pdo_oc i.dll' - 指定されたモジュールが見つかりません。 in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'C:\PHP\ext\php_pdo_oc i8.dll' - 指定されたモジュールが見つかりません。 in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'C:\PHP\ext\php_pspell .dll' - 指定されたモジュールが見つかりません。 in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'C:\PHP\ext\php_sybase _ct.dll' - 指定されたモジュールが見つかりません。 C:\php>php -pでも同じ結果です 見つからないって言われてるモジュール、extの中にちゃんと存在してるんですが、、
607 名前:586 mailto:sage [2009/03/24(火) 19:06:44 ID:???] 誰かプロの人 $aiueo[0] = "a"; $aiueo[0][0] = "aa"; とPHPで入れると置き換わったりする理由を書いて下さい
608 名前:nobodyさん mailto:sage [2009/03/24(火) 19:09:04 ID:???] >>606 記憶違いかも知れんが、依存関係の都合でライブラリを読み込む順序によって、 そんなメッセージがでたかも。 以前、Windows版のPHPってサンプルのphp.iniの順番だとエラーが出てずいぶん 悩んだことがある。
609 名前:nobodyさん mailto:sage [2009/03/24(火) 20:03:31 ID:???] >>607 >>1
610 名前:nobodyさん mailto:sage [2009/03/24(火) 20:04:24 ID:???] >>606 書いてないから確認しとくけどinclude_pathの設定は?
611 名前:nobodyさん mailto:sage [2009/03/24(火) 20:09:50 ID:???] >>607 置き換わる理由は仕様だから。それだけ。 $a[0] = 'abc'; $as = 'abc'; if ($a[0][0] === $as[0]) { echo ' $a[0][0] equal $as[0]' . " <br />\n"; } echo "target :" . $as . " = " . $a[0] . " <br />\n"; echo "offset0:" . $as[0] . " = " . $a[0][0] . " <br />\n"; echo "offset1:" . $as[1] . " = " . $a[0][1] . " <br />\n"; echo "offset2:" . $as[2] . " = " . $a[0][2] . " <br />\n"; $as[1] = $a[0][1] = 'xxxxxxx'; if ($a === array($as)) { echo ' $a is array of $as' . "<br />\n"; } echo "replaced:" . $as . " = " . $a[0] . " <br />\n"; echo "offset0 :" . $as[0] . " = " . $a[0][0] . " <br />\n"; echo "offset1 :" . $as[1] . " = " . $a[0][1] . " <br />\n"; echo "offset2 :" . $as[2] . " = " . $a[0][2] . " <br />\n";
612 名前:nobodyさん mailto:sage [2009/03/24(火) 20:14:05 ID:???] >>606 併せて、php.iniで、extension_dirがC:¥PHP¥extになってるか確認してみて。
613 名前:nobodyさん mailto:sage [2009/03/24(火) 20:15:53 ID:???] すまんinclude_path関係ないね
614 名前:nobodyさん mailto:sage [2009/03/24(火) 20:36:16 ID:???] >>606 phpinfo()を実行してみて、php.iniをどこから読み込んでいるのかも確認してみて。 以前、WINDOWSディレクトリと、phpの展開先の両方に異なる設定のphp.iniを置いていて、はまったことがあるので。
615 名前:nobodyさん mailto:sage [2009/03/24(火) 20:37:10 ID:???] 始めの頃ありがちw
616 名前:nobodyさん [2009/03/24(火) 21:07:22 ID:/zsLtnA9] クラスの数が多くなってきたので(__autoloadで読み込み) 複数クラスを一つのファイルにまとめたら速くなるのではと 思うのですが、それって実際どの程度の効果があるでしょうか? まとめなくても、元来OSがファイルキャッシュするので、 あんまり変わらない気もします
617 名前:nobodyさん mailto:sage [2009/03/24(火) 21:09:24 ID:???] 計れば良いのでは?
618 名前:nobodyさん mailto:sage [2009/03/24(火) 21:18:30 ID:???] >複数クラスを一つのファイルにまとめたら速くなるのではと 再利用とか無視して一人で使うんだろうから別にいいとは思うけど それでも基本どおり1クラス1ファイルにしときな
619 名前:606 [2009/03/25(水) 00:12:15 ID:4yhBz/QX] みなさんたくさんのレスありがとうございます >>612 そうなってました >>614 C:\WINDOWS でした。正しいですよね… >>608 さんの書いてる原因かなぁ もうwindowsで作るの自体やめよっかな
620 名前:nobodyさん mailto:sage [2009/03/25(水) 00:32:37 ID:???] >616 ボトルネックがわかっていない状態でチューニングをしてはいけない。 まずは測定。 ファイル数云々というより、__autoload()の呼び出し回数が減ることによる高速化は一応期待できるかな。 マジックメソッドの類は総じて重い。 まあ、DBやファイルへのアクセスがあるならそっちがボトルネックになってるとは思うけど。
621 名前:nobodyさん mailto:sage [2009/03/25(水) 01:59:46 ID:???] >>616 環境いじれるなら、APCとか使うのが良いんじゃないかなぁと思う。 ソースコードは扱いやすい単にしておいた方が、いろいろ良いし。 自分ははクラスはモジュールぐらいの単位の方が扱いやすいんで、 1クラス1ファイルにはしてないけど。
622 名前:nobodyさん [2009/03/25(水) 11:16:26 ID:yQlt60AA] PDOで永続接続を使っている場合、prepareを使うと2回目以降の実行が効率化するんでしょうか それとも実行のたびに毎回prepareステートメントを発行するから意味無いんでしょうか
623 名前:nobodyさん mailto:sage [2009/03/25(水) 11:18:39 ID:???] prepareって接続してんの?
624 名前:nobodyさん [2009/03/25(水) 15:06:05 ID:Ijn9qBql] htmlspecialchars($var, ENT_QUOTES, 'utf-8') でhtmlエスケープしていたのですが、 アンパサンドがエスケープされるので、 数値実体参照が「&#〜;」という文字列として表示される ということが分かりました。 数値実体参照の場合は生で表示するにはどうしたらいいですか?
625 名前:nobodyさん mailto:sage [2009/03/25(水) 15:15:24 ID:???] 出力するときに&に置換すればいいじゃん
626 名前:nobodyさん mailto:sage [2009/03/25(水) 16:45:47 ID:???] フォームの処理でmethodがpostの場合、 一度submitで送信した後、更新ボタンを押すと 再度送信するようなアラートが出ますが、 これを出さないようにする方法はないでしょうか? header関数で送信元のページにリダイレクトして戻す方法以外で教えて下さい。
627 名前:626 [2009/03/25(水) 16:47:05 ID:7ip+uIiL] すみません、ID隠してました・・・
628 名前:nobodyさん mailto:sage [2009/03/25(水) 17:24:35 ID:???] >>626 ブラウザの仕様なのでPHPでどうこうできる問題じゃない
629 名前:nobodyさん [2009/03/25(水) 19:52:08 ID:Ut4OfJaE] 俺のマシンはwinXPの32ビットで4Gのメモリを積んでます。 システムのプロパティで見ると3.25GB認識してるのですが PHPでどんなに重い処理をしてもタスクマネージャで見ると700MB位しか使っていません。 PHPのメモリリミットは-1の無制限にしてるのに何で? もっとメモリ使ってくれたら速くなりそうなんだが。 スペックはアパッチ、PHP5
630 名前:nobodyさん mailto:sage [2009/03/25(水) 20:13:46 ID:???] >>629 んなこたーない
631 名前:nobodyさん mailto:sage [2009/03/25(水) 20:38:00 ID:???] メモリ使ったら速くなる?
632 名前:nobodyさん mailto:sage [2009/03/25(水) 20:47:09 ID:???] >>626 「リロード対策」というキーワードでググると 情報が出てくる。 だが、自分には複雑すぎて理解できなかったが。
633 名前:nobodyさん [2009/03/25(水) 21:30:14 ID:POBIuYee] 問題の切り分けレベルですいませんが kokusan.syokuryo.jp/blog_parts.html このblogパーツですが中身のjs↓ kokusan.syokuryo.jp/blogparts/kokusanParts.js を機能丸ごと再現してみたいのですが(用途は勉強、兼遊びで) 再現するのに ■サーバサイドの技術は何が必要か ■ローカル側は.jsだからとりあえずはコピペで十分? という所で(入口ですが)詰まってます。 どなたかご助言plz
634 名前:nobodyさん mailto:sage [2009/03/25(水) 21:32:29 ID:???] まずJavaScriptの基礎から学ぶといいかと
635 名前:nobodyさん mailto:sage [2009/03/25(水) 21:50:38 ID:???] >>629 画像データをメモリ上に読み込んだりしない限り そんな使うことはないだろ 重い処理なんていってもPHPの場合たかがしれてる
636 名前:nobodyさん mailto:sage [2009/03/25(水) 23:08:42 ID:???] >>625 そうですね そもそも&までエスケープする仕様はやりすぎのような・・ 2chでも&はエスケープしてないし。googleも。
637 名前:nobodyさん mailto:sage [2009/03/25(水) 23:23:27 ID:???] >>636 xmlデータにおいては、&は実体参照必須だけどね。
638 名前:nobodyさん mailto:sage [2009/03/26(木) 00:04:21 ID:???] >636 気に食わないなら文句言ってないで自分で実装すりゃいいじゃん。 単純に置換するだけだから、str_replace一発でできるぞ。 俺はやりすぎとは思わないな。入力文字列をそのまま画面に出力したいなら、&の置換もしたほうがいい。
639 名前:nobodyさん [2009/03/26(木) 00:25:15 ID:l1PHOXdz] 数値を0.5刻みでフォーマットしたいのですが、 何かスマートな方法はありますでしょうか? (例) 1.0以上1.5未満 => 1.0 1.5以上2.0未満 => 1.5 2.0以上2.5未満 => 2.0 よろしくお願いします。
640 名前:nobodyさん mailto:sage [2009/03/26(木) 00:35:55 ID:???] >>639 2倍にして切り捨てて半分にする
641 名前:nobodyさん mailto:sage [2009/03/26(木) 00:39:42 ID:???] >>639 四捨五入じゃなくて?
642 名前:nobodyさん mailto:sage [2009/03/26(木) 00:39:59 ID:???] >>638 安全にこしたことはないですが、今回は実体参照を頃されてしまうのが問題なので・・ それにしても、エンコードを意識せず、単に置換したらいいだけなんですか? だとしたら、htmlspecialcharsのエンコード指定は何に使われているんだろう
643 名前:nobodyさん mailto:sage [2009/03/26(木) 00:55:11 ID:???] >>639 round
644 名前:nobodyさん [2009/03/26(木) 01:05:32 ID:fG8U3yBv] MySQLのSQL文のWHEREを $where_ary = array("id"=>"1","name"=>"あああ"); foreach($where_ary as $key=>$value){ $array[] = $key."='".$value."'"; } $where = join("&",$array); と言うように連想配列を使って生成しています。 上記のようにすると、変数に値が入っている場合は大丈夫なのですが、 MySQLの関数(NOWやDATE_FORMATなど)を使いたい時、使えません。 かといって値の部分に関数を記述しても文字列となります。 もっと効率よく生成するには、どのようにすれば良いのでしょうか?
645 名前:nobodyさん mailto:sage [2009/03/26(木) 01:07:24 ID:???] >>642 指定はできるけど、何も使われていない、って情報が どっかのブログに書いてあった
646 名前:nobodyさん mailto:sage [2009/03/26(木) 01:23:03 ID:???] >>644 Zend_Dbの実装はこんな感じ framework.zend.com/manual/ja/zend.db.html#zend.db.adapter.quoting
647 名前:nobodyさん mailto:sage [2009/03/26(木) 01:52:56 ID:???] framework.zend.com/manual/ja/zend.db.select.html#zend.db.select.building.columns-expr
648 名前:644 mailto:sage [2009/03/26(木) 02:06:29 ID:???] >>646-647 これは非常に参考になります。 実際に自分もSQL文の生成にはクラスを使っているので Zend Dbを参考に、独自の仕様にしてみます。
649 名前:nobodyさん [2009/03/26(木) 11:39:12 ID:p1YkL4wy] WindowsにCLIでインストールされたPHPでphp -a ではなく、 ある程度インラインで入力してからまとめて実行したいのですが、 どうすればできますか?
650 名前:nobodyさん mailto:sage [2009/03/26(木) 13:22:22 ID:???] >>649 C:\>php
651 名前:nobodyさん [2009/03/26(木) 18:55:54 ID:JIscrcVE] phpで、「何時間毎に」とか、「何月何日に」とかいう指定で、プログラムを走らせたりメールおくったりするにはどうすればいいでしょうか?
652 名前:nobodyさん mailto:sage [2009/03/26(木) 19:01:47 ID:???] >>651 cron
653 名前:nobodyさん mailto:sage [2009/03/26(木) 19:02:58 ID:???] >>651 それか、そのファイルに対する最終アクセス時刻を記録しておいて、 「前回のアクセスは3日前だな、、、 だったらよし、今回は3日分の処理を一気にやればいいんだな」 とかってプログラムで判断させて、アクセスするたびに その処理を実行するとか。 もちろん、この場合、アクセスがなければ処理も実行されない。
654 名前:nobodyさん mailto:sage [2009/03/26(木) 19:03:41 ID:???] Windowsだったら、タスク スケジューラ それがUNIXのcronと同じ。
655 名前:nobodyさん mailto:sage [2009/03/26(木) 19:08:12 ID:???] >>651 こういうこと? ttp://phpspot.org/blog/archives/2005/11/croncronphp_pse.html
656 名前:nobodyさん mailto:sage [2009/03/26(木) 19:31:31 ID:???] クソサイトの宣伝すんなや web cron
657 名前:nobodyさん mailto:sage [2009/03/26(木) 20:06:05 ID:???] すぐ吠えるDQNって・・・どこまで底辺なんだよ
658 名前:nobodyさん [2009/03/26(木) 20:59:43 ID:JIscrcVE] ありがとう、普通にcronすればよかった、トンクス
659 名前:nobodyさん mailto:sage [2009/03/26(木) 21:05:33 ID:???] >>649 STDINを使えという話ではなくて? jp.php.net/manual/ja/features.commandline.php
660 名前:nobodyさん [2009/03/26(木) 21:23:14 ID:ih4lRG32] PHPのソースを読んでコメントを抽出する正規表現を書きたいのですが どうにもうまくヒットさせることができません /** */ */ の時に長い方がマッチされてしまいます どう書けばいいですか?
661 名前:nobodyさん mailto:sage [2009/03/26(木) 21:32:53 ID:???] "!/\*(.*?)\*/!s"
662 名前:nobodyさん mailto:sage [2009/03/26(木) 21:48:28 ID:???] >>661 できました!ありがとうございました。 *?で最短にマッチさせられるんですね
663 名前:nobodyさん [2009/03/26(木) 23:16:05 ID:46RAjvuH] fgetcsv関数って基本的にwhileとセットで使うの?
664 名前:nobodyさん mailto:sage [2009/03/26(木) 23:23:56 ID:???] retunr値が配列なだけだろ
665 名前:nobodyさん [2009/03/27(金) 07:08:11 ID:viybN2w6] symfonyにあるような、 ディレクトリを再帰的にさらってクラスをリストアップする機能が欲しいのですが どうしたらいいですか? PEARのPHP Parserを使ってみたのですが エラーが出まくって使い物になりませんでした
666 名前:nobodyさん mailto:sage [2009/03/27(金) 08:05:52 ID:???] >>665 既に検討したとは思うが、クラス名を取得する程度なら、Tokenizerで処理しても、 大した手間でもなんじゃないの。 jp.php.net/manual/ja/book.tokenizer.php
667 名前:nobodyさん [2009/03/27(金) 09:19:56 ID:DtOzsPN+] rename関数でフィアルを移動するプログラムを書いています 移動先に同名のファイルがある場合に上書きさせたいのですが 一度unlinkしてからrenameしないと駄目なのでしょうか?
668 名前:nobodyさん mailto:sage [2009/03/27(金) 09:23:54 ID:???] うん
669 名前:nobodyさん mailto:sage [2009/03/27(金) 15:04:57 ID:???] >>666 こんな便利そうなものがあったとは! まさに欲しかったものです ありがとうございました
670 名前:nobodyさん [2009/03/27(金) 15:35:49 ID:LbT/oMC/] ただ今MVCにてアプリケーションを作成していて モデル部分にデータベース関係の処理(selectやdelete)を全てまとめてますが フォームの項目チェックなどのバリデーション関係は モデルではなくコントローラーに記述するべきですかね?
671 名前:nobodyさん mailto:sage [2009/03/28(土) 00:29:13 ID:???] >670 MとCならばC。Cからバリデーション専用クラスを呼び出せ。 ただし、Cにベタ書きで実装するのはオススメできない。Visitorパターンで実装するのが割と良く見る形。 バリデートはほぼ全てのフレームワークに存在する機能なので、おとなしくフレームワークのマニュアルを読んで構成をパクったほうが速いけどな。
672 名前:nobodyさん mailto:sage [2009/03/28(土) 00:34:00 ID:???] バリデーションがC??
673 名前:nobodyさん mailto:sage [2009/03/28(土) 02:42:46 ID:???] 画面やテーブルごとにチェックする項目が異なるのに バリデーションがCはありえない
674 名前:nobodyさん [2009/03/28(土) 06:25:24 ID:xuBHT5om] newしたオブジェクトを変数に代入せずにメソッドを呼びたいのですが そういう書き方ありますか? {new Hoge()}->method() みたいなイメージです
675 名前:nobodyさん mailto:sage [2009/03/28(土) 06:46:27 ID:???] >>674 74street.ddo.jp/index.php?PHP%2Ftips%2Fphp003 これかな? ちなみに、インスタンス化せずメソッドを使う場合、宣言時にメソッドに「static」を付け、「クラス名::メソッド名」で呼び出す。。 class SampleClass { public static function func($a,$b){ return $a + $b; } } $ans = SampleClass::func(1,2);
676 名前:nobodyさん mailto:sage [2009/03/28(土) 08:45:03 ID:???] >>674 それは不可能
677 名前:nobodyさん mailto:sage [2009/03/28(土) 08:49:24 ID:???] >>676 お前、馬鹿だろ 前のレスで完結してるのにわざわざくだらん横槍を入れる必要はない
678 名前:nobodyさん mailto:sage [2009/03/28(土) 08:56:18 ID:???] 静的メソッドしか呼び出せないじゃん
679 名前:nobodyさん mailto:sage [2009/03/28(土) 08:58:31 ID:???] >>676 じゃないが、>>675 は別モンだと思うけどな。 >>674 は何でそんなことしたいんかナゾだけど。目的も書くべきだろ。 ただの興味ということなら、それはそれで良いけど。
680 名前:nobodyさん mailto:sage [2009/03/28(土) 11:44:19 ID:???] というか何の意味があるんだろう
681 名前:nobodyさん [2009/03/28(土) 12:52:45 ID:0oeFWAvW] マニュアルを見てもいまいちわからないのですが $a = 2; $b = $a * 2; echo $b; $a = 4; echo $b; 期待する結果は48ですが実際は44になります。($bには2行目の結果が入ったままってことでしょう) 2行目を$b = &$a * 2;のようにすると24になります。(*2は無視?) 期待する結果を表示するにはどのように記述すればいいのでしょうか。 PHP5.2.6
682 名前:nobodyさん mailto:sage [2009/03/28(土) 14:13:07 ID:???] >>681 言いたい事は理解できた $b は常に $aに入れた値を2倍にする変数にしたいという事だな 2行目の $b = $a * 2 は $bに$aの値を2倍した値を入れるという命令だ だから2行目では$bで$a(2)*2で4が入って3行目で4が出力、 4行目で$aに4を代入しているが5行目では$bは変化無しの4が表示されるから44となる そして $b =& $a * 2 は変数の参照という事になって $b に入れた値は $a にも反映されるという事だ 2行目で変数&bは$aを参照しているとしているから3行目で2が表示されて 4行目で$aに4を入れているが$aと$bは参照の関係にあるから$bは4となり24となる 変数でそんな事が出来るか記憶を辿ってみたが…出てこない 件を解決する簡単な方法は関数を作ることだと思うんだが?
683 名前:nobodyさん mailto:sage [2009/03/28(土) 14:21:32 ID:???] >>681 掛け算の結果にまで参照変数を反映させるのは無理。もう一回掛け算するしかない $a = 2; $b = $a * 2; echo $b; $a = 4; $b = $a * 2; echo $b;
684 名前:nobodyさん [2009/03/28(土) 14:30:41 ID:jCCBzDpK] pChartを使ってレーダーチャートを描いています。 デフォルトでは縦軸にラベル(目盛?10、20、30...など)が表示されるのですが、 これを表示しないようにするにはどうすればよいのでしょうか? 公式のドキュメントを読んだのですが、わかりませんでした。 どなたか分かる方がいましたら、よろしくお願いします。
685 名前:681 [2009/03/28(土) 15:12:28 ID:0oeFWAvW] >>682-683 ありがとうございます。 変数のみでは求めることは無理なんですね。関数で処理することにします。
686 名前:nobodyさん mailto:sage [2009/03/28(土) 15:25:27 ID:???] 多分681がイメージしているような、「$aを2倍して返す処理」自体を$bに変数として格納するような仕組みはクロージャという。 関数をその場で組み立てるイメージだな。普通に関数を使う場合と違い、「2」の部分を$bの生成時に動的に組み込める。 JavaScriptやRubyでは可能、JavaやPHPでは不可能。PHPでは次のバージョンには盛り込まれる見込み。 これもまあ、関数を作っているわけだけど。 クラスを使ったりグローバル変数を使ったりしていいなら、今のPHPでも同じ処理は一応可能。
687 名前:nobodyさん [2009/03/28(土) 16:48:33 ID:y1nm6eda] POSTされた各フォーム毎の項目チェックをする時に、 $_POSTを直接チェックするのは何か問題がありますか? 例 if(!isset($_POST["name"])){ echo "未記入です"; } それか全て一旦POSTを変数に代入してチェックした方がいいですかね?
688 名前:nobodyさん mailto:sage [2009/03/28(土) 17:15:52 ID:???] まったく問題ない
689 名前:687 mailto:sage [2009/03/28(土) 17:25:52 ID:???] >>688 返信ありがとうございます。 なんとなく自信がなく聞いてみたんですが安心しました。 ありがとうございました。
690 名前:nobodyさん mailto:sage [2009/03/28(土) 19:01:42 ID:???] このスレを見ている人はこんなスレも見ています。(ver 0.20) 【ショタ】3次専ショタスレ 12【女装・美少年】 [Download] このスレに変態がいる!!
691 名前:nobodyさん mailto:sage [2009/03/28(土) 19:31:18 ID:???] phpの関数名でググった時 公式のドキュメントじゃなくて phpspotのアフィドキュメントが上位に来るのがむかつくんだけど どうしたらいい? googleで除外urlを指定できたらいいんだけど
692 名前:nobodyさん mailto:sage [2009/03/28(土) 19:36:20 ID:???] >>691 >>1
693 名前:nobodyさん mailto:sage [2009/03/28(土) 22:31:41 ID:???] >>690 呼んだ?
694 名前:nobodyさん mailto:sage [2009/03/28(土) 22:48:03 ID:???] journal.mycom.co.jp/news/2009/03/26/029/index.html
695 名前:nobodyさん mailto:sage [2009/03/28(土) 22:52:21 ID:???] GOTO文wwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
696 名前:nobodyさん mailto:sage [2009/03/28(土) 23:16:06 ID:???] GOTOを否定する奴は例外も使うなよ
697 名前:nobodyさん mailto:sage [2009/03/28(土) 23:27:52 ID:???] gotoよりはfinallyが欲しかったねぇ。 なんか都合があるんか知らんが。
698 名前:nobodyさん mailto:sage [2009/03/29(日) 05:04:23 ID:???] gotoってどういうときにつかうの?
699 名前:nobodyさん mailto:sage [2009/03/29(日) 06:25:15 ID:???] 帰ってきてほしくない時
700 名前:nobodyさん mailto:sage [2009/03/29(日) 09:35:20 ID:???] 人生をやり直したいとき
701 名前:nobodyさん [2009/03/29(日) 13:21:29 ID:EDw1f4T+] define("TEST",realpath(".")); という定数があったとして、TESTの中身が「/home/test/public_html」だとします。 通常は、定数指定して include_once(TEST.'/test.php'); としてディレクトリ指定代わりに出来ますが、 定数の中身で表示する事って出来ませんでしょうか?上の例で言うと include_once('/home/test/public_html」'.'/test.php'); と言うように書き出せればと思っています。
702 名前:nobodyさん mailto:sage [2009/03/29(日) 13:28:04 ID:???] 表示ってどこに?ソースコード中に?
703 名前:701 mailto:sage [2009/03/29(日) 13:29:17 ID:???] >>702 fopenでファイル作成する時に、その出力側のファイル上に include_once('/home/test/public_html'.'/test.php'); という形で記述されて欲しいのです。
704 名前:nobodyさん mailto:sage [2009/03/29(日) 13:31:15 ID:???] 意味が分からない fopenでtest.phpを作成するってこと?
705 名前:nobodyさん mailto:sage [2009/03/29(日) 19:34:50 ID:???] fopenはファイル開くだけだろ。PHPとしては動かないよ PHPスクリプトをファイルとして開く理由がわからんが
706 名前:nobodyさん [2009/03/29(日) 20:07:08 ID:g6t/L+Oe] atelier-ps3.jp/rorona/ このサイトいくらぐらい掛かってると思いますか?
707 名前:nobodyさん [2009/03/29(日) 20:07:18 ID:A+4tAAtu] 配列で存在しないキーにアクセスするとnoticeが出るはずですが、 以下のようにすると出ません。 これは何故ですか? error_reporting(E_ALL | E_STRICT); class Hoge { protected $_value = array(); public function & getEntity($key){ return $_value[$key]; } } $hoge = new Hoge(); var_dump($hoge->getEntity('no_key'));
708 名前:nobodyさん mailto:sage [2009/03/29(日) 20:08:51 ID:???] return $this->_value[$key]; でした 結果は同じですが
709 名前:nobodyさん mailto:sage [2009/03/29(日) 20:18:24 ID:???] 参照だから。
710 名前:nobodyさん mailto:sage [2009/03/29(日) 20:20:00 ID:???] リファレンス返してるからだろ
711 名前:nobodyさん mailto:sage [2009/03/29(日) 20:23:38 ID:???] リファレンスだと何故noticeが出ないのですか?
712 名前:nobodyさん mailto:sage [2009/03/29(日) 20:34:22 ID:???] リファレンスって何か知らんで使ってんの?
713 名前:nobodyさん mailto:sage [2009/03/29(日) 21:07:35 ID:???] >>711 参照を張るとzvalが増えて変数を定義したのと同じことになるからな。 計算機の基礎だと思うが。
714 名前:nobodyさん mailto:sage [2009/03/29(日) 22:45:02 ID:???] >>696 強盗みたいだから否定してるのであって例外は問題ない、というのが今の反GOTO派の主流
715 名前:nobodyさん [2009/03/29(日) 23:05:06 ID:lmZMeLkn] 【OS名】CentOS 5.1 【PHPのバージョン】php5.16 【連携ソフトウェア】mysql 【質問内容】 print'<tr>'; while ($row = mysql_fetch_object($res)){ print'<td>'."$row->NAME".'</td>'; } MySQL から 特定のフィールドを取得し,HTML のテーブルに5列ずつ表示しようとしております。 5列毎にprint'</tr>';を挿入して テーブルの行数をかえたいのですが,どのようにすればよろしいでしょうか? 【求める結果】MySQL テーブルのの行数が8行の場合 <tr> <td>NAME1</td> <td>NAME2</td> <td>NAME3</td> <td>NAME4</td> <td>NAME5</td> </tr><td> <td>NAME6</td> <td>NAME7</td> <td>NAME8</td> </tr> お手数ですがよろしくお願いします。
716 名前:nobodyさん mailto:sage [2009/03/29(日) 23:19:48 ID:???] pager?
717 名前:nobodyさん mailto:sage [2009/03/29(日) 23:21:58 ID:???] >>713 なるほど、参照を張ると変数定義と同じになるんですね。
718 名前:nobodyさん mailto:sage [2009/03/29(日) 23:22:53 ID:???] 雑だけど。 $i = 1; while ($row = mysql_fetch_object($res)){ print'<td>'."$row->NAME".'</td>'; if($i == 5){ print'</tr>'; $i = 1; }else{ ++$i; } }
719 名前:nobodyさん mailto:sage [2009/03/29(日) 23:28:38 ID:???] >715 HTMLマークアップが不正な件。 8個の場合、2行目3列目までで終わるが、余った2セルはどう埋めるんだ? >718 <tr>がない。
720 名前:715 [2009/03/29(日) 23:39:03 ID:lmZMeLkn] ご回答ありがとうございます。 >>718 を参考にして, $i = 1; while ($row = mysql_fetch_object($res )){ if($i == 1){ print'<tr>'; } print'<td>'."$row->NAME".'</td>'; if($i == 5){ print'</tr>'; $i = 1; }else{ ++$i; } } としてみました。 >>719 の件については,とりあえず暫定的に MySQL 内の行数を5の倍数にしておきます。 皆様ありがとうございました。
721 名前:nobodyさん [2009/03/30(月) 05:37:45 ID:Sq1DK82P] DBなどすべてUTF-8で構築しております。 そのうえで、xmlWriter()をつかって「EUC-JP」で XMLを書き出したいのですがどうしたらよいのでしょうか? 単にstartDocumentでEUC-JPを指定するだけでエンコードを変更できるのでしょうか? Firefoxでは表示され、safariだとエラーになってしまいます。 $writer = new xmlWriter(); $writer->openMemory(); $writer->startDocument('1.0', 'EUC-JP'); $writer->startElement('root'); (略) $writer->endElement(); $writer->endDocument(); return simplexml_load_string($writer->outputMemory(TRUE)); ちなみに各Directiveの値もメモしておきます。 mbstring.http_input auto mbstring.http_output pass mbstring.internal_encoding UTF-8 mbstring.script_encoding no value ※もうひとつのスレッドでは答えがわからずじまいで、 どうしたらよいかヒントだけでもつかめたらと思います。 どうぞお願いいたします。
722 名前:nobodyさん mailto:sage [2009/03/30(月) 08:22:50 ID:???] マルチ乙
723 名前:nobodyさん [2009/03/30(月) 12:12:19 ID:ObvykTsh] 初心者ですが質問させて下さい。 www.gen-x-design.com/projects/php-thumbnailer-class/ このサイトのthumbnail.inc.phpを使って画像をリサイズしてサムネイルを生成したのですが いまいち仕組みがわからずにいます。 リサイズされた画像はどこかに保存されているんでしょうか?
724 名前:nobodyさん mailto:sage [2009/03/30(月) 12:16:26 ID:???] スクリプトの仕組み解らなくてもOSのファイル検索くらいは使えるだろ
725 名前:nobodyさん [2009/03/30(月) 12:28:05 ID:ObvykTsh] OSのファイル検索? 実際にサイトにアップして表示させてみました。 そしたらリサイズされた画像が表示されたんですが サイトのどこをみても画像が増えた形跡がありません。 リサイズした画像を別に保存するわけではないのですか?
726 名前:nobodyさん mailto:sage [2009/03/30(月) 12:41:43 ID:???] いやだからファイル探したいならファイル検索すればいいじゃん
727 名前:nobodyさん [2009/03/30(月) 12:49:44 ID:ObvykTsh] 検索したくても、どんな形式でどんなファイル名で保存されてるかわからないので 画像のアドレスをみても show_image.php?filename=sample.jpg&width=250&height=250 と書いてあるだけなんです
728 名前:nobodyさん mailto:sage [2009/03/30(月) 13:07:26 ID:???] 別に保存されてないんじゃねーの?
729 名前:nobodyさん mailto:sage [2009/03/30(月) 13:09:40 ID:???] これしてねーんだろ $thumb->save('path/to/file.jpg',80);
730 名前:nobodyさん [2009/03/30(月) 13:13:48 ID:ObvykTsh] あ、それしてないですね それをしないとただ大きい画像を縮小してるだけで意味ないんでしょうか?
731 名前:nobodyさん mailto:sage [2009/03/30(月) 13:26:05 ID:???] サムネで表示しただけで保存されるほうがうっとうしいわ
732 名前:nobodyさん mailto:sage [2009/03/30(月) 13:53:38 ID:???] っということは、大きい画像を元に サイズも容量も小さくして表示ができるってことでいいのでしょうか。 サムネイル画像の保存をせずに
733 名前:nobodyさん [2009/03/30(月) 14:28:36 ID:Nai97eUH] 頭がこんがらがってしまったので質問させて下さい。 データベースを用いてアプリケーションを作る際 例えば該当するIDを選んでupdate、deleteする時に、 該当するIDがある時は正しく削除され、削除されました。 とメッセージを返すんですが何らかの形で該当しないIDが 投げ込まれた時は一般的にはどのような処理をされていますか? まず該当するIDがあるかselectで調べて、ある場合はupdateもしくは deleteで処理みたいな形ですかね? アドバイスよろしくお願いします。
734 名前:nobodyさん mailto:sage [2009/03/30(月) 14:50:52 ID:???] それでいいよ
735 名前:nobodyさん mailto:sage [2009/03/30(月) 15:01:56 ID:???] >>733 jp.php.net/manual/ja/pdostatement.rowcount.php とか類似関数で。
736 名前:733 mailto:sage [2009/03/30(月) 15:12:04 ID:???] >>734-735 返信ありがとうございます。 これまでなんとなくしか理解できてなかったのですが 今スッキリしました。 本当にありがとうございました。
737 名前:nobodyさん [2009/03/30(月) 18:45:52 ID:Gjy/ZAJ6] 【OS名】Ubuntu 8.10 【PHPのバージョン】5.2.6-2ubuntu4.1 【連携ソフトウェア】Apache/2.2.9 【質問内容】 PHPをさわり初めて一日目の初心者です。 header ( "HTTP/1.0 404 Not Found" , true , 404 );で、.htaccessで指定した404エラーページを 表示させたいのですが、ブランクページになって表示されません。 確かに404エラーページはファイル自体が存在していない場合のみ表示されますので、Location:で 存在しないファイルにリダイレクトさせて見たところ、見事404エラーページが表示されました。 しかし、この方法はアドレスが変更されてしまうので、できればそのPHPのアドレスで、404エラー を表示させたいのですが、何か方法はございませんでしょうか。 よろしくお願いします。
738 名前:nobodyさん mailto:sage [2009/03/30(月) 23:26:09 ID:???] >>737 readfileでエラーページの内容をそのまま流しちゃダメなの? jp.php.net/manual/ja/function.readfile.php
739 名前:nobodyさん mailto:sage [2009/03/31(火) 06:15:24 ID:???] クラスについて質問です。 ttp://www.m-fr.net/study/object/object04.html このサイトで、 >で、こうします。 > >obj = new 三角クラス; >適当な変数 = obj->get_1辺の長さ(); // データの取得 >obj->set_1辺の長さ(適当な値); // データの設定 とあるのですが、下の二行は順序が逆の方がよいのでは?と思いました。 setしてからそのsetした結果得られる値をgetする、みたいに。 その方がしっくりくるというか・・ もしかしたら、何か理由(もしくは自分の勘違い)があって、 getをまず書いておいて、そのsetする一行を書く、という形式にしてるのか よくわからないので、教えていただけないでしょうか よろしくお願いします。
740 名前:nobodyさん mailto:sage [2009/03/31(火) 08:44:30 ID:???] 2行目で得た値を3行目で使っているわけではないと思うぞ? getとsetの別々の事例かと あとスレタイ
741 名前:nobodyさん [2009/03/31(火) 10:26:43 ID:MdY2FCLh] WindowsXP上で開発を行っているのですが、 Windowsの絶対パスでrequireで読み込むとエラーになります。 require_once("C:\htdocs\test.php"); ↓ failed to open stream: Invalid argument どうしたら読み込めるようになるのでしょうか?
742 名前:nobodyさん mailto:sage [2009/03/31(火) 10:35:59 ID:???] echo "C:\htdocs\test.php"; やってみそ
743 名前:nobodyさん mailto:sage [2009/03/31(火) 10:53:51 ID:???] >>683 今コード用意しますのでちょっと待っててくださいね
744 名前:nobodyさん mailto:sage [2009/03/31(火) 11:14:25 ID:???] アンカ間違えましたね^^; >>681 さんおすきなほうどうぞ その1 function cale($a,$b) {echo "<p>" .($a * $b). "</p>";} $a = 2; $b = 2; cale($a,$b); $a = 4; cale($a,$b); その2 function cale($a,$b) {echo "<p>" .($a * $b). "</p>"; } // $aと$bはそれぞれ別の値を持てる $a = 2; $b = 2; $cale($a,$b); // $aと$bは常に同じ値になる $b = &$a; $a = 100; cale($a,$b); $a = 5; cale($a,$b);
745 名前:nobodyさん mailto:sage [2009/03/31(火) 11:20:52 ID:???] >>737 rewrite
746 名前:nobodyさん mailto:sage [2009/03/31(火) 12:20:45 ID:???] >>737 あなたのやろうとしてることはおすすめできない
747 名前:nobodyさん mailto:sage [2009/03/31(火) 13:58:39 ID:???] >>737 アパッチ「俺の仕事はもう終わってんだからバックパスすんな」
748 名前:nobodyさん [2009/03/31(火) 15:08:08 ID:H7khy467] +食べ物 ++りんご ++バナナ ++ぶどう ↑の4行を↓のようにhtmlタグとして出力したいのですが wikiみたいなことがやりたいのですがどなたかヒント頂けないでしょうか? <ul> <li>食べ物</li> <ul> <li>りんご</li> <li>バナナ</li> <li>ぶどう</li> </ul> </ul>
749 名前:nobodyさん mailto:sage [2009/03/31(火) 15:12:34 ID:???] wikiのソース見ればいいのでは?
750 名前:nobodyさん mailto:sage [2009/03/31(火) 15:19:27 ID:???] >>749 HTMLソース見てもしょうがないだろw
751 名前:nobodyさん mailto:sage [2009/03/31(火) 15:27:10 ID:???] >>749 そんなんで片付くならこのスレが82代まで行かないでしょw 答えてやればいいじゃんwww
752 名前:nobodyさん [2009/03/31(火) 15:27:12 ID:qal8dqXu] >>738 ,745 ありがとうございます。 >>746-747 本当はファイルが存在しているのに無理矢理サーバーにファイルが存在していないことにして、エラーページを表示させるところが でしょうか。それとも、「header ( "HTTP/1.0 404 Not Found" , true , 404 );」がおすすめできないのでしょうか。 もし、そうであれば、「header("HTTP/1.0 301 Moved Permanently") ;header("Location: www.example.com/ ") ;」 などのリダイレクトであれば大丈夫ですか。
753 名前:nobodyさん [2009/03/31(火) 15:27:13 ID:WkuOnscP] 【OS名】TurboLinux 【PHPのバージョン】4.3.11 【連携ソフトウェア】Apache2 【質問内容】 auto_prepend_fileで指定したファイルが動いてくれません。 .htaccessで、「php_value auto_prepend_file "ap.php"」と記述しました。 ap.phpの中身は「<? echo("test"); ?>」です。 これでhostname/index.php を開くと、 画面上部に「test」と表示されることを期待しているのですが、 TurboLinux + PHP4.3.11のサーバーでは実際は何も表示されませんでした。 もうひとつUbuntu + PHP5.2.4のサーバーがあるのですが、 そちらに同様のコードを設置したところ、意図したとおりに動きました。 何か設定の問題だとは思うのですが、何が問題なのか分からずに困っています。 ひとまず以下のことを試しました。 ・phpinfoを確認 ⇒ auto_prepend_fileのLocal Valueは「ap.php」になっている ・auto_prepend_fileの設定をわざと"ap2.php"にした ⇒ ファイルが読み込めないエラー ・ap.phpの中身をわざと文法エラーにした ⇒ 何のエラーも出ない(display_errorsはon) ・ap.php、index.phpの両方でWarningが出るようにした ⇒ index.phpのWarningのみが表示される ・ap.phpの一行目(<?〜?>の外側)に「aaaaa」を追加 ⇒ 何も表示されない どうもauto_prepend_fileでap.phpを読み込んではいるものの、 ap.phpのコードが実行されていないようです。 この現象について分かる人がいらっしゃいましたらご教示下さい。
754 名前:nobodyさん mailto:sage [2009/03/31(火) 15:50:33 ID:???] >>753 >ap.phpの中身は「<? echo("test"); ?>」です。 <?使えるなら<?=使えよ ていうか<?phpって書く方を推奨
755 名前:nobodyさん mailto:sage [2009/03/31(火) 15:53:09 ID:???] >>753 よくわかんないけど全てのページのヘッダに挿入するならmod_layout ttp://d.hatena.ne.jp/hogem/20090321/1237569005
756 名前:nobodyさん mailto:sage [2009/03/31(火) 19:15:21 ID:???] >>748 質問に対する答じゃないけど、HTMLは <ul> <li>食べ物 <ul> <li>りんご</li> <li>バナナ</li> <li>ぶどう</li> </ul> </li> </ul> こう書いた方がいいと思う。
757 名前:nobodyさん mailto:sage [2009/03/31(火) 20:09:26 ID:???] >>748 ttp://d.hatena.ne.jp/noopable/20090202/1233528691
758 名前:nobodyさん mailto:sage [2009/03/31(火) 22:31:20 ID:???] >674 今日めっけた ttp://d.hatena.ne.jp/anatoo/20090320/1237530764 function ref($obj){ return $obj; } ref(new Hoge)->doSomething(); 良し悪しはともかく、発想は面白い。
759 名前:nobodyさん mailto:sage [2009/03/31(火) 22:32:52 ID:???] そこまでして1行にして何のいいことがあるんだろう
760 名前:nobodyさん mailto:sage [2009/03/31(火) 23:09:23 ID:???] 余計な関数が増えることには何の抵抗もないのかw
761 名前:nobodyさん mailto:sage [2009/03/31(火) 23:32:57 ID:???] 一時変数が(複数の場所で)増える事と関数が増える事のトレードオフなら、俺なら関数を増やす。 このためだけにgetInstance()とかfactory()とか定義したら、関数増やすよりタチ悪いしな。 ただ、一般的な書き方じゃないので、ref()の定義を探さないと読めない=コードの可読性が落ちるのが難点。 JavaScript界の$()みたいに、一般的なハックになったらアリかな。
762 名前:nobodyさん mailto:sage [2009/03/31(火) 23:35:38 ID:???] 他言語でできるのにPHPでできないのがむかつくんだよな
763 名前:nobodyさん mailto:sage [2009/03/31(火) 23:38:29 ID:???] オブジェクトの基底クラスにstaticなnewが実装できたら Hoge::new()->doSomething(); ってできるのにな
764 名前:nobodyさん mailto:sage [2009/04/01(水) 00:05:10 ID:???] singletonでいいじゃん
765 名前:nobodyさん mailto:sage [2009/04/01(水) 01:36:40 ID:???] 一行にしたいって要求に対して、singleton提案するやつw
766 名前:nobodyさん mailto:sage [2009/04/01(水) 01:37:54 ID:???] >>761 いっしょに仕事したくないタイプだわ。なんだよrefって
767 名前:nobodyさん mailto:sage [2009/04/01(水) 02:05:39 ID:???] >>765 一行になるじゃん
768 名前:nobodyさん mailto:sage [2009/04/01(水) 02:20:35 ID:???] メソッドチェーンがやりたいだけだろ
769 名前:nobodyさん mailto:sage [2009/04/01(水) 02:32:15 ID:???] 誰が?
770 名前:nobodyさん mailto:sage [2009/04/01(水) 02:51:42 ID:???] 俺!
771 名前:nobodyさん mailto:sage [2009/04/01(水) 03:16:29 ID:???] singletonはウンコすぎ。singleton依存症は治る病気だから通院したほうがいいぞ 1行で書きたいって理由だけでstaticなクラスメソッドを増やすのは流石にナシだろ だいたい1つや2つならともかく、そういう書き方がしたくなるようなJavaっぽい書き方をしてたら抽象データ型なんて死ぬほどできるわけで そういうクラス全部にstaticメソッド定義すんのかって話になる。継承も使えないし コンストラクタが引数を取るような場合さらに面倒くせえしな まあ、そもそもJavaっぽい書き方なんかするなよ、って言うのが多分正解だけどな $tmp = new Hoge(); $tmp->fuga();でいいだろ 使いもしない一時変数が増えるのがキモいって気持ちは分かるが
772 名前:nobodyさん [2009/04/01(水) 07:15:56 ID:zGetu19r] ファイルをダウンロードできるWebアプリがあって、IE8で保存するフォルダをゆっくり選択してると サーバ側のPHP(5.2.6/Windows)がタイムアウトしちゃうんですが、そういうもんなんでしょうか。 タイムアウト伸ばすしかないのかなぁ。 ファイルが壊れるだけで、一見したところ気がつかないのが、またいやらしい。
773 名前:nobodyさん mailto:sage [2009/04/01(水) 07:21:55 ID:???] てか、singletonは全く別次元の話だろ
774 名前:nobodyさん mailto:sage [2009/04/01(水) 07:26:35 ID:???] >>771 ひとつひとつのクラスにstaticメソッドを実装するってことではなく rubyみたいにすべてのオブジェクトの先祖になるクラスにstaticを実装するって意味。 今でもrunkit使えば可能なのか、どうか知れないが、 標準で出来たらいいなぁ
775 名前:nobodyさん [2009/04/01(水) 08:25:46 ID:wwrEQ3GF] WindowsXPで開発しているのですが、 echo realpath("."); とすると、C:\Program Files\Apache Group\Apache2\htdocs のように\が付きます。これを/に置換すれば良いだけでしょうが、 最初から\ではなく/にして、ディレクトリ名を取得する方法はないでしょうか?
776 名前:nobodyさん mailto:sage [2009/04/01(水) 08:34:02 ID:???] >>771 じゃsingletonじゃなくて普通にインスタンス返すメソッドでいいじゃん
777 名前:nobodyさん mailto:sage [2009/04/01(水) 08:43:29 ID:???] レンたるサーバーなのでMysqlのmax_connectionを増やせまえん。 たまにMysqlへの接続数が多すぎてエラーになります。 そこで、 if(){ 通常通りMysqlへ接続} {接続エラー時の対処} こんな感じにしたいと思ってるんですが、いい関数ありますか?
778 名前:nobodyさん mailto:sage [2009/04/01(水) 09:25:38 ID:???] >>771 でいいだろ。気持ち悪いコードやメソッド増やしたいやつ多すぎ
779 名前:nobodyさん mailto:sage [2009/04/01(水) 09:28:10 ID:???] >>777 die
780 名前:nobodyさん mailto:sage [2009/04/01(水) 09:29:50 ID:???] そもそも、newしてメソッドを一つだけ実行ってのは設計がダメだな。 staticで十分か、コンストラクタに仕事させすぎ。
781 名前:nobodyさん mailto:sage [2009/04/01(水) 09:54:46 ID:???] >>775 Windowsをunixベースにする
782 名前:nobodyさん mailto:sage [2009/04/01(水) 11:02:36 ID:???] >>775 nai
783 名前:nobodyさん mailto:sage [2009/04/01(水) 11:04:49 ID:???] >>777 こっちのほうおすすめ function errorMysql() { エラー処理 exit; } if (!接続) errorMysql
784 名前:nobodyさん mailto:sage [2009/04/01(水) 11:49:45 ID:???] 例外使えよ
785 名前:nobodyさん mailto:sage [2009/04/01(水) 17:33:12 ID:???] 最近書き込み減ったに 貴様らなにしてんのかね
786 名前:nobodyさん mailto:sage [2009/04/01(水) 18:09:20 ID:???] もう一つの某巨大掲示板に移動したんじゃね?
787 名前:nobodyさん mailto:sage [2009/04/01(水) 18:21:05 ID:???] >>786 それってどこよ?
788 名前:nobodyさん mailto:sage [2009/04/01(水) 18:36:52 ID:???] >>785 PHPの仕事を他の人に任せてコーディングの仕事するようになった
789 名前:nobodyさん mailto:sage [2009/04/01(水) 21:00:24 ID:???] >>787 おしえてグー
790 名前:nobodyさん mailto:sage [2009/04/01(水) 23:06:31 ID:???] >774 絶対言われると思った。俺もそれは考えたが、5.3.0より前のPHPでは無理。 親クラスで定義された静的メソッドで、子クラスのインスタンスは生成できない。つまり class Parent{ static function getInstance(){ //do something } } class Child extends Parent{} とあった場合、Parent::getInstance()の実装がどんなだろうと、Child::getInstance()がChildのインスタンスを返すのは不可能。 Childというクラス名すら取得できない。 >780 { new UrlString("pc11.2ch.net/test/read.cgi/php/1236532468/ ") }->domain(); コンストラクタによる依存性注入をしてる場合も、newしてすぐメソッドを呼ぶだけでじゅうぶんな事がある。 引数なしのコンストラクタならばたいていの場合不要ってのは同意。
791 名前:nobodyさん [2009/04/02(木) 09:51:30 ID:ij3728yl] pear.php.net/manual/ja/package.text.text-statistics.intro.php これって日本語は対応してないの?
792 名前:nobodyさん mailto:sage [2009/04/02(木) 10:31:00 ID:???] ソース見りゃ分かんべ
793 名前:nobodyさん [2009/04/02(木) 10:35:42 ID:ij3728yl] >>792 いやいや、、、 まだそこまでレベルいってないですよ だからあなたが代わりに見て判断してください
794 名前:nobodyさん mailto:sage [2009/04/02(木) 10:44:44 ID:???] じゃレベル上げろ
795 名前:nobodyさん mailto:sage [2009/04/02(木) 10:56:23 ID:???] 長い文と難しい単語(音節のたくさんある)の割合で計算してるみたいだから、 原理的には日本語でも計算は可能だろうけど、日本語ではMecabとかないと大変だし、 多分計算式に定義されてる係数は日本語の場合を考慮していないので、 信頼出来る結果のためには自分で文献にあたるとか実地調査して決定する必要があるべ。
796 名前:nobodyさん [2009/04/02(木) 11:12:51 ID:CfxT7le3] 【OS名】windows xp home edition 【PHPのバージョン】php5ぐらい 【連携ソフトウェア】mysql 【質問内容】 フォームのセレクト項目で悩んでいます。 form.phpを表示させるとき、セレクト項目を mysqlから取り出して表示させているのですが (idとその名前) セレクト項目が4つもあるので、何か一気に取り出す方法が あったりするのですか?それとも、一個一個4つのセレクト用に select genre_id,genre_name from genre; (genreはジャンル) というふうにするしかないですか?
797 名前:nobodyさん [2009/04/02(木) 11:30:18 ID:4VqTVZ/0] mysqlの勉強をしてます 以下のようなデータをデータベースに登録してます id,name,age 1,田中,20 2,木村,31 3,坂下,43 このデータをテーブルに書きだしたいのですが pearなどのライブラリを使用しない場合、どのようなコードを書くのが効率いいでしょうか? mysql以外のデータベースは使用しないのでmysqlに特化した書き方をどなたかご教示お願いいたします
798 名前:796 mailto:sage [2009/04/02(木) 11:40:45 ID:???] >>797 $link = mysql_connect('localhost','ユーザ名','パスワード名'); mysql_select_db('データベース名'); $sql = "select * from テーブル名"; $result = mysql_query ( $sql ); while ( $data = mysql_fetch_array ( $result ) ) { $data['id']; $data['name']; $data['age']; } じゃないの?
799 名前:nobodyさん [2009/04/02(木) 11:48:45 ID:e2MYzFKZ] すみません、僕もちょっと似たようなこと?で質問させてください >>797 さんのデータで id,name,age 1,田中,20 2,木村,31 3,坂下,43 とありますが、たとえばID2の木村さんの行だけを取得する場合、 while ( $data = mysql_fetch_array ( $result ) ) { if (2==$data['id']) { $id = $data['id']; $name = $data['name']; $age = $data['age']; break; } } とやってきたのですが、MYSQLではピンポイントで取得することができないってことでしょうか?
800 名前:796 mailto:sage [2009/04/02(木) 11:59:21 ID:???] >>799 嘘だよね? select * from テーブル名 where id=2; あるいは、 where name='木村';
801 名前:nobodyさん mailto:sage [2009/04/02(木) 12:07:31 ID:???] >>796 mysql_fetch_arrayの結果を4回使いまわす
802 名前:796 mailto:sage [2009/04/02(木) 12:09:54 ID:???] >>801 違うんです。4つそれぞれ別なんです。 テーブル結合でも想像できないのでやっぱり4回やらないとだめなのかな
803 名前:nobodyさん mailto:sage [2009/04/02(木) 12:29:08 ID:???] XAMPPをインストールしました。 MySQLにパスワードを設定しようとphpmyAdminでuser テーブルを表示させましたが Hostが%のレコードがありません。localhost と127.0.0.1というのだけです。 パスワードを設定するのはlocalhost と127.0.0.1でいいのでしょうか?
804 名前:796 mailto:sage [2009/04/02(木) 12:40:16 ID:???] $xxx[0] = "genre"; $xxx[1] = "property"; $xxx[2] = "actress"; $i=0; $g=0; while ( $i < count($xxx) ) { $sql = "select $xxx[$i]_id,$xxx[$i]_name from $xxx[$i]"; $result = mysql_query ( $sql ); while ( $data = mysql_fetch_array ( $result ) ) { $xxb[$g][$xxx[$i]]['id'] = $data[0]; $xxb[$g][$xxx[$i]]['name'] = $data[1]; $g++; } $i++; } これでいい?
805 名前:nobodyさん mailto:sage [2009/04/02(木) 12:56:43 ID:???] 気持ちの悪いメンテナンスしづらいコードですね
806 名前:796 mailto:sage [2009/04/02(木) 12:58:10 ID:???] >>805 これでいけました >>796 の質問者です。 一回のSQLで4つのテーブルのIDと名前をゲットできました
807 名前:nobodyさん [2009/04/02(木) 13:01:43 ID:vfSwYPOW] 【OS名】centos 【PHPのバージョン】php5.26 smarty使用 【連携ソフトウェア】mysql 【質問内容】 初めての質問です。 よろしくお願いします。 登録フォームが都合上ページの下部にあるのですが PHPで入力エラーを同じページの同じ登録フォームのある部分に表示しております。 ページ上部に登録フォームのアンカーへ移動するリンクはありますが PHPではいたエラー文言付画面の表示時に下部のアンカーへ移動して表示するには javascript以外に方法はないでしょうか? 要はwww.etc.com/touroku.php#a みたいにやるにはどうすればいいのか、よろしくお願いいたします。
808 名前:796 mailto:sage [2009/04/02(木) 13:05:48 ID:???] 正確に書けば、$xxb[$xxx[$i]][$g]['id'] = $data[0]; かな for($i=0;$i<count($xxb['genre']); $i++) で各セレクト分でしよう
809 名前:796 mailto:sage [2009/04/02(木) 13:26:45 ID:???] >>804 途中で$g=0;を入れるのを忘れました。 $i++の後
810 名前:nobodyさん mailto:sage [2009/04/02(木) 13:51:13 ID:???] 796さん、あなたを下スレ公認回答者に認定いたします
811 名前:nobodyさん mailto:sage [2009/04/02(木) 18:28:53 ID:???] >>807 actionかlocationでの遷移先をそれに設定すればいいのでは?
812 名前:nobodyさん [2009/04/02(木) 19:09:54 ID:vfSwYPOW] >>811 ありがとうございます、できました!!
813 名前:nobodyさん [2009/04/02(木) 21:54:38 ID:SbciSXr8] すません pukiwikiとかの既存ソースを使ってるのですが PHPがサバの設定でポート指定されていて 既存ソースだと、リンク先がPHPの場合、ポート指定が外されてしまうのです TOPページが :7070 で実行してたら 遷移先が :7070 が外れてしまうという状態です 解決方法とかご教授願えますか。 質問場所が悪ければ、聴ける場所なども教えていただけると助かります
814 名前:nobodyさん mailto:sage [2009/04/02(木) 21:56:16 ID:???] pukiwikiの設定でサイトURL入れるとこあるんじゃ?
815 名前:nobodyさん [2009/04/02(木) 22:33:32 ID:SbciSXr8] なるほど… ちょっと探してみます。 ただ、pukiwikiに限らず、他のPHPでも 同じ状況になってしまうので根本解決するための方法など ご存知でしたらお願いします。
816 名前:nobodyさん mailto:sage [2009/04/02(木) 22:33:55 ID:???] 絶対リンクをやめる
817 名前:nobodyさん mailto:sage [2009/04/02(木) 23:10:28 ID:???] スクリプトの先頭でob_start()。 コールバック関数を指定して出力内容を全部受け取り、URLを全部置換する。
818 名前:nobodyさん mailto:sage [2009/04/02(木) 23:15:28 ID:???] 絶対リンク埋め込みだとしてもhttp://で検索すればすぐ書き換えられそうじゃん
819 名前:nobodyさん [2009/04/03(金) 01:14:27 ID:QmVSt/Vd] 【OS名】win xp sp3 【PHPのバージョン】php5.29 【連携ソフトウェア】mysql 【質問内容】 $val = NULL; $query = "insert into test (id, comment) value ($val, 'test')"; 上記のSQLをダンプしてみると NULLを代入した変数$valがNULLとして展開されていません。 もぬけの殻となってしまっています。 ※ダンプしたクエリ insert into test (id, comment) value (, 'test') なのでクエリーを投げるとエラーとなってしまいます。 NULLをinsertしたい場合は変数にいれず、 直接クエリの文に記述しないといけないのでしょうか?
820 名前:nobodyさん mailto:sage [2009/04/03(金) 01:28:48 ID:???] >819 現代人ならプリペアドステートメントを使え。プレースホルダ使える状況でクエリを直接組み立てる奴は原始人。 PDOStatement::bindValue()の第3引数にPDO::PARAM_NULLを指定すれば、NULLをDBに入力できる。 つうか、何もinsertしなければ、デフォルト値であるNULLが入るけどな。 (カラムにnullが許可されており、他のデフォルト値を指定していない場合に限る)
821 名前:nobodyさん mailto:sage [2009/04/03(金) 01:33:38 ID:???] DB上のnullじゃなくて言語上でnullだから無くて当たり前
822 名前:nobodyさん mailto:sage [2009/04/03(金) 01:33:52 ID:???] 単にこうするんじゃないか? $val = 'NULL';
823 名前:nobodyさん mailto:sage [2009/04/03(金) 01:34:01 ID:???] $val = 'NULL'; でNULLをDBに入力できる
824 名前:819 mailto:sage [2009/04/03(金) 01:37:29 ID:???] >>820 >プリペアドステートメント はじめて聞きました。 >何もinsertしなければ、デフォルト値であるNULLが入る これは理解していたのですが、インサート項目が非常に多く、 そのほとんどが必須ではないので、クエリを組み立てるのがめんどくさく 値がわたってこようがこなかろうがすべての項目をインサートさせてしまう感じで作ってしまいました。 プリペアドステートメント勉強します。 ありがとうございました。
825 名前:819 mailto:sage [2009/04/03(金) 01:39:55 ID:???] >>822 >>823 それだと文字列のNULLが入ってしまいました。 間違えてるかもしれないのでまた確認してみます。 ありがとうございます。
826 名前:nobodyさん mailto:sage [2009/04/03(金) 01:44:23 ID:???] されないだろ insert into test (id, comment) value (NULL, 'test')
827 名前:nobodyさん [2009/04/03(金) 02:04:33 ID:7RHF46qi] 申し込みフォームの作成について form1.phpにて記述されたformの内容をPOSTで form2.phpという確認画面で受け取るような プログラムを作ってるんですが、 確認画面にて前に戻るボタンと送信ボタン2つを作りたい場合は それぞれに同じ内容のhiddenを設定するしか方法はないんですかね? もしスマートな方法がありましたらアドバイスよろしくお願いします。
828 名前:nobodyさん mailto:sage [2009/04/03(金) 02:07:57 ID:???] セッション使えば?
829 名前:827 mailto:sage [2009/04/03(金) 02:11:24 ID:???] >>828 返信ありがとうございます。 やっぱりsessionがいいですよね。 もしPOSTでスマートに出来るならと思い聞いてみました。
830 名前:nobodyさん mailto:sage [2009/04/03(金) 02:26:52 ID:???] hiddenとか過去の産物だろ。更新ボタンとか戻るボタンとかでgdgdになるのが目に見えてる
831 名前:nobodyさん mailto:sage [2009/04/03(金) 02:29:07 ID:???] >>827 試してないけど、javascriptでformのactionを変更できるんじゃないの。 msdn.microsoft.com/ja-jp/library/cc409726.aspx このへんは趣味の問題かもしれんが、セッションに値を保持するのは、 同じセッションで複数タブ開かれた場合に動作がおかしくなりやすいから、 あんまりお勧めはできん。
832 名前:nobodyさん mailto:sage [2009/04/03(金) 02:30:00 ID:???] >>830 戻るでグダグダになるのはセッションじゃないかい?
833 名前:nobodyさん mailto:sage [2009/04/03(金) 02:38:12 ID:???] とりあえずhiddenを批判するやつはどこにでもいる
834 名前:nobodyさん mailto:sage [2009/04/03(金) 03:42:37 ID:???] 入力、確認を違うファイルにするとエラー処理がめんどい
835 名前:nobodyさん mailto:sage [2009/04/03(金) 04:07:02 ID:???] php5.3rc1使ってる人に質問です。 php.iniに書いたmb_string系の設定って反映されてますか? あと何故かapcも動かない、、、 いくら設定を見直してもなにが悪いのかわかりません。 解決策をご存知の方いましたら、教えてください。
836 名前:835 mailto:sage [2009/04/03(金) 06:55:01 ID:???] 解決しましたすみません;ケアレスミスでした・・・
837 名前:nobodyさん mailto:sage [2009/04/03(金) 07:27:17 ID:???] >>783 ありがとうございます。それでいってみたいと思います。
838 名前:nobodyさん [2009/04/03(金) 07:28:49 ID:b3GlDVd8] クエリの時のプリペアドステートメントって、どういう効果があるんですか? 一応本では読んだんですがいまいちよくわかりません 簡単に説明お願いします
839 名前:nobodyさん mailto:sage [2009/04/03(金) 08:01:16 ID:???] >>838 繰り返し使われる場合はパフォーマンスが上がることもあるみたいだけど、一番大きいのは SQLインジェクションみたいな攻撃を受けにくくなることじゃないの。
840 名前:nobodyさん mailto:sage [2009/04/03(金) 08:43:25 ID:???] そんなのクオートすりゃ済む話だろ
841 名前:nobodyさん mailto:sage [2009/04/03(金) 08:45:48 ID:???] >>819 もうプリペアでやってるかもしれないけど $a = ""; $var = "'".$a."'"; $query = "insert into test (id, comment) value ($val, 'test')";
842 名前:nobodyさん mailto:sage [2009/04/03(金) 10:01:31 ID:???] NULLと空文字は違うだろw
843 名前:nobodyさん mailto:sage [2009/04/03(金) 10:05:52 ID:???] 昔Oracleしか知らなくてnullとブランク何が違うか客先で質問して大恥かいたことあるぜ
844 名前:nobodyさん mailto:sage [2009/04/03(金) 11:18:56 ID:???] 根拠レスな「このコードはセキュリティがダメだね」発言は居酒屋での「大したことねえなマツザカ(笑」みたいな会話に近い neta.ywcafe.net/000974.html
845 名前:nobodyさん mailto:sage [2009/04/03(金) 11:26:15 ID:???] 俺も思う サンプルコードにこれ見よがしにつっこむ奴なんなの ある側面から切り取ってるんだから瑕疵がないほうがおかしいだろ
846 名前:nobodyさん mailto:sage [2009/04/03(金) 11:29:51 ID:???] 高木先生大の批判は辞めて下さい
847 名前:nobodyさん mailto:sage [2009/04/03(金) 11:45:02 ID:???] >>844 また宣伝か
848 名前:827 mailto:sage [2009/04/03(金) 15:07:28 ID:???] 返事が遅くなりすいません。 フォームの件ですが色々試しましてSESSIONでいくようにしました。 色々とアドバイス本当にありがとうございます。 それでもう一つ質問なんですが、 フォームのチェックボックスの内容をhtmlに直に書かず、 config.phpなどに$val=array("aaa","bbb","ccc"); みたいな感じで記述しhtmlでforeachを使い 全て書き出すみたいな事をしたいんですが、参考書などを確認したら 配列で記述するのではなくfunctionで function val(){ $val = array("aaa","bbb","ccc"); return $val; } という書かれ方がされてました。 関数にせず配列だけが記述すると何かマズイんですか? 質問が少しわかりにくいですがもしよければ アドバイスよろしくお願いします。
849 名前:nobodyさん mailto:sage [2009/04/03(金) 15:17:48 ID:???] >>848 $valの中身を将来的にコードからいじる可能性があるならfunction、 可能性がないなら定数のままでいい
850 名前:nobodyさん mailto:sage [2009/04/03(金) 15:40:20 ID:???] 最近、他人のブログを批判しながら2ちゃんで宣伝してアクセス数稼ぐのが流行ってるのか?
851 名前:827 mailto:sage [2009/04/03(金) 15:41:11 ID:???] >>849 返信ありがとうございます。 例えばこれから先チェックボックスの値dddが増えた場合、 $val=array("aaa","bbb","ccc","ddd"); でも function val(){ $val = array("aaa","bbb","ccc","ddd"); return $val; } でも変わらない気がするんですが・・・ 素人質問本当にすいません。 今から考えてみます。
852 名前:nobodyさん mailto:sage [2009/04/03(金) 15:48:11 ID:???] >>851 いい例が思いつかないのだけどこんな感じ。条件によって変わる場合だな function val(){ $val = array("aaa","bbb","ccc","ddd"); // 天気が雪の場合のみ配列にeeeを追加する if( $this->weather == "snow" ){ array_push( $val, "eee" ); } return $val; }
853 名前:nobodyさん mailto:sage [2009/04/03(金) 15:49:16 ID:???] >>851 前者でおk
854 名前:827 mailto:sage [2009/04/03(金) 16:12:12 ID:???] >>852 >>853 返信ありがとうございます。 今後、配列を元に何か条件をつけるなどの機会がある場合は 関数にしておく方が好ましいという事ですね。 例文まで書いていただき本当にありがとうございました!
855 名前:nobodyさん [2009/04/03(金) 18:24:43 ID:ZpjcrZDP] 文字列のシングルクォーテーションのみを エンティティに変換したいのですが、どうすればいいのでしょうか? htmlspecialcharsはダブルクォーテーションも変換しますし・・。
856 名前:nobodyさん mailto:sage [2009/04/03(金) 18:32:47 ID:???] vs php(VS2005評価版)でデバッグ実行しようとすると 次のエラーが出てしまいます。 何が原因なのでしょうか? Fatal error: Unknown: Failed opening required 'C:/Documents and Settings/繧イ繧ケ繝育畑縺ョ繝ヲ繝シ繧カ/My Documents/Visual Studio 2005/Projects/PHP_TEST/PHP_TEST/index.php' (include_path='.;C:\php5\pear') in Unknown on line 0 文字化けしちゃってますが C:\Documents and Settings\ゲスト用のユーザ\My Documents\Visual Studio 2005\Projects\PHP_TEST\PHP_TEST\index.php のところで何かエラーが発生している様です。 ※phpのコード <?php /* TODO: Add code here */ print("テスト"); ?>
857 名前:nobodyさん mailto:sage [2009/04/03(金) 19:08:16 ID:???] >>855 strtr
858 名前:nobodyさん [2009/04/03(金) 19:44:58 ID:2mI6CRy6] 【OS名】debian linux 【PHPのバージョン】5.2.0 参照渡しで変数を送り 変数が未定義なら空の文字列を返し 変数が定義済みならそのまま返す関数を考えました。 $test = hoge_variable($v); function hoge_variable(&$v) { if(! isset($v) ) { return ''; } return $v; } テストに入る内容は望みのものですが、 変数$vが未定義だった場合、定義されて(?)NULLが入るようです。 この挙動について、どういった理由でそうなるのか、 また$vを未定義のままにする方法はあるのかご教示いただけませんでしょうか。
859 名前:nobodyさん mailto:sage [2009/04/03(金) 20:02:31 ID:???] >>858 &$vのとき、参照を張るには、参照される側のアドレスが必要だから、そこで定義される。値はNULL &$vにしなければよい。
860 名前:nobodyさん mailto:sage [2009/04/03(金) 20:14:47 ID:???] return ''; を return $v=''; でよくね? 定義されてないからNULLだぜ?
861 名前:nobodyさん [2009/04/03(金) 20:15:15 ID:2mI6CRy6] >>859 やはりそんな感じだったんですね。 関数はエラーレベルによっては出るNotice: Undefined variable の対策だったんですけど、&$vでなく$vにするとそこでUndefined variable がでてしまう感じで…。 定義されたくない時は直接issetをしていくしかないということですかね。 というかそもそもUndefined variable回避に対するアプローチが違っているでしょうか…?
862 名前:nobodyさん mailto:sage [2009/04/03(金) 20:18:37 ID:???] 宣言すりゃいいじゃん
863 名前:nobodyさん [2009/04/03(金) 20:35:14 ID:2mI6CRy6] 状況的には例えばこういう未定義かもしれない所からひっばってくる時で、 $flag = $_POST['flag']; そういう意味で先の $flag = hoge_variable($_POST['flag']); だったんですけど、 例えNULLでも配列に定義されてしまうと、 foreachとかする時に邪魔になったりとかそういう感じのことでした。 やはり基本的には $flag = ''; if (isset($_POST['flag'])) { $flag = $_POST['flag']; } みたいなことで行くのがいいのですかね。
864 名前:nobodyさん mailto:sage [2009/04/03(金) 20:46:30 ID:???] フレームワークには用意されてたりするけどね
865 名前:nobodyさん mailto:sage [2009/04/03(金) 22:15:46 ID:???] >>856 文字コードがUTF-8でBOMが入っているとか? UTF-8Nにしてみたら?
866 名前:nobodyさん mailto:sage [2009/04/03(金) 22:53:01 ID:???] >>863 > $flag = ''; > if (isset($_POST['flag'])) { > $flag = $_POST['flag']; > } 自分はそうしてる 変数が増えてくるとコードがのびがちなので 三項演算子使って $flag = isset($_POST['flag'])?$_POST['flag']:null; といった感じにしてる
867 名前:nobodyさん mailto:sage [2009/04/03(金) 23:35:31 ID:???] >838-840 クォートで処理していると、インジェクションが無いか処理を注視しないといけない。 プリペアドステートメントは、インジェクションが無い事が一目で分かる。 SQLの構文と変数が分離されるので見やすくなるって利点もある。 >863 functon getPostedVariable($key){ return isset($_POST[$key])?$_POST[$key]:null; } とかやると楽なのでオススメ。 プログラムの開始時に$_GETと$_POSTとかを丸ごとメンバに持つクラスのインスタンスを生成して、そいつにこの関数を定義する手もある。 メリットが思いつかないレベルならとりあえず忘れておいてもいいけどな。テストが非常にしやすくなる。 $request = new Request($_POST, $_GET); echo $request->post('flag');
868 名前:nobodyさん mailto:sage [2009/04/03(金) 23:36:22 ID:???] Zend_Request使えよ
869 名前:nobodyさん mailto:sage [2009/04/03(金) 23:49:57 ID:???] 宗教上の理由によりお断りします
870 名前:nobodyさん mailto:sage [2009/04/04(土) 01:03:53 ID:???] PHPを勉強し始めたのですがphpではクラスを宣言する場合に、 public private とかって宣言する事は出来ないのでしょうか? public class Test { public function TestMessage() { print("あいうえお"); } }
871 名前:nobodyさん mailto:sage [2009/04/04(土) 01:54:48 ID:???] >>870 classはできない。functionや変数は可能。
872 名前:nobodyさん mailto:sage [2009/04/04(土) 01:54:55 ID:???] >>870 他言語の素養があるおまいさんはまずマニュアルを読みなはれ。
873 名前:nobodyさん mailto:sage [2009/04/04(土) 02:00:30 ID:???] privateなclassってどんなん?
874 名前:870 mailto:sage [2009/04/04(土) 02:00:58 ID:???] >>871 サンクス >>872 .Net(C# / VB.net) & C++とかでこれまで開発をして来ましたが何かばれちゃいましたか。 マニュアルをちょっと読む事にします。 というより一つ疑問なんですけどC#とかC++とかだと次のパターンAでみんな記述しているのに PHPとかだとパターンAの書き方をする人が多いのはなぜでしょうか? C#だと今まで私が関わって来たプロジェクトは100%パターンAで記述されています。 【パターン@】 if( 1 == 1) { } 【パターンA】 if(1 == 1{ }
875 名前:nobodyさん mailto:sage [2009/04/04(土) 02:04:36 ID:???] >>874 両方ともパターン1かよ
876 名前:nobodyさん mailto:sage [2009/04/04(土) 02:05:23 ID:???] まちがえた 両方ともパターン2かよ
877 名前:nobodyさん mailto:sage [2009/04/04(土) 02:08:21 ID:???] VisualStudioのコード補完のデフォルトがそうなってるだけだろ JavaやPHP使いはMSみたいに無駄に行数消費するのを嫌うよ
878 名前:nobodyさん mailto:sage [2009/04/04(土) 02:09:00 ID:???] @とAに見える俺は目がおかしい・・・? てかA括弧閉じてないけど、スペースのことを言ってるのか・・・?
879 名前:874 mailto:sage [2009/04/04(土) 02:11:43 ID:???] ああすまん俺の頭が混乱してた >>874 がどちらのこと言ってるのか良く分からないけど 俺は@はメソッドの時に使う。 一応Zendのコーディング規約に則ってやってるけど 個人の作業なら別にそんなの君の価値観でやればいいだろ
880 名前:878 mailto:sage [2009/04/04(土) 02:13:15 ID:???] あああ俺は874じゃなくて878
881 名前:nobodyさん mailto:sage [2009/04/04(土) 02:14:37 ID:???] >874 PHPの「標準」なコーディング規約には2つの流儀がある。ひとつはZend、ひとつはPEAR。 で、どっちも1番の括弧スタイルを採用してるんだ。 C++で言えば、MSDNの規約とGNUの標準スタイルが一致しているような状況をイメージすればいいかな。そりゃ合わせるだろ? PHPが初めての言語です、って奴が多いのも影響していると思う。 勿論、PHP以前に他の言語を学んでいた奴の中には別のスタイルで書く奴もいる。 俺も2番のK&Rスタイルで書くしな。
882 名前:nobodyさん mailto:sage [2009/04/04(土) 02:16:56 ID:???] >>881 framework.zend.com/manual/ja/coding-standard.coding-style.html#coding-standard.coding-style.control-statements.if-else-elseif if ($a != 2) { $a = 2; } 知ったか乙
883 名前:nobodyさん mailto:sage [2009/04/04(土) 02:18:31 ID:???] >882 悪い、寝ぼけてた。 関数定義とクラス定義の箇所を読んでたわ。 PEARもifはそのスタイルだな。 if ((condition1) || (condition2)) { action1; } elseif ((condition3) && (condition4)) { action2; } else { defaultaction; }
884 名前:nobodyさん mailto:sage [2009/04/04(土) 02:21:18 ID:???] MS厨はfunction名を大文字で始めとけ
885 名前:nobodyさん mailto:sage [2009/04/04(土) 02:25:13 ID:???] classの修飾子にはpublic、final、abstractが使えるよ
886 名前:870 mailto:sage [2009/04/04(土) 02:37:49 ID:???] >>878 >> 879 >> 880 【パターン@】 if( 1 == 1) { } 【パターンA】 if(1 == 1){ 0} の間違いです。括弧が抜けてましたね。 >>877 そう言われれば確かに勝手に整形されちゃいますね。 >>881 なる程2通りの書き方があったんですね。 いずれにせよ@番で統一されているみたいなのでちょっと安心しました。 今後も@で書いて行こうと思います。 (C#)と同じなのでこちらの方が気分的に見やすいです。 PHPでの実務経験が無いので実際の開発現場ではどちらが主に使われているのでしょうか?
887 名前:870 mailto:sage [2009/04/04(土) 02:39:20 ID:???] うーん、どう考えても↓の方が見易いのですが、、、、 皆さんも↓の方が見やすくないですか? >>883 if ((condition1) || (condition2)) { action1; } elseif ((condition3) && (condition4)) { action2; } else { defaultaction; }
888 名前:nobodyさん mailto:sage [2009/04/04(土) 02:39:35 ID:???] 書き込むボタン押す前に見直ししろ
889 名前:nobodyさん mailto:sage [2009/04/04(土) 02:41:13 ID:???] 俺だったらこれだな。極めて合理的だ if ( (condition1) || (condition2) ) { action1; } elseif ( (condition3) && (condition4) ) { action2; } else { defaultaction; }
890 名前:nobodyさん mailto:sage [2009/04/04(土) 02:48:19 ID:???] >>889 うげぇー
891 名前:nobodyさん mailto:sage [2009/04/04(土) 02:51:50 ID:???] >>889 オナニーコード
892 名前:nobodyさん mailto:sage [2009/04/04(土) 02:53:10 ID:???] >887 そのスタイルはないな。見づらい。 インデントスタイルでガタガタ抜かすお前にはPythonが合っていると思う。 Pythonにはどのインデントスタイルが見やすいとかいう議論が一切存在しないぞ。
893 名前:nobodyさん mailto:sage [2009/04/04(土) 03:03:22 ID:???] >>887 視点移動が多くなって見づらい
894 名前:nobodyさん mailto:sage [2009/04/04(土) 03:25:39 ID:???] >>892 >>893 本気で言ってますか? コードを詰めまくって書くよりゆとりを持たせたコードの方が見易いし、 メンテナンス性もあがる気がするのですが。
895 名前:nobodyさん mailto:sage [2009/04/04(土) 03:30:54 ID:???] それはひらがなだけで書かれた文章の方が読みやすいってのと同じレベルの主張だと思う。 まぁコーディングスタイルは宗教論争なんで、不毛なダケなんだけどさ。
896 名前:nobodyさん mailto:sage [2009/04/04(土) 03:31:20 ID:???] ZendとかPEARとか使ってるなら、逆効果だろ 統一させた方が見やすい
897 名前:nobodyさん mailto:sage [2009/04/04(土) 04:00:44 ID:???] 見やすいのはいいけどスクロールしないと下のほうが見えなくなるのが無理
898 名前:nobodyさん mailto:sage [2009/04/04(土) 04:11:29 ID:???] >>887 そんなとこより括弧と条件式の間のスペースを空けろってな
899 名前:nobodyさん mailto:sage [2009/04/04(土) 05:30:26 ID:???] オレ竜で書くのがいちばんさ
900 名前:nobodyさん mailto:sage [2009/04/04(土) 05:58:30 ID:???] >>887 EclipseでJavaとPHPをやってる俺からいうと if (condition) { } のほうが見やすい 他の人も同じようなこといってるが 最初に使い慣れたIDEの標準の補完機能によって どちらが使いやすいか分かれるんだろう あとはコーディング規約の問題
901 名前:nobodyさん [2009/04/04(土) 07:35:04 ID:+rg3YxkW] fopenってロックの引数がないんですが ちゃんとロックされるんですか? 同時書き込みでファイル壊れたりしませんか?
902 名前:nobodyさん mailto:sage [2009/04/04(土) 07:37:06 ID:???] fopenはリソースを指定してるだけ 書き込みを行う関数はfwrite
903 名前:nobodyさん mailto:sage [2009/04/04(土) 07:39:05 ID:???] マニュアルのちょっと上にflockってあるだろ
904 名前:nobodyさん mailto:sage [2009/04/04(土) 07:43:24 ID:???] ロックは別にするんですね ありがとうございました。
905 名前:nobodyさん [2009/04/04(土) 11:05:08 ID:UT159Z4L] winでは動かない関数があるのでこのさい仮想マシン上にlinuxを入れることにしました ノートPCなので容量を抑えたいのですが、linuxしてる方でおすすめのものがございましたら教えて下さい
906 名前:nobodyさん mailto:sage [2009/04/04(土) 11:16:09 ID:???] 俺、クラスや関数は>>874 でいう@、条件文なんかはAで書いてる・・・・
907 名前:nobodyさん mailto:sage [2009/04/04(土) 11:42:14 ID:???] @の書き方って、昔ならではのC言語の関数書くときの引数の型宣言の名残なのかね
908 名前:nobodyさん mailto:sage [2009/04/04(土) 12:46:42 ID:???] 現在Apache+PHP5+MySQL5を使用してWEBサイトを作る練習をしているのですが、 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\ hogehoge.html tomato.php に各WEBページ(phpファイル)を置いて localhost/ でアクセスしているのですが、これを C:\Work hogehoge.html tomato.php でアクセス出来る様にするにはどうすれば良いでしょうか・ ※デフォルトのパスをC:\Workにしたいと思っています。
909 名前:nobodyさん mailto:sage [2009/04/04(土) 12:47:32 ID:???] php関係ない apacheのdocument root あと>>1
910 名前:908 mailto:sage [2009/04/04(土) 13:04:00 ID:???] >>909 ありがとうございます。 document root を 【httpd.conf】 DocumentRoot "C:/htdocs" に変更しApacheを再起動したのですが Web サイトによってこのページの表示を拒否されました というエラーが出て一向にページを見る事が出来ません。 なぜでしょうか?
911 名前:nobodyさん mailto:sage [2009/04/04(土) 13:13:06 ID:???] ファイルをC:/Workにおいてるのになんでhttpd.confのほうは「C:/htdocs」にしたん?
912 名前:nobodyさん mailto:sage [2009/04/04(土) 13:41:34 ID:???] >>910 >>1 読め糞野郎
913 名前:nobodyさん mailto:sage [2009/04/04(土) 13:43:54 ID:???] ていうかPHP関係ないって言ってんだろカス
914 名前:nobodyさん mailto:sage [2009/04/04(土) 13:58:00 ID:???] DocumentRoot を C:/Work にすればいいんじゃねーの。 あとID出せよ
915 名前:nobodyさん mailto:sage [2009/04/04(土) 15:00:42 ID:???] documentrootだけ変えても意味ないよ documentrootのディレクトリ設定のパスも書き変えないと意味ないよ
916 名前:908 mailto:sage [2009/04/04(土) 15:19:05 ID:???] >>911 ファイルは、C:/htdocsに配置しました。 >>914 IDを出す、 というのは所謂 fusianasan ですか? >>915 ありがとうございました。 設定ファイル系を色々といじってみたところ無事動作する様になりました。 ありがとうございました。
917 名前:nobodyさん mailto:sage [2009/04/04(土) 15:27:18 ID:???] ルールも守れないような奴は二度と来んな
918 名前:858 [2009/04/04(土) 15:39:59 ID:Q5CHJrya] 遅レスすみません。 >>866 氏>>867 氏他皆様ありがとうございます。 いろいろ試してみたいと思います。
919 名前:nobodyさん mailto:sage [2009/04/04(土) 20:31:48 ID:???] 慇懃無礼なやつだなw
920 名前: 220x151x2x6.ap220.ftth.ucom.ne.jp mailto:sage [2009/04/04(土) 20:44:31 ID:???] ◆質問用テンプレ 【OS名】WindowsXP 【PHPのバージョン】php5.26 【連携ソフトウェア】mysql5 【質問内容】 セッションが破棄されるタイミングがいまいち分かりません。 セッションファイルの数を数える事により、現在サイトにアクセスしている人の 大まかな数を数えているのですが、ブラウザを終了してもセッションファイルは残ったままです。 理想を言えば、ユーザにログインボタンを押してもらい session_destroy を呼ぶ 事によりセッションファイルを削除するのが良いとは思いますが、 如何せんブラウザなのでログアウトボタンが必ず押される保障はありません。 ブラウザが閉じられてから5分したらセッションファイルを削除する、といった事は可能なのでしょうか? 通常セッションは一定時間経てば破棄されるらしいのですが、phpの場合はどこで設定すれば良いのでしょうか?
921 名前:nobodyさん mailto:sage [2009/04/04(土) 20:48:04 ID:???] >>920 >>1
922 名前:nobodyさん mailto:sage [2009/04/04(土) 21:11:33 ID:???] >>920 頑張ってfusianasanしたのはいいんだが君が表示してるのはIPだ IDを出してくれたまえ
923 名前:nobodyさん mailto:sage [2009/04/04(土) 21:12:45 ID:???] ID出てないが一応マジレスするとブラウザが閉じられたという情報は送られません
924 名前:nobodyさん mailto:sage [2009/04/04(土) 21:39:31 ID:???] ttp://jp2.php.net/manual/ja/session.configuration.php いつ消えるかはsession.gc_maxlifetimeで決まる。 集計は、閉じられた情報は取得できないので、セッション変数に「最終利用日時」を記録しておく。 画面を表示するたびにこれを更新して、集計時はその数字を見て判別する、という手がある。 例えば、5分以内にサイトにアクセスした人の人数を「現在サイトにいる人数」と見なすとかな。 ファイルだと大変なので、DBなどの集計しやすい場所にセッション情報を格納するとやりやすい。
925 名前:nobodyさん mailto:sage [2009/04/04(土) 22:06:27 ID:???] >>924 荒らすな
926 名前:nobodyさん mailto:sage [2009/04/04(土) 22:18:43 ID:???] 俺はセッション使わないでアクセスログでオンラインカウンターをやってる
927 名前:920 ◆gRDEQwu9i2 mailto:sage [2009/04/04(土) 22:21:55 ID:???] >>922 これの事だったんですねw 勘違いしてました。 >>923 そうですよね。 >>924 ちょっと色々といじってみます。 >>925 別に荒らしてはいない気がしますが・・・ >>926 DBにアクセス情報を記録させてそこで判定した方が確実で簡単かもしれませんね。
928 名前:nobodyさん mailto:sage [2009/04/04(土) 22:25:35 ID:???] 死ねカス
929 名前:nobodyさん mailto:sage [2009/04/04(土) 22:34:25 ID:???] 春だなw
930 名前:nobodyさん mailto:sage [2009/04/04(土) 22:34:35 ID:???] >>927 まじれすすると、それはトリップ ID表示はメール欄を空白にするかageと書く
931 名前:nobodyさん mailto:age [2009/04/04(土) 23:03:22 ID:???] てst
932 名前:nobodyさん mailto:sage [2009/04/04(土) 23:06:05 ID:???] さくらインターネットでサーバ借りてるんだけど function ExecuteSanitizing(&$strSanitizing) { $strSanitizing = htmlentities($strSanitizing, ENT_QUOTES, mb_internal_encoding()); } $str = "<b>あいうえお</b>"; $str = instance->ExecuteSanitizing($str); echo $str; として出力するとローカルでは文字化けしないのにさくらインターネットだと文字化けしちゃいます。 なぜでしょうか?
933 名前:nobodyさん mailto:sage [2009/04/04(土) 23:26:21 ID:???] エスパーさん出番ですよ
934 名前: p7033-ipbfp405osakakita.osaka.ocn.ne.jp [2009/04/04(土) 23:30:26 ID:UHDnoHcu] 私を笑いものにするがいい
935 名前:nobodyさん mailto:sage [2009/04/04(土) 23:40:07 ID:???] >>932 >>1
936 名前:fusianasan mailto:sage [2009/04/04(土) 23:40:52 ID:???] 俺はfusianasanを制御できるから書きこんでもIP表示されないんだけどさ
937 名前:nobodyさん mailto:sage [2009/04/04(土) 23:43:27 ID:???] >>936 それってどうやってやってんの?
938 名前:fusianasan mailto:sage [2009/04/04(土) 23:46:28 ID:???] >>937 いや、おれ2ちゃんのボランティアやってるからこのぐらいの特権は持ってるよ
939 名前:nobodyさん mailto:sage [2009/04/04(土) 23:48:52 ID:???] f&lrm;usianasan なにがボランティアだつまらん
940 名前:nobodyさん mailto:sage [2009/04/04(土) 23:52:00 ID:???] 釣れたw
941 名前:f&lrm;usianasan mailto:sage [2009/04/04(土) 23:57:19 ID:???] テスト
942 名前:fusianasan mailto:sage [2009/04/04(土) 23:58:04 ID:???] >>939 どうすれば出来るですか? あいうえお
943 名前:fusianasan mailto:sage [2009/04/05(日) 00:00:02 ID:???] てす
944 名前:nobodyさん mailto:sage [2009/04/05(日) 00:06:15 ID:???] >>932 ローカルとさくらのphp.iniのmbstringの設定が違う
945 名前:nobodyさん mailto:sage [2009/04/05(日) 00:30:10 ID:???] >>901 fopenはファイルのポインタを獲得するだけ。 ロックはその後で、別の関数で行う。
946 名前:nobodyさん mailto:sage [2009/04/05(日) 00:31:03 ID:???] ameblo.jp/tondemonight/entry-10178347889.html クラスメソッドをabstractにしようと思いまして、abstractをつけて関数定義したところ、以下のようなエラー。 Class SampleClass contains 1 abstract method and must therefore be declared abstract or implement the remaining methods エラーの原因がわからず、30分も調べてしまいました。 原因はclassの定義で本来なら「abstract class SampleClass」 としなくてはいけないところを 「class SampleClass」と定義していたことでした。 エラーメッセージからでは気づきにくいことでした・・・ だとさ
947 名前:nobodyさん mailto:sage [2009/04/05(日) 00:42:58 ID:???] ポインタって言うな
948 名前:nobodyさん mailto:sage [2009/04/05(日) 00:45:11 ID:???] SampleClassには1つのabscractメソッドが含まれます。 だからこのクラスはabstractとして宣言されるか、残りのメソッドを実装しなければいけません。 このメッセージで分かりづらいってなら、どう出せばいいんだろう。
949 名前:nobodyさん mailto:sage [2009/04/05(日) 00:48:33 ID:???] MSもSUNもやってるんだから ZendJapanもエラーメッセージを日本語化すべきだな
950 名前:nobodyさん mailto:sage [2009/04/05(日) 01:35:51 ID:???] 日本語化したら分かるんかい?
951 名前:nobodyさん mailto:sage [2009/04/05(日) 02:02:56 ID:???] >>944 ありがとうございます。ローカルのphp.iniと設定をあわせたところ 正常に表示される様になりました。 ちょっとphp.iniについて質問があるのですが ローカルだと C:\WINDOWS\php.ini という具合にphp.iniファイルを配置しているのですが レンタルサーバ(さくらインターネット)の場合には /home/street-fighter/www/php.ini という具合にphp.iniを自前で用意するのが普通なのでしょうか? ※今後、さくらインターネット以外のサーバを借りるかもしれないのですが、 さくらインターネット以外の場合にも、*/www/直下にphp.iniファイルは保存 するのでしょうか? /home/street-fighter/www/php.ini
952 名前:nobodyさん mailto:sage [2009/04/05(日) 02:07:24 ID:???] >>951 自分が借りているレンタルサーバーの場合、 (1)そもそもユーザーがphp.iniを編集できない (2)php.iniがpublic_htmlの外に置いてあった この2パターンがありました。
953 名前:nobodyさん mailto:sage [2009/04/05(日) 02:09:39 ID:???] >>951 >>1
954 名前:nobodyさん mailto:sage [2009/04/05(日) 02:39:34 ID:???] asobi.sqweebs.com/cdxidyfk/p2ruc43y.php 質問用テンプレ作りました。 どうぞテストもかねて使ってみてください。
955 名前:nobodyさん mailto:sage [2009/04/05(日) 03:48:15 ID:???] ブラクラ注意
956 名前:nobodyさん mailto:sage [2009/04/05(日) 10:38:30 ID:???] >>954 がもしブラクラなら運営板で報告してもらえる
957 名前:nobodyさん [2009/04/05(日) 11:30:01 ID:rlL9K/DC] 変数内の特定の文字列を取得しようと、以下のようにしました。 //$text ----- あいうえお ----- //取得する為の正規表現 preg_match_all("/-----¥n(.*)¥n-----¥n/is",$text,$array) しかし、「-----」の間を上手く取得できません。 どういった正規表現のコードを書けば良いか教えて下さい。
958 名前:nobodyさん mailto:sage [2009/04/05(日) 12:04:57 ID:???] そりゃs修飾子付けたら¥nと.の区別が無くなるがな
959 名前:nobodyさん mailto:sage [2009/04/05(日) 12:10:08 ID:???] せめてこう書けよ ----- ↓ -{5}
960 名前:nobodyさん mailto:sage [2009/04/05(日) 12:10:54 ID:???] -{5}\n(.*)-{5}\n
961 名前:nobodyさん mailto:sage [2009/04/05(日) 12:20:05 ID:???] どうでもいいが改行は必ず\nなのか? \rとか\r\nは含まないんだな?
962 名前:nobodyさん mailto:sage [2009/04/05(日) 12:43:45 ID:???] Linuxサーバでそんなファイル作ったら行末に変な文字出ちゃうぜ 環境によって必要ならそういう対応すればいいだけ
963 名前:nobodyさん mailto:sage [2009/04/05(日) 12:52:14 ID:???] 変な文字っていっても^Mに見えるCR(Carriage return)でしょ ウニックス系で\nと書くとLF(0x0a)を表し、 ウィンドズ系で\nと書くとCR+LF(0x0d 0x0a)を表すのが基本でしょ
964 名前:957 mailto:sage [2009/04/05(日) 13:26:52 ID:???] 皆さん、レスありがとうございます。 ただ、以下のようにしましたが、やっぱり取得できません。 $text = trim(" ----- あいうえお ----- "); preg_match_all("/-{5}\n(.*)-{5}\n/",$text,$array);
965 名前:nobodyさん mailto:sage [2009/04/05(日) 13:52:29 ID:???] lol trim trim trim trim trim trim trim trim trim trim
966 名前:nobodyさん mailto:sage [2009/04/05(日) 13:55:26 ID:???] >>964 >1 スレのルールも守れない奴に正規表現が守れるものか
967 名前:nobodyさん mailto:sage [2009/04/05(日) 13:55:58 ID:???] $str = " ----- あいうえお ----- "; preg_match_all("/-{5}\n(.*)-{5}\n/s",$str,$m);
968 名前:957 [2009/04/05(日) 14:00:27 ID:rlL9K/DC] 2回目以降もID出すんですね。sage無ければいけないと思っていました。 それで、>>967 のコードをそのままコピーして print_rで出力してみたのですが、やはり文字の「あいうえお」が取得できません。 テスト環境がWindowsXPのファイルがUTF-8ですが、それが関係するのでしょうか? ただ、他の文字コードにしてもやっぱり取得できません。。
969 名前:nobodyさん mailto:sage [2009/04/05(日) 14:03:21 ID:???] うにコードならU修飾子ぐらい付けろや
970 名前:nobodyさん mailto:sage [2009/04/05(日) 14:06:09 ID:???] 俺の環境では取得できるんだがな・・・
971 名前:nobodyさん mailto:sage [2009/04/05(日) 14:08:54 ID:???] 環境によるのかな <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd "> <html xmlns="www.w3.org/1999/xhtml "> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>無題ドキュメント</title> </head> <body> <?php $str = " ----- あいうえお ----- "; preg_match_all("/-{5}\n(.*)-{5}\n/s",$str,$m); print_r($m); ?> </body> </html> 結果 Array ( [0] => Array ( [0] => ----- あいうえお ----- ) [1] => Array ( [0] => あいうえお ) )
972 名前:957 [2009/04/05(日) 14:11:33 ID:rlL9K/DC] >>970-971 そうですか・・。 テストしているローカル環境のPHPが5.2.5で 試しにさくらのレンタルサーバ(5.2.8)にもアップして試してみたのですが、 971さんのような結果になりません・・。
973 名前:nobodyさん mailto:sage [2009/04/05(日) 14:11:50 ID:???] 俺はこれでおkだった <?php $text = trim(" ----- あいうえお -----"); preg_match_all("/-{5}\n(.*)\n-{5}/",$text,$array); var_dump($array); ?>
974 名前:nobodyさん mailto:sage [2009/04/05(日) 14:12:26 ID:???] >>972 >>969
975 名前:nobodyさん mailto:sage [2009/04/05(日) 14:18:21 ID:???] まさかと思うけどさー 改行コードがCR+LFだからとかいうオチじゃないよね? もしこれで通ったらぶっ飛ばすぜ <?php $text = trim(" ----- あいうえお -----"); preg_match_all("/-{5}[\n|\r]+(.*)[\n|\r]+-{5}/",$text,$array); var_dump($array); ?>
976 名前:nobodyさん mailto:sage [2009/04/05(日) 14:23:01 ID:???] 別に員だけどさ お尻の改行だけを取るならrtrim("\n",変数)の方が誰が見ても分かりやすくていいと思うんだ
977 名前:nobodyさん mailto:sage [2009/04/05(日) 14:24:31 ID:???] [\n|\r] こういう書き方するなら正規表現もっと勉強したほうがいい
978 名前:nobodyさん mailto:sage [2009/04/05(日) 14:29:09 ID:???] >>975 × \n|\r ○[\r]?\n
979 名前:957 [2009/04/05(日) 14:47:03 ID:rlL9K/DC] >>973-978 全く反応無しです・・。 array(2) { [0]=> array(0) { } [1]=> array(0) { } } という結果にしかなりません・・。 作成手順は、これまでDreamweaverを使っていたのですが、terapadに変更しました。 そしてこれまで挙がっているソースをコピーして保存して実行したのですが、 それでも上記のような結果になります。 文字コードをEUCにしてもSJISにしても結果は同じです・・。 やっぱりPHPのバージョンの問題ですかね・・・
980 名前:nobodyさん mailto:sage [2009/04/05(日) 14:54:28 ID:???] pearの勉強をしよと思ってるんですけど オススメの入門サイトはありますか? できればpearを使った場合のメリットとかも十分に解説されているサイトを希望します。
981 名前:nobodyさん mailto:sage [2009/04/05(日) 15:07:29 ID:???] terapadとかナメてんのかよ サクラエディタとか秀丸とかEmEditor使えよ
982 名前:nobodyさん mailto:sage [2009/04/05(日) 15:24:51 ID:???] 釣りだろ
983 名前:nobodyさん mailto:sage [2009/04/05(日) 16:37:11 ID:???] 最近よくいる低レベル回答者を叩くのが楽しみでここ見てます
984 名前:nobodyさん mailto:sage [2009/04/05(日) 16:38:57 ID:???] 叩いてないじゃん
985 名前:nobodyさん [2009/04/05(日) 22:31:43 ID:QUmCZ8RS] 配列にひらがなのみの文字列を不定数で格納します この配列をあいうえお順でソートしたいと思います 標準関数ではあいうえお順でソートする関数がないので、自分でユーザー定義関数にしようと思います あいうえお順にするためにどのようなアルゴリズムを用いればいいのかどなたかヒントだけでもお願いいたします 【サンプルの配列】 $hiragana = array( "かいわれ", "れたす", "あめ", "さらだ" ); ↑をソートして、結果が↓ $hiragana = array( "あめ", "かいわれ", "さらだ", "れたす" );
986 名前:nobodyさん mailto:sage [2009/04/05(日) 22:36:37 ID:???] sort($hiragana);
987 名前:nobodyさん mailto:sage [2009/04/05(日) 22:46:14 ID:???] >>986 平仮名はソートでけへんよ
988 名前:nobodyさん mailto:sage [2009/04/05(日) 23:08:08 ID:???] >>986 じゃないが、とりあえず utf-8なら問題なくできたみたいだけど、なんか違うのけ?
989 名前:nobodyさん mailto:sage [2009/04/05(日) 23:56:37 ID:???] バイナリ単位での比較だからひらがなだろうができる
990 名前:nobodyさん [2009/04/06(月) 00:09:45 ID:CWy5GQCe] 質問 CGIゲームを設置したんだけど サイトによっては自動的に更新されてるんですよ ページを定期的に読み込むにはどうしたらいいのか教えてください
991 名前:nobodyさん mailto:sage [2009/04/06(月) 00:16:48 ID:???] cron
992 名前:nobodyさん mailto:sage [2009/04/06(月) 01:04:38 ID:???] meta refresh
993 名前:nobodyさん mailto:sage [2009/04/06(月) 04:19:15 ID:???] 次スレ pc11.2ch.net/test/read.cgi/php/1238958898/
994 名前:nobodyさん mailto:sage [2009/04/06(月) 05:48:09 ID:???]
995 名前:nobodyさん mailto:sage [2009/04/06(月) 22:26:16 ID:???] ume