【PHP】下らねぇ質問はID出して書き込みやがれ 78
質問者はまず
>>1 を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
次スレは
>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 76
http://pc11.2ch.net/test/read.cgi/php/1226517332/ ◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】 ・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
【簡易FAQ】
1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→
http://example.com/が例文などのために予約されている 。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
10. そもそもインストールの時点でうまくいかない
→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40 15. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
→ C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(
http:// 〜とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
→19.を参照
21. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
日常五心 「有難う」と言う 感謝の心 「すみません」と言う 反省の心 「おかげ様」と言う 謙虚な心 「私がします」と言う 奉仕の心 「はい」と言う 素直な心
わからない5大理由 1.読まない 2.調べない 3.試さない 4.理解力が足りない 5.人を利用することしか頭にない
Smartyマニュアルのリンク切れてんぞ
そんなんは、smartyスレに行けばよろし
このスレってなんのためにあるの? ググレ、ググレって覚えたての言葉をうれしそうに連呼する猿を見ると吐き気がする。 手元にある書籍で思いっきりひっぱたいてやりたい気分。氏ねw 日本のphpが終わってるのはコミュニケーション能力のないキモヲタしかつかわないから。 そういう豚は「ググレググレググレ」ばっか。だからユーザーが育たない。
そういう風にしか受け取れないですか。 ググレってのはググった方が力になるし、理解も速いってことだと思うけどな。 ドキュメントを読む力、Webの情報を正しく解釈する力ってのは宝になる。 すまんね、こんなジジィなこと書いて。 すくなくとも、みんな、「うれしそうに連呼」してるわけじゃないってことはわかってやれ
答えを教えてもらって育ててもらう気満々なんだなw
> このスレってなんのためにあるの? そこに疑問を持つなら来なきゃいい。 2chのすべてのスレに当てはまる。 存在意義のわからないスレを訪れる意味などどこにもない。
>>14 君が来なければ、このスレは健全になる。
試しに、1年間ROMってろ。
そしたらわかるから。
「日常五心」 一、有り難うという感謝の心 一、済みませんと言う反省の心 一、お陰様でと言う謙虚な心 一、私がしますと云う奉仕の心 一、ハイという素直な心 (「何でも相談室」に寄せられたメイルより、1998.10.29)
20 :
nobodyさん :2008/12/23(火) 21:12:47 ID:59V79J7s
圧縮問題、昨日のつづきです。
昨日、結局、サーバにZIP関数のモジュールがないためと
判明しました。なので、必死になって、
PECLのインストールを試みましたが、できません。
先にPEARをインストールせよと書いてあって、
それはできました。
で、PECLをインストールしようとすると、
コマンドが見つからないと出ます。
サーバーはXREAで、なんかbashというのに制限があるらしい。
で、回避する方法が書いてあるhpがあるのですが、
この通りにやっても、うまく回避できません。
http://hain.jp/index.php/tech-j/2007/06/11/p154 Xreaで、PECLのインストールできた人、
やり方、教えてもらえませんか。
それくらい調べろ
22 :
nobodyさん :2008/12/23(火) 21:26:15 ID:59V79J7s
調べても、わからない。 もしかしたら、できないのかなとも思うのですが、 できた人、いませんか? コマンドがちょびっとしかないんです。 困ります。
ここで聞くより、XREAならサポ板で聞いてみるのが早いし確実。
24 :
nobodyさん :2008/12/23(火) 21:45:27 ID:59V79J7s
xreaは禁止しているんじゃないかと思うので、たぶん。 あと、ZIP関数はあきらめて、PEARでやる場合、 HTTPなんたらというのと、アーカイブなんたらというのがあるようですが、 どっちがいいか、やった人いませんか? やりたいこと=複数ファイル+透過的書込み
xrea の件の人は、友達いないの?w
9 名前: nobodyさん [sage] 投稿日: 2008/12/23(火) 19:33:00 ID:??? わからない5大理由 1.読まない 2.調べない 3.試さない 4.理解力が足りない 5.人を利用することしか頭にない
27 :
nobodyさん :2008/12/23(火) 21:51:47 ID:59V79J7s
友だちいません。文系なので
28 :
nobodyさん :2008/12/23(火) 21:54:00 ID:59V79J7s
昨日から丸1日、研究してもわからないわけです。
丸1日くらいでどうしたの?
zlibじゃねーの?必要なのって
>>26 人力検索奴隷さん、発見できなくて言い訳乙
32 :
nobodyさん :2008/12/23(火) 22:17:11 ID:59V79J7s
zlibは、元々入っています。
xreaで個人が勝手にpeclインストールできるわけねーだろ
34 :
nobodyさん :2008/12/23(火) 23:38:00 ID:59V79J7s
>>33 ほんとうですか?
ダメなんですか。
xreaのやや高いコアサーバーはできるんでしょうか。
zmxで借りればいいよ あそこの女管理人はユーザーの要望によく答えてくれる
zmx いいね。
38 :
nobodyさん :2008/12/24(水) 02:57:36 ID:sZzY7XPX
ちょっとSQLと曖昧なんだけど。質問させてください。 あるテーブルにこのようなデータがあるとします。 ・fruite テーブル fr_id fr_name 1 りんご 2 みかん 3 ぶどう 4 もも ・person テーブル name fr1 fr2 田中 1 2 佐藤 3 1 中島 2 4 こんな感じでfruiteテーブルのidカラムをキーにして内部結合したいのですが。 SELECT name,fr_name from person INNER JOIN fruite fruite.id = person.fr1 and fruite.id = person.fr2 これだと 結果を連想配列で受け取ると fr1 も fr2 も同じ値が帰ってきます。(fruite_id が重複してしまう)。 これを回避する方法はありますか?
39 :
38 :2008/12/24(水) 03:01:36 ID:sZzY7XPX
読み直してみて自分でも聞いてることがわかんなくなってしまった。 整理して質問しなおします。スルーしてくださって結構です。 失礼しました。
>>38 1次正規形になっていないので俺だったら分割する。
あくまでその形で取りたい場合は、サブクエリ使うかANDじゃなくてOR使えば良いかと。
>>41 スレチの上に誤答
1次正規形にはなってる、3次が出来てない。
正規化にこだわるなら、ステータス付きの多対多参照テーブルを作ってもよいが、
Web用ならそれは冗長だから正規化にこだわる必要はない。
>>38 は単にクエリが間違ってるだけ。
正解は "personテーブルでエイリアス"だ
>1次正規形にはなってる、3次が出来てない そうか?なんで?
1次正規形ってのは、たとえばpersonテーブルの同一カラムに りんご、みかん等のデータが直接入っている場合のこと。 これは分割出来てるので、すでに1次正規形。 fr1、fr2のように同じ参照先を持つカラムが複数ある場合は、 テーブルをpersonテーブル、person-fr1参照テーブル、person-fr2参照テーブル のように分割するのが3次正規形
それは、カラムが単純な繰り返しであることが明白である場合のみを 初心者向けに説明しただけ。 fr1 fr2 がfr1は好きなくだもの、fr2は嫌いなくだものだったとして、 それを同じカラムに入れるのが1次正規系だとでも思ってるの?
今回の質問は単純な繰り返しであることが明白じゃん
どこが明白?それはおいといて、もう少し説明しとくと、 主キーにすべきものが重複してる時に、主キー化するのが第1正規化 だよ フルーツがカラムとして重複してるときにfruitsIDを振って独立させるのが 第1正規化。つまり、fruiteテーブルが正規化されたテーブル 外部キー側で複数カラム持ってる場合を一緒にするなよ
50 :
38 :2008/12/24(水) 04:30:19 ID:xtfjZM1O
ID変わっちゃってますが、
>>38 です。
>>40 ,45
スレチ、申し訳ありません。以後気をつけます。
>>42 ありがとうございます。
SQLのミスでしたか。
教えられたとおりやってみます。
スレチにも関わらずご回答いただき、ありがとうございました。
データーベースの教科書読むと、よく 正規系がどうのこうの、第一次がどうの、 三次がどうの、とか書いてあるが、あそこの章って 重要なのか? キモヲタのざれごとだと思って、いままで 読まないで飛ばしてた。
52 :
38 :2008/12/24(水) 05:50:33 ID:???
できました。 こんなことできるんですね。 (文には自信がありませんが、一応動く)。 SELECT name, f.fr_id as ok_id, f.fr_name as ok_name, f2.fr_id as ng_id, f2.fr_name as ng_name FROM person p inner join fruite f on p.ok_id = f.fr_id inner join fruite f2 on p.ng_id = f2.fr_id order by ok_id; ok_id,ng_id は上で挙げたf1,f2です。わかりにくいのでこうしました。 ありがとうございました。
140 :名無しさん@九周年 [sage] :2008/12/24(水) 05:16:22 ID:IlO7k8r00 (2/3) [PC] firefoxの欠陥を見つけたお JavascriptでPOST出来やがるお 141 :名無しさん@九周年 [sage] :2008/12/24(水) 05:18:56 ID:IlO7k8r00 (3/3) [PC] 利用したサイトも見つけたお 表示しただけで掲示板にスパム書き込みするお
まあ俺はよくいる女子にキモがられるタイプだった。 俺が何かするたびに女子に笑われまくった。 で、もういい加減イライラしてたんだ。 そんなとき俺を一番馬鹿にしてた女が誰が見ても俺とわかる落書き を前の黒板に書いてた・・・そしてみんな笑う 怒りは頂点に達した。そして1に至る。 全く後悔はしてないし、殺意もあった。
「病身舞(ピョンシンチュム)」とは身障者や病人を嘲笑する朝鮮半島の伝統芸能で 日本統治下に合ったときは日本政府によって廃止されたが 韓国、北朝鮮が独立して復活したものである
>51 大事。理論の話に見えてあれは実践。 正規化は要するにDBの持つデータの量を、情報量をと一致させるため(なるべく少ないデータで済ますため)の技術。 完全な正規化がなされていると、送受信するデータが最小になるし、最適化もしやすくなる。 正規化がなされていないと、本来SELECT一発で済むものを、ややこしい検索条件を含めないと取れなかったり、 あるいは取得結果をもっかい処理しないと欲しいデータが手に入らなかったりする。 突き詰めると、性能を満たすために一部正規化を崩す場合もあるのだが、その判断も完全に正規化された状態からの方がしやすいし。 ある程度の経験がないとピンと来にくい場所ではあるけどな。
58 :
nobodyさん :2008/12/24(水) 11:56:31 ID:AHayykgc
【OS名】centos5 【PHPのバージョン】php5.28 【連携ソフトウェア】mysql 【質問内容】 Configuring extensions checking whether to enable LIBXML support... yes checking libxml2 install dir... /usr/lib checking for xml2-config path... /usr/bin/xml2-config checking whether libxml build works... no configure: error: build test failed. Please check the config.log for details. ここで止まっちゃうんだけど、ぐぐってもよくわかりませんでした
59 :
nobodyさん :2008/12/24(水) 12:04:08 ID:9cQH1zL0
Parse error: syntax error, unexpected T_STRING, expecting ')' in *** on line 41 というエラーがとあるタイミングで出ます。 正常に表示されていたはずなのに、F5を押しまくると、たまに上記のエラーが出て、 またF5を押すと、エラーが表示され続け、またすぐに正常に戻ります。 一体なんなんでしょうか・・・。 41行目はクラス変数を配列で初期化している部分で、 41行目をコメントアウトすると、また別のクラス変数でエラーが出るんですが、 そこをコメントアウトすると、次はまた別の場所で Parse error: syntax error, unexpected T_STRING in *** on line 70 というエラーがでます。 ここはコメントアウトしても変わりません(70行目がエラーだとずっと言う) そして、正常表示される場合もあるのです。
60 :
59 :2008/12/24(水) 12:06:43 ID:9cQH1zL0
テンプレ忘れていました。 【OS名】CentOS 5 【PHPのバージョン】 5.26 PHPは下記の設定でコンパイルしています。 './configure' '--with-apxs2=/usr/local/apache2/bin/apxs' '--enable-mbstring' '--enable-mbregex' '--enable-zend-multibyte' '--with-mysql' '--with-gd' PHPのソースファイルは全てUTF-8で書いています。
>>59 ソースを確認しないとわからないけど、
F5でエラーが変わるのは文字コードの問題があるときに起きることがある。
文字コード周りの設定と、ソースファイルの中に問題のある文字コードが
混入していないか調べてみるのもいいかもよ。
とりあえず、最初のエラーのソース周り出してみたら?
>>58 config.logを見ろと書いてあるけど、そこになんて書いてある?
あと、Configureオプションを削って通るかどうか試してみて
63 :
nobodyさん :2008/12/24(水) 12:20:49 ID:9cQH1zL0
>>61 秀丸で確認していますが、関連ファイル全てUTF-8(BOM無)です。。。
一体なんだろう・・・
ずっとエラーが出てて、正常表示はキャッシュが表示されてる可能性もあり
ソースもなしに、これ以上エスパーしてもな
66 :
nobodyさん :2008/12/24(水) 13:23:03 ID:9cQH1zL0
mbstringの設定まわりが怪しいので調べてみます。
>>66 まさかとは思うが開発をPHP5でやって本番はPHP4とかないよな?
あと変数の初期化はコンストラクタで行っているんであって
宣言時にarray値をぶちこんでたりしないよな?
arrayでもいけるでしょ
69 :
nobodyさん :2008/12/24(水) 14:23:45 ID:oUm0Exnm
fopen/fwriteで個々のデータをtxtに蓄積し参照してるんですが、データ数が膨大になるとどうなるんですか? 例えばtxtファイルが100MBくらいになるとか。 また既存のシステム(txt)からmysqlにアップグレード可能ですか?
ようし、エスパーしちゃうぞ! この場合、41行目じゃなくて、 それより前に(の後のクォートが閉じられていないんだと思うよ。 (もしくは、そのクォートが文字コードの問題でエスケープでこけてるとか。) だから、41行目の開始クォートで逆にクォートが閉じ、 そこに期待される閉じ括弧がなくて文字列があるぞってエラー だから、41行目をコメントアウトすると、正しいはずの別の宣言文で 同じロジックでエラーが移動していく。 59氏は恥ずかしがらずにソース貼ってみて。
>>69 とりあえず、やってみたら?
プロセスに十分なメモリが当たってれば大丈夫でしょう。
テキストから、MySQLにインポートとか、普通にできる。
72 :
nobodyさん :2008/12/24(水) 14:30:38 ID:oUm0Exnm
>>71 ありがとうございます
mysqlは『基礎からのMysql』の95ページを読み終えたレベルですが、がんばってやってみます。
>>69 100Mになる前にメモリーのリミットが限界値を越えて
テキストから全データを呼びだして配列にしたりすることが
出来なくなる
もしくはリミットが200Mとかになっているなら開くまでに
かなりの時間がかかりどうさが遅くなりタイムアウトに
ひっかかって落ちる
>>73 メモリーリミットってそこ?
fopenするだけなら、ファイルハンドルを取得するだけだから、
file()しないでfread()なら大丈夫じゃない?
75 :
58 :2008/12/24(水) 14:52:51 ID:AHayykgc
>>62 config.logがどこにあるかわからん初心者です
./configureだけで通しても、同様にだめでした
>>75 config.logが読めないんなら、おとなしく、yumで入れるとかしたら?
リポジトリを[centosplus]にすればPHP5だよ。
78 :
58 :2008/12/24(水) 15:02:54 ID:AHayykgc
>>76 実験鯖でいじくりまわす練習してるので、yumだと意味がないです
参考サイトでも教えてくだされ
練習してるなら自分で調べろよw
>>78 とりあえず、config.logを探してみたら?
unixコマンドの知識0でソースからコンパイルしても何の意味もないでしょ。
まぁ、普通に./Configureした作業ディレクトリ内にあると思うけど。。
一体
>>58 の目標はなんだ?
鯖管にでもなりたいのか?
ならスレ違いだ
phpをやりたいのか?
なら慣れてるwindowsでとっとと環境整えて始めろ
こんなことすら自己解決できないようじゃな・・
83 :
nobodyさん :2008/12/24(水) 15:40:57 ID:Gn6DSPVu
ちょっと変な例なのですが、 $arr = array('a', 'b', 'c'); という変数から $data['a']['b']['c'] にアクセスするような関数を作りたいと思っています。 何か良い方法はありますか?
>>83 ボクもこういう関数が必要だと思ってました
要素数は可変なんだろ?
>>83 引数をループしてアクセスすれば?
配列の要素数が決まってるなら、0 1 2でもいいと思うけど。
まぁ、遊びとしては
eval('$res = $data[\'' . implode("']['", $arr) . '\'];');
87 :
83 :2008/12/24(水) 16:04:06 ID:Gn6DSPVu
後出しで申し訳ありません。要素は可変です。 出来るだけ綺麗に仕上げたいのでevalは避けたいのです。 call_user_funcあたりの変数呼び出し版みたいなのがあると一番良いんですが。.
foreachなり再帰なりでできるじゃん どれだけ綺麗さを求めてるのか知らんけど
89 :
58 :2008/12/24(水) 16:24:42 ID:AHayykgc
>>80 -lresolv -lm -ldl -lnsl -lxml2 -lz -lm 1>&5
/usr/bin/ld: skipping incompatible /usr/lib/libz.so when searching for -lz
/usr/bin/ld: skipping incompatible /usr/lib/libz.a when searching for -lz
/usr/bin/ld: cannot find -lz
collect2: ld returned 1 exit status
configure: failed program was:
#line 20123 "configure"
#include "confdefs.h"
char xmlInitParser();
int main() {
xmlInitParser();
return 0;
}
ここまでです
$sql = mysql_query("select * from test"); while($res = mysql_fetch_array( $sql )){ print "<a href='".$res["url"]."'>".$res["name"]."</a><br>"; $month = date("n月j日", $res["time"]); print $month."<br>"; } これでカラム名time(date型)に入ってる(2009-1-1)のようなデータを 1月1日というように表示させたいです。 上の文だと一番上のレコードの日時はきちんと表示されるんですが 以降ずっと最初の日時のみ表示されてしまいます。 なぜですか?
>>いち
92 :
90 :2008/12/24(水) 16:34:44 ID:???
【OS名】Windows XP
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
>>90 補足ですが
$month = date("Y:n月j日", $res["time"]);
としたら1970:1月1日 と表示されたので根本的に間違ってました。
もう一度まとめますが
カラム名time(date型)に入ってる(2009-1-1)のようなデータを
1月1日というように表示させるにはどうすればよいでしょうか?
>>89 スレチだな。
しかし、一応ヒントだけldの設定をちゃんとすればOKだと思うけど、
yum install zlib-devel
してみそ。
あとは、祈れ
>>いち
95 :
nobodyさん :2008/12/24(水) 16:38:51 ID:9cQH1zL0
>>59 ですが、自己解決しました。
mbstring.script_encodingが意図しないものになり、たまにエラーになったようです。
'--enable-zend-multibyte' を消して再コンパイルしたら発生しないようになりました。
96 :
90 :2008/12/24(水) 16:40:23 ID:GAo/2aEb
>>94 すみません。
全然ちゃんと読んでませんでした。
97 :
58 :2008/12/24(水) 16:43:00 ID:AHayykgc
>>96 date関数の第二引数はunixタイムスタンプです。日付を渡しても無理。
strtotimeかませばOK。
$month = date("Y:n月j日", strtotime($res["time"]));
100 :
90 :2008/12/24(水) 16:47:48 ID:GAo/2aEb
>>98 ありがとうございます。
きちんと表示されました。
$month = date("Y:n月j日", strtotime($res["飯島愛死亡"]));
前スレの
>>747 やってみました.基本的に $this-> 付けないとダメだと理解しました
C++ のときは何もつけなくてもよかったのでややこしいです
$hoge = "global::hoge";
// 次の関数定義を削除すると A::func() の最後の行で Fatal error: Call to undefined function piyo()
function piyo() {
echo "global::piyo()\n";
}
class A
{
private $hoge = "A::hoge";
private function piyo() {
echo "A::piyo()\n";
}
(つづき) public function func() { var_dump($this->hoge); var_dump($hoge); // これは予期した通りに動作する $this->hoge = 'with $this->'; var_dump($this->hoge); var_dump($hoge); // この $hoge は関数 func() のスタックに積まれた変数を参照? $hoge = 'without $this->'; var_dump($this->hoge); var_dump($hoge); // A::piyo() を呼ぶ $this->piyo(); // グローバルな piyo() を呼ぶ piyo(); } } $a = new A(); $a->func();
連投スマソ 出力結果: string(7) "A::hoge" NULL string(12) "with $this->" NULL string(12) "with $this->" string(15) "without $this->" A::piyo() global::piyo()
C++しかやってないんだろうな
ガッコでかじっただけだろw
108 :
nobodyさん :2008/12/25(木) 03:10:56 ID:aKyYzPmf
private protected どちらを使うべき?
用途に応じて
110 :
nobodyさん :2008/12/25(木) 03:28:44 ID:aKyYzPmf
普通はpublicにはしないの?
111 :
nobodyさん :2008/12/25(木) 03:29:37 ID:aKyYzPmf
「protectedなら当クラ スおよ びそれを継承する派生クラスのみ調べればOKです。」 って書いてあるけど、もし派生クラスが30もあったら 調べるの大変だよね?
「質問」の人?
113 :
nobodyさん :2008/12/25(木) 03:37:29 ID:aKyYzPmf
var と publicってまったく「同じ」なの?
キモヲタってなんであんなにキモイんだろうね。
安全のために全部privateにしようかと思ったけど、 それだと継承する意味ないよね。 子クラスから親クラスのメソッド一切使えないなんて。 だから、半分private、半分protectedにするのが最適解?
>>115 釣りにしても質問にしても薄っぺら過ぎる・・
実際の話、全部privateだと 子クラスから親クラスのメソッド使用不可になる?
流れワロス
>>108 一人OOPで何悩んでるだよw
外から使うメソッド=publicで、その他privateだろうが
protectedなんざ何に使うの?
え?継承?www
またまたご冗談を
一人で開発しててポリモるなんて無理やりだろ
てんで必要のないとこでポリモるってかw
そんなことしても後からメンテするときにこっぱ恥ずかしくなるだけだからやめとけって
どうしても使いたいなら俺ライブラリを一般化して公開することだなw
今は一人でも手伝ってくれるっていってくれる人がいるんだよ そいつが合流したらすぐに2人になるだろ
JAVA→高額案件多い→みんなやりたがる→優秀な人だけ残る PHP→低額案件多い→だれもやりたがらない→ダメな人だけ残る→php板に隔離される
php板?
「プログラマ暦1年ですPHPだけです」 というような方々は 「くらす ってなに? おぶ じぇくとってなに?いんすたんすってなに?」 というような方々を多いように見受けられま すね。 業務としてシステム構築する際に人がいない からといって、PHPのみの経験者を開発メン バーに入れると SEさんが痛めみます・・・・orz そういう方々がセキュリティ的な意識も低いせ いか、PHPはセキュリティに甘い という風潮が あるようです
「クラスと同じ名前だったら、コンストラクタ」 ってPHP4から仕方なく引き継いだグダグダ仕様らしいな
一人でまったく無駄なところでポリモってます、ごめんちゃい。
>127 JavaもC++も、クラス名と同名のメソッドはコンストラクタと見なされる。そう珍しい仕様でもない。 「マジックメソッド(笑)」のような予約された名前を使わないなら、「特別な関数」を関数名だけで表す唯一の方法だからな。 >111 派生クラスを読むときに、親クラスを読む手間がかかるだけ。 派生クラスを読むときに兄弟にあたるクラスを読む必要はないし、親クラスを読む時は親だけ読めばいい。
>>111 解説サイトやらブログやら覘いて質問立てるんなら、引用元書いてくれ
ブログ記事を誤解して質問されてもなぁ
あぁ、でも糞サイト晒すならブログ板かw
136 :
nobodyさん :2008/12/25(木) 09:06:44 ID:aKyYzPmf
<?php $a="hoge1"; for ($i=1;$i<=10;$i++){ print $a; print "<br>"; $a++; } ?> これ実行したら10番目の結果に吹いた これを事前に予測できる勇者は そういないと思う
$a="bak1"; で始めるといいよ
>132 class User{ function getName(){ return $this->name; } function getMail(){ if(false === isset($this->mail)){ $this->mail = $this->loadMainAddressFromDb(); // 重い処理 } return $this->mail; } function getUrll(){ return $this->homepage->getUrl(); } } ・遅延初期化を使える(getMail()。必要になるまで変数の中身を取りに行かない、初期化が重い場合に有効) ・内部構造を隠蔽できる(getUrl()。直接変数にアクセスする構造だと、このような内部構造を取れないし、後からこういう風に変更もできない) ・publicでメンバを公開すると、その値に変数を好き勝手に代入できてしまう。getterだけを公開しsetterを作らないと、メンバーの変更を自分とこだけで管理できる
String型に++とかPHPユーザはキモイことを考えますね
141 :
139 :2008/12/25(木) 09:45:53 ID:???
>132 というか読んで吹いた。ダメだこの記事。 カプセル化はなんとか分かってるがオブジェクト指向が分かってないレベルだな。 O/Rマッパというのは「オブジェクト/リレーショナルDBマッパ」のこと。 例えばUserってテーブルにmailとnameってフィールドがあった場合に、 class User extends ORMapper{} と宣言するだけで、$user->mailとかにアクセスできるようになるのが正しいO/Rマッパ。 (当然、DBへの値の挿入もメンバー変数代入のように実行できる。永続化のタイミングは実装次第だが) こいつの書いてる「O/Rマッパ(笑)」は、単なるDB抽象化レイヤー。つまりPDO。 PHPだと、CBL_ActiveRecordがコンパクトな実装で比較的読みやすい。
ORマッパーの実装はそう悪くないと思うが。 初期化が必要なのがダサいが。
144 :
nobodyさん :2008/12/25(木) 10:10:09 ID:mYLTQOpT
【OS名】CentOS 5.2
【PHPのバージョン】PHP 5.2.6
【連携ソフトウェア】mysql
【質問内容】PHPでExcel-XMLを操作できるライブラリ
PHP で Excelファイルを操作、編集できるライブラリはないでしょうか?
JavaならApache POIに相当するようなものです。
Class: Excel XML Parser (excel, xmlparser, xml_parser.php, excel reader) - PHP Classes
http://www.phpclasses.org/browse/package/3187.html 検索して見つけたこれを試してみましたが、Excelのセルのを一つずつ書き換え
ることができるだけでした。
PHPExcel使ってる
146 :
nobodyさん :2008/12/25(木) 10:25:04 ID:RfhezXXN
>>145 日本語対応は可能でしょうか?
注意点などありますか?
147 :
nobodyさん :2008/12/25(木) 10:30:28 ID:sOMAc6ie
$test[aaa]と$test['aaa']では、 $test['aaa']の方が速いのは分かるんですが、 $test['aaa']と$test[0]だとどっちが速いですか? コード上見て分かりやすいって理由だけで連想配列にするなら、 ただの配列にしといた方が良かったりしますか?
148 :
144 :2008/12/25(木) 10:36:09 ID:???
>>145 > PHPExcel使ってる
おお、こんなものが!調べてみます。ありがとうございます。
>>147 天然?
> $test['aaa']と$test[0]だとどっちが速いですか?
forループして、CLIで実行すればすぐわかると思うよ。
やってみてレポートしたら?
> コード上見て分かりやすいって理由だけで連想配列にするなら、
> ただの配列にしといた方が良かったりしますか?
良いかどうかはどういう観点かによる。
どういう観点での良しあしが知りたいの?
150 :
nobodyさん :2008/12/25(木) 11:22:44 ID:sOMAc6ie
>>149 試しに3万個の要素入れて計ってみました
連想配列にしない方が若干速かったです。
質問するようなことじゃなかったですね。すんません。
経緯をいうと、
キーを2種類どちらかのフラグとして持ちたかったので、
以下のように文字列としてもつか数字としてもつか悩んでたんです。
$test[]['default'] = 'hoge';
$test[]['advance'] = 'wwww';
$test[][0] = 'hoge';
$test[][1] = 'wwww';
コード上は文字列にしといた方が何のフラグがすぐ分かるので良いかなぁと、
でも速度に差があるなら数字の方が良いのかなぁと。
若干速いので数字で持つことにします。意味はコメントにいくらでも書けばいいので。
>>150 計測乙。
3万個も使うのか・・・そこまで速度が必要なケースなんだ・・
設計は人それぞれだからいいんだけどね。
´(oo)`)y-~~ あんまりデリケートにチューンするなよ レースじゃねえんだからな
153 :
83 :2008/12/25(木) 14:18:17 ID:2wMGCLSI
>>83 です。
変数を取得するのはforeachで実現できました。有り難う御座いました。
しかし変数をsetする方法が思いつきません。
クラス内の変数にsetする例を考えています。
$arr = array('a', 'b', 'c');
$data = 'abc';
$cls->setVar($arr, $data);
とするとsetVar()内では
function setVar($arr, $data)
{
// $arrを下記の通りに展開して$data代入
// つまり以下のようなことがしたいです
$this->data['a']['b']['c'] = $data
}
何か良い案がありましたらお願いします。
>>153 何がやりたいんだか知らんが、構造的に破綻すると思うぞ。それ
そんなにぐだぐだやるんだったら、素直にArrayObjectでも使った方がいいぞ。
156 :
83 :2008/12/25(木) 14:32:02 ID:2wMGCLSI
>>154 具体例お願いします。
ちょっとお手上げです。
>>155 QuickTimeのAtomにObject的にアクセスするって云うことをやっています。
ファイル構造ググって頂ければ何となく分かるかと思います。
まぁ、foreachじゃないけど、こんな感じ class test { public $data = array(); function setVar($arr, $val) { do{ $val = array(array_pop($arr) => $val); }while($arr); $this->data = array_merge_recursive($this->data, $val); } }
159 :
83 :2008/12/25(木) 15:30:11 ID:2wMGCLSI
>>157 有り難う御座います。正確に動作しています。
こういう方法は思いつきもしませんでした。
>>158 ArrayObjectを使用したことがないのでちょっとあれなんですが、
上記のコードよりも簡単に
>>153 を実装できるのでしょうか?
宜しければサンプルコードを教えて下さい。
>>159 >>153 みたいな実装はしないってことなんだけどね。
a,b,cに意味を持たせる必要があるわけでしょ。
それだったら、
$quickTime
->getBlock(2)
->getMoov("main")
->getTrack("hoge");
みたいに、それぞれの階層に合わせたオブジェクトを作成して、
メソッドで順次取得するっていう話。
んで、ArrayObjectを使えばショートカット的に配列で処理できる。
$quickTime[1]["main"]["hoge"]で、参照を取得できるから、
値のセットもゲットも普通に実装出来るしね。
まぁ、offsetSetの時に一工夫は必要だけど。
ただ、簡単に実装というのは人によって意味が違うから何とも言えん。
わかりやすいかどうかは主観の問題だからね。
setValueの引数を可変にすりゃいいんでね?
162 :
83 :2008/12/25(木) 16:10:25 ID:2wMGCLSI
>>160 現状でパース後の配列は
$quickTime[1]["main"]["hoge"] = $data;
のようになっています。
$arr = array(1, 'main', 'hoge');
から
$quickTime[1]["main"]["hoge"]
にどうsetやgetが簡単にできるかっていうので悩んでいます。
わかりやすいというよりかは直感的な操作が目的です。
確かにそのように関数作るのも良いのですが、ツリー型で出来れば記録したいところです。
ただAtomってのはややこしいんですが、同一断層に同じ名前のAtomが出てくることもあるので、
そこら辺の条件分岐をやってるとどうしても複雑になってきます。
XMLに似てる感じです。
>>161 結局内部ではarrayとして扱われるのでそれをどう処理するかがミソです。
>>83 foreach + 参照渡しを使えばいいよ
$tree = array('a' => array('b' => array('c' => 'C')));
$indexes = array('a', 'b', 'c');
$node =& $tree;
foreach ($indexes as $index) {
$node =& $node[$index];
}
echo 'node: ', var_export($node, true), PHP_EOL;
echo 'tree before: ', var_export($tree, true), PHP_EOL;
$node = array('new' => 'value');
echo 'tree after: ', var_export($tree, true), PHP_EOL;
注意点は $value =& $array[$key] が実行された際にキー $key が存在しない場合
無言で配列に要素が作られてしまう事
これはPHPのアンドキュメントな動作なので
嫌なら array_key_exists() でチェックしてね
$indexesは $indexes = array_keys($tree); でいいな
>>164 よくない。何質問されてるのか分かってないのかよ
>>163 それは質問の答えになってないんじゃない?
新しいノードを追加じゃなくて、cにarrayが追加になってるよね。
c=>'C'の'C'を書き変えたいわけでしょ
書き換えは
>>157 で完結してるからそれでいいんじゃない?
foreachで回すならarray_reverseしてもいいけど。
ノードを扱うならappendなのかsetなのかgetなのかが明白な
IteratorってのがFAだとは思うが。
168 :
166 :2008/12/25(木) 20:16:57 ID:???
とはいえ、
>>163 は参考になる
ノードの追加も書き換えも、ターゲットにしたノードに対して自由にできるわけだ。
AMFPHPの質問はここで聞いてもいいですか? FlexからArray型の配列やByteArray型の配列をPHPに渡したいんですが、 PHP側ではObjectとして認識されます。これは、どうやったら 中身を取り出す事ができるんでしょうか?
>>169 もっとも単純なのは、get_object_vars かな。
取得したObjectを調べればいいと考えれば、
ReflectionObject::export($obj);
で、プロパティやメソッドをチェックしてそれを使う。
171 :
83@規制 :2008/12/25(木) 20:40:17 ID:gzkDkyEF
規制中なので携帯から失礼します
getはforeachぶん回しした後でissetでキーを確認すれば良いんで簡単なんですが
setは書き換えが何度もあるので
>>157 のを元にちょっと面倒ですが書き換えだけの関数を作りました。
ただ
>>163 のような参照っていう手もありますね。
>>168 Array/ArrayObjectの違いってなんなんでしょうか?
JavaのString/StringBufferみたいに書き換えメインなら後者使えって感じですか?
>>171 168?? ま、いいけど。
だいたい、そんな感じだけど、書き換えメインだからってわけじゃない。
あんまり気にしなくていいよ。質問スレなのに語ってしまってスマソ。
いい加減な事ばっか答えてんな
>>171 Javaで言うプリミティブ型と参照型の違い、
bool 型と Boolean クラスの違いと考えて欲しい
>>173 > Javaで言うプリミティブ型と参照型の違い
それは、そうなんだけどね。
「だいたい、そんな感じ」っていう程度の答えで収めちゃいかんかね・・・
見返り求めない辛抱とか苦労は日本人の美徳って教わったでしょ??ww
エンジニア主導で作ると、動いたところで満足してしまう。 『ちゃんと動いているから、あとは使う人が分かってくれる だろう』と、考えをストップするところがあった。本当は、動 いたものを説明して分かってもらい、使ってもらうところま で来てやっと完成なのに
177 :
nobodyさん :2008/12/26(金) 09:31:34 ID:YvHk/8hR
ファイルロックとは、何をブロックしているのか? fopenをブロックしているのか? それとも、fgetでの読み取りをブロックしているのか?
面倒なら、辞めれば?自動車関係の派遣にでもなれ
めんどいから後はユーザの自助努力に任せるよ
182 :
nobodyさん :2008/12/26(金) 09:53:25 ID:YvHk/8hR
ファイルロックとは、何をブロックしているのか?
183 :
nobodyさん :2008/12/26(金) 09:54:11 ID:YvHk/8hR
fopenしようとしたときにそれをブロックするのか? それとも、fopenは自由で、 そのあとにfgetでファイルの内容を読み取ろうとしたときに ブロックするのか?
>>182 そういう基本的なことはマニュアルに書いてあるのでマニュアル読め
185 :
nobodyさん :2008/12/26(金) 10:03:30 ID:YvHk/8hR
注意: flock()は、ファイルポインタを必要とするため、 (fopen()へ引数"w"または"w+"を指定して)書き込 みモードでオープンすることにより丸めるファイルに アクセス保護する 特別なロックファイルを使用する 必要があるかもしれません。 ↑この日本語意味わかんねーんだけど?
>>182 せめて、flockしたがfopenではじかれないけどなぜ?ぐらいにしろよ
それでもダメダメだが・・
"ファイルロックとは"って、汎用的な質問ありえんw
荒しだぞそれ。
>>185 日本語力がないのをマニュアルのせいにするな
日本語の勉強ならスレチ
188 :
nobodyさん :2008/12/26(金) 10:04:38 ID:YvHk/8hR
flockはfopenをはじかないって意味? キモヲタはちゃんと日本語しゃべれよ
190 :
nobodyさん :2008/12/26(金) 10:08:10 ID:YvHk/8hR
>>189 そう、そういう明快で簡潔な回答がほしかった
ありがとう、ありがとう
次からもよろしくおねがい
191 :
nobodyさん :2008/12/26(金) 10:09:08 ID:YvHk/8hR
次の質問 共有ロックってなんの意味があるの?
新スレになってまで寄生してんじゃねえよ
相手するなよ
196 :
nobodyさん :2008/12/26(金) 11:24:10 ID:YvHk/8hR
まあ残念ながら世の中にはこういう怪しいカウンタ は多数存在します。本来カウンタで同じ数字が2つ 出てきたり、数字が出てこなかったりしたらとんでも ないことです。「OSとロックの仕様の限界でしょうが ないんですよ」という名言を聞いたことがありますが 、そんな人に会員番号の発行プログラムとか、コン サートチケットや座席番号発行とかのアクセスが集 中する業務プログラムを委託しちゃったら怖すぎま す。
ちゃんとした排他処理さえできていれば、「自 分が処理をしている間はずーっとファイルは 開きっぱなしで自分以外の誰にも触らせな い」のが、データを守るためには最も安全な のです。 「データファイルが大きくなるほど、データが 飛ぶ可能性が飛躍的に高まります」とか「こ まめにファイルを閉じることでデータが飛ぶ 危険を最小限にしています」とか言っている 人のCGIは信用しないようにしましょう。2回 もファイルを開いたり閉じたりすると、その間 に何が起こってるか分からない、怖い! … そういう感覚が自然に沸くようになるとOKで す。一旦理解すれば、簡単なことですよね?
そのページの作者に恨みでもあるの?
相変わらず頭の悪い改行だな 紹介時にはID出すのに コピペするときだけID隠すとか細かい芸はしなくてよろしい さっさとトリップつけてくれ 俺の視界から消し去ってやるから
cakephp に限ったことじゃないかもしれなけど、 できるプログラマーって何を聞いても親切に教えてくれるよな。 できないプログラマーってひたすら人をバカにしたがるよな。 なんなんだろうなこの違い。やっぱり謙虚さが大事なのかな。
ブスがさ、自分よりブスな奴を必死で探してきて、 「この娘、ブスでしょ?」
人に物を聞く態度じゃない それがわからないなら死ねばいい
>>196 ずいぶん、浮世離れしたページだと思ったら、20世紀のサイトじゃないか。
掲示板がスパム満載になってて、マルウエア放置w
それで基本的なことを、勘違い付きでエラそうなこと書いてんなよなww
206 :
nobodyさん :2008/12/26(金) 12:46:03 ID:YvHk/8hR
1.ロックする 2.読み込む 3.一時データファイルに書き込む 4.一時データファイルを正規ファイル名にリネームする 5.ロック解除する これってしないとダメなの?
⊂ ⊂ヽ、 /)/) c、 `っ( ヽ ( v)c、 `っ V''V ( v) / ̄`⊃ V''V | ⊃ ( v) ハ,,ハ V''V ( ゚ω゚ ) ⊂ ⊃ > ) (/(/ ハ ,,ハ ( ゚ω゚ ) お断りします / \ ((⊂ ) ノ\.つ)) (_⌒ヽ ヽ ヘ } ε≡Ξ ノノ `J
>>206 >>1 は守ってください
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
>>209 . ・ .ヽOノ
ーO . ,. _ノ
ノヽ-=つ ’' (
〈
移動しないというなら話は早い 一切シカトでよろしく たまにID伏せるが特徴あるので分かるだろう
212 :
nobodyさん :2008/12/26(金) 13:07:46 ID:Ag3DX8xC
こんにちは 【OS名】centos5 linux 【PHPのバージョン】php5.26 【質問内容】 PHPをテンプレートエンジンとして使用するとき <?php if($foo): ?> <div>fooだよ</div> <?php endif ?> こんな風にかけるじゃないですか? 多分{}を使うブロック構文はこの書き方がいけそうな気がするんですが switchもいけるのでしょうか?いまいち書き方がわからない。 たしか公式マニュアルでこの書き方の解説が書いてあるところを見た気がするんですが 探しても見つかりません。URL知っていたら教えてください。 お願いいたします。
211 :nobodyさん [sage] :2008/12/26(金) 13:07:12 ID:??? 移動しないというなら話は早い 一切シカトでよろしく たまにID伏せるが特徴あるので分かるだろう
214 :
212 :2008/12/26(金) 13:11:36 ID:Ag3DX8xC
215 :
nobodyさん :2008/12/26(金) 13:25:18 ID:YvHk/8hR
「OOPのメリットの一つはカプセル化」 とよく書いてあるが、もしかして、カプセル化しないと すべてのサブルーチンは自動的に全部 グローバル化してしまうの?
-+*---*d-----
217 :
212 :2008/12/26(金) 13:33:35 ID:Ag3DX8xC
<?php switch($foo): ?>
<?php case 'a': ?>
<div>aだよ</div>
<?php break; ?>
<?php endswitch ?>
だめみたいですね
下は動きました。
<?php
switch($foo):
case 'a':
echo 'aだよ';
break;
endswitch;
?>
上の方が書けたら便利なのになあ。書き方がまずいのか、それとも不可能なのでしょうか?
>>215 カプセル化ってもっと抽象的な意味じゃないのかな?
例えば部下にレポートを書くように命令するんだけど、
その部下がどうやって調べたとか、レポートを何のソフトで入力したとか、そういう詳しいやり方は一切関知しないけど、
欲しいレポートだけは確実に手に入る
こんな感じだと思ってるけど。
-+*---*d2.
回答は IDを見て 書き込みやがれですぅ
自演ですので、ID見ても書きますですぅ
>>217 htmlモードで<div>aだよ</div>
ここの部分は出力されてるわけで
phpモードでの条件文に関係なくここは必ず表示されてしまう
条件文によって表示させたいのなら
phpモード内でやらないとだめだろう
間違いじゃないだろ
そもそも
>>212 の挙動が不自然
こっちがバグとしか思えん
>>222 あと間違いだと思うなら一言で片付けるんじゃなくてそれを正してくれ
>>223-224 質問者じゃないんなら、余計な御世話だろ
でなけりゃ、自作自演
>>221 [だめみたいですね]じゃなくて、
エラーがでるのか、
期待した動作と違うなら、期待した動作はなんなのか、
ちゃんと、
>>1 をよく読んで質問してください。
そうすれば、答えが貰える。ちうか自然に答えに辿り着く。
{}で囲めばいいんじゃん? <?php switch() {
途中で送信してしまった まぁいいや しかしPHPは気持ち悪い言語だな
質問君が、自作自演に走る時って、恥ずかしいのを隠すためなんだよね。うんうん。
phpしかやったことない雑魚はphpをけなされるとお顔が真っ赤になるようです
jspって(笑)
234 :
nobodyさん :2008/12/26(金) 14:29:35 ID:Mk7Gnz+a
PHP5.2.8です。 テキストファイルを指定されたフォーマットに基づき、 行毎に取り出したいプログラムを作ろうとしています。 (任意のアクセスログの解析プログラムです) フォーマット自体の Syntax はまだ未定なんですが、 今後取り出したい項目が増えることを想定しています。 例えば、以下のようなフォーマットだった場合。 $format = '%{ip} %{host}'; テキストファイル(アクセスログファイル)の各行とマッチングをし、 「127.0.0.1 example.com」という行があれば、 $data[0]['ip'] = '127.0.0.1' $data[0]['host'] = 'example.com' という形でデータを取り出したいです。 こういった場合、どういったロジックで書けば良いのでしょうか。。。 というか、こんなことは結構良くありそうなので、 PEAR でライブラリを探してみましたがそれらしきものはありませんでした。 ライブラリがあれば理想ですが、ご存じでしたら教えて下さい。 よろしくおねがいします。
235 :
234 :2008/12/26(金) 14:33:44 ID:Mk7Gnz+a
すみません、大事なことを書き忘れました。 指定フォーマットが可変なのが今回の目標です。 上述例であれば、半角スペースで explode() すればよいのはもちろん分かるんですが、 例えば、 $format = '%{ip}<>%{host}' となったり、 (KENT式) $format = '%{ip} "%{host}"' になるかもしれない、ということです。 動的に正規表現を無理矢理作るようなイメージなのでしょうか…。 同じイメージとしては、 AWStats でのログのフォーマットを指定出来るところ、あれのイメージです。 よろしくおねがいします。。。
>>153 あたりからの話題が参考にならないだろうか?
237 :
212 :2008/12/26(金) 14:48:00 ID:Ag3DX8xC
>>225 すいません。出たエラーはこんな感じです。
Parse error: syntax error, unexpected T_INLINE_HTML, expecting T_ENDSWITCH or T_CASE or T_DEFAULT
下のようにしたら実現できました。
<?php switch($foo):
case 'a':
?>
<div>a</div>
<?php break; ?>
<?php case 'b': ?>
<div>b</div>
<?php break; ?>
<?php endswitch ?>
気持ち悪いですね。
最初のcase句を別の<?php?>に入れるとエラーが出ます。
う〜ん・・・気持ち悪い。使っていいものか悩みますね。バグでした〜とかいって修正されそうな気も。
>>236 日本語としては「じっぷん」が正しいが、レッドブックの「とおふん」も間違いではない
ただ朝鮮人や関西人が良く使う「じゅっぷん」は明らかに間違い
これを使っていると日本人である事を疑われるので気を付けるように
>>237 <?php連呼する書き方の方が気持ち悪い
>>237 俺のデバッグ環境だと普通にできるが・・・
<?php $a = 3; ?>
<?php switch($a): ?>
<?php case 1: ?>
1
<?php break; ?>
<?php case 2: ?>
2
<?php break; ?>
<?php default: ?>
default
<?php endswitch; ?>
>>235 explodeは、よくてpreg_matchも理解してるんだよね。
あとは状況応じてパターンを変えればいいんでない?
>>237 switchとcaseの間に改行以外のゴミでも入ってるんじゃね?
あぁテンプレートってこうやって書くのか いつも <div><?php if () { echo ""; } else { echo ""; } ?></div> みたいな感じでやってたわ
247 :
nobodyさん :2008/12/26(金) 15:25:44 ID:Mk7Gnz+a
>>241 はい、理解しています。
今回の例であれば、%{hoge}の部分を(.+)にして正規表現を作り、
preg_matchの3番目の引数$matchesを使って、
%{hoge}が1番目なら$data[0]['hoge'] = $matches[1]すれば良いですよね。。。
ただ、もっとこう、sscanf 的な感じで簡単な仕組みで出来たりしないかなぁ、とか
一般的にはどうやっているんだろう的な意味合いも込めて質問させていただきました。
どなたかスマートな方法や、ライブラリがあればご教示ください。
>>247 そもそも何でそんなに各行が異なる仕様なの?
>>247 preg_splitとjoinで書くとかそういう話?スマートって。
>>247 sscanf使えば?
>>246 smartyは独自タグをああいう形に変更してくれるが
あれは記述方法の1つであってテンプレートではない
252 :
nobodyさん :2008/12/26(金) 15:41:21 ID:i1+5wuDM
mysqli の close系関数は明示的に呼び出したほうが良いのでしょうか。
254 :
234 :2008/12/26(金) 15:43:41 ID:???
>>249 あ、すみません、すこし私の文章の字掛かりが悪かったですね。
取り出す単位が行毎というだけで、行毎にフォーマットが違う訳ではないです。
というか、そもそも行とかそういう説明がいらないですね、ごめんなさい。
あくまで1文字列集団に対して指定のフォーマットで取り出したいだけの質問です。
>>250 スマートって定義が曖昧ですね、申し訳ない。
そんな汎用ライブラリ無いですか、と受け取って下さい。
自分でコードを書きたくないのです。怠惰です。開き直りです。。。
255 :
252 :2008/12/26(金) 15:46:29 ID:i1+5wuDM
>>253 ありがとうございます。
ご意見を伺いたいのですが、20件〜30件程度のデータをSQLから引き出して、<select>をループで
生成するというのはやはり、負荷がかかってしまいますか?
(<select>は複数あるとします)。
データが変わるたびに、対応してHTML部分も書き換えるのが面倒なので考えたのですが……。
>>254 >あくまで1文字列集団に対して指定のフォーマットで取り出したいだけの質問です。
だったらsscanfでいいじゃん。
連想配列に入れたいなら自分でsscanf使ってパーサー作る感じで
>>255 全然かからない
257 :
252 :2008/12/26(金) 15:51:16 ID:i1+5wuDM
258 :
nobodyさん :2008/12/26(金) 16:25:35 ID:nmEdMuVH
phpのある関数がどのように実装されているのか中身を見たいのですが 何か方法はありますか? またphpの標準関数はphp以外の言語で実装されているのでしょうか? return値が異なる関数が(成功したらintやStringを返し失敗したらbool(false)を返すなど) いくつかあるので中身がどのように実装されてるのか知りたいです
>>258 マニュアルを見るのが一番早い。
しかし、それ以上を知りたいなら、ソースが公開されているので、それを見た方がいい。
ソースが読めないレベルならドキュメントで事足りる。
せめて、そのぐらいの質問なら許容されるよ。がんばれ
261 :
234 :2008/12/26(金) 17:38:40 ID:???
>>256 そうですよね、やはりそうなりますか・・・。
やはり自分で書いてみます。。。
ありがとうございました。
262 :
nobodyさん :2008/12/26(金) 17:59:54 ID:nmEdMuVH
レスどうもありがとうございます ソースコードを見てみましたが自分には理解できそうもありませんでした ちょうどJDKのsrc.zipのようなものを期待していたのですが 思ったよりも複雑なようで・・・ var_dumpやgettypeなどを使って 成否による挙動を見ながら中身の実装方法を想像してみたいと思います
>>258 tar.gzのやつがCのソースなのでそれを見ると良い
Cが読めないレベルってことは、当然Cで実装したことはないわけだよな。 何の経験があるのか知らんが、Cが読めないで言語実装に興味を持つって不自然すぎる
単純に静的型付け言語じゃ if (Condition) { return int val; } else { return false; } なんてできないから不思議に思ったんだろ
266 :
234 :2008/12/26(金) 19:38:18 ID:???
結局 sscanf ではスペースの扱いが上手くなかったので、preg でやりました。 実際はクラス化しているので、実コードは全く違いますが、ざっくり纏めて書いときます。 # 入力項目 $format = '%ip %host'; $line = '127.0.0.1 example.jp'; # 独自フォーマットパターン $pattern = '/%([a-z]+)/'; # 正規表現を作る $pattern_array = array(); $num = preg_match_all($pattern, $format, $matches); if ($num > 0) { for ($i = 0; $i < $num; $i++) { $pattern_array[$i] = $matches[1][$i]; } } $tmp = preg_quote($format); $tmp = preg_replace($pattern, '(.*)', $tmp); $format = '/^' . $tmp . '$/'; # マッチング $num = preg_match($format, $line, $matches); $data = array(); if ($num == 1) { foreach ($pattern_array as $key => $value) { $data[$value] = $matches[$key + 1]; } } # 結果 print_r($data);
>>266 まぁログフォーマット未定ならApacheログと同じような感じにして
そこらへんのツール使う方が早いと思うがな
>>268 オープンソースとか汎用ツール使うと金とれないだろ
だからわざわざ車輪の再発明をして金とるんだよJK
「話が伝わっているのかいないのか分からない」 国内最大のネットオークション「ヤフー・オークション(ヤフオク)」を巡り、身に覚えのない出品料約24万円を請求された 兵庫県芦屋市の会社員梅田雄一さん(38)は憤る。 自分の会員IDで何者かが偽ブランド品約200点を出品していると 気付いたのは9月29日。運営会社のヤフーに連絡しようとしたが、同社の電話番号は一般に公開されておらず、 問い合わせはメールに限定していた。 すぐメールで事情を伝えたが、翌日、「改めて連絡する」と返信があった後は、音さたなしに。10月中旬に催促のメールを 送ったが、その返信は月末。具体的な措置はとられないまま今月5日、24万円は引き落とされてしまった。 「電話なら1回で済むのに。時代の最先端をいくIT企業のはずだが、まるで江戸時代の手紙のやり取りだ」と梅田さんは話す。 同様の相談は、NPO法人「消費者支援機構関西」(大阪市)にも255件寄せられ、うち約80件は「返信がない」、約50件は 「伝わっているかどうか不明」との苦情だったが、ヤフーは「電話が殺到すると業務の混乱を来す」として、今後も電話番号を 公開する予定はないとしている。
きっとエンジニアが誰も電話に出ないんだよ。 うちがそうだから分かる。
273 :
nobodyさん :2008/12/27(土) 17:04:00 ID:VWeaVdBZ
>>1 前スレの番号が間違ってる
お前仕事でもミス多いだろ
842 :820 [sage] :2008/12/22(月) 21:40:42 ID:??? しつこくてすみません。 いろいろ調べました。 結果、PDOには文字セットの変更は伝わらない、伝える手段がないようです。 (SET NAMES しちゃダメってこと……だと思う)。 おとなしく、mysql_* なり mysqli 系にします。 お騒がせしました。 ------------------------- ↑これって、あってるでおじゃるか?
つまり 「MySQLを使うならPDOを使え」 というページがやたら多いが、 レンタルサーバーではmy.cnfを編集できない。 すると skip-character-set-client-handshake default-character-set = utf8 を設定できないので、それ以外の方法で 文字コードを設定する必要が生じる。 そしてPDOには文字セットの変更は伝える手段がない そしたら、PDOは使えないジャン。 だとしたら、PEAR::MDB2を使うしかないのか?
277 :
nobodyさん :2008/12/27(土) 17:34:20 ID:VWeaVdBZ
自分の使っているレンタルサーバーは MySQLのバージョンが4.0.なのだが、 ひょっとしてこの場合は文字化けのことを 心配しなくてもいいのかな?
279 :
nobodyさん :2008/12/27(土) 17:48:45 ID:VWeaVdBZ
自分が借りているレンタルサーバーで phpinfo(); してみて、そんで、これからPDO使うんで、 PDOの項目を検索してみたら、 PDO PDO support enabled PDO drivers sqlite2, sqlite ってなってて、myslqの文字が見当たらないんだが、 これってもしかしてmysqlをPDOで使えないってことで おじゃるか?
282 :
nobodyさん :2008/12/27(土) 17:56:36 ID:VWeaVdBZ
>>281 自分でインストールするとか、
そういうのは無理でおじゃるか?
この年末にレンサバのこと気にしてるって、さみしい夜だな。
285 :
nobodyさん :2008/12/27(土) 18:01:05 ID:VWeaVdBZ
もしインストールするとしたら、 何が必要でおじゃるか?
287 :
nobodyさん :2008/12/27(土) 19:03:29 ID:VWeaVdBZ
PEAR::MDB2がレンタルサーバーに インストールされているかどうかって 何を見ればわかる?
289 :
nobodyさん :2008/12/27(土) 19:24:59 ID:VWeaVdBZ
サバカンに聞かなくても わかるでおじゃろう?
<?php require_once('MDB2.php'); echo '入ってたよ!'; ?.> エラーが出るか、何も表示されなかったら入ってない。ちゃんと動きゃ入ってる。
ママー!ありがとう
293 :
nobodyさん :2008/12/27(土) 19:41:09 ID:VWeaVdBZ
>>291 何も表示されないでおじゃるな。
じゃあ、入ってないってことでおじゃるか?
294 :
nobodyさん :2008/12/27(土) 19:42:33 ID:VWeaVdBZ
いやちょっとまて。 最後の行にいらんピリオドがついておじゃるぞ
295 :
nobodyさん :2008/12/27(土) 19:44:32 ID:VWeaVdBZ
もう一回試したが、やっぱり何も表示されないでおじゃる。
296 :
nobodyさん :2008/12/27(土) 19:45:50 ID:VWeaVdBZ
どうしたらいいでおじゃるか。 自分でインストールできるものでおじゃるか?
297 :
nobodyさん :2008/12/27(土) 20:26:01 ID:VWeaVdBZ
PEAR::MDB2が入っているかどうか、 調べるにはどうしたらいいでおじゃるか?
299 :
nobodyさん :2008/12/27(土) 21:12:44 ID:HuO0vYHm
まずさ、サバ何を使っているの? pear install MDB2 これできるの? できないでしょう?レンサバだと。 だからだめじゃない?
str_getcsvってまだ使えないのかな。
_・)
303 :
nobodyさん :2008/12/27(土) 22:04:51 ID:HuO0vYHm
もう答えるのやめにします。
304 :
nobodyさん :2008/12/27(土) 22:06:09 ID:HuO0vYHm
306 :
nobodyさん :2008/12/27(土) 22:12:09 ID:HuO0vYHm
俺の答えだめだったんだ。 もっと勉強してきます。
わざわざID変えたり隠したりで別人の振りとかいらないから。
308 :
nobodyさん :2008/12/27(土) 22:30:14 ID:HuO0vYHm
してないから。 そう見えたならごめん
310 :
nobodyさん :2008/12/28(日) 07:10:08 ID:EDfMX0OA
MySQLに接続する方法って (1)PHPのネイティブ関数 (2)PEAR::DB (3)PEAR::DBM (4)PEAR::DBM2 (5)PECL::PDO と、5種類もあるんだけど、今回はこのうち (5)PECL::PDO を使おうと思ったのでおじゃる。 ところが、わらわが借りているレンタルサーバーには PDOそのものは入っているのでおじゃるが、 ドライバがSQLite用のとかしか入っていないのでおじゃる。 MySQL用のドライバがないのでおじゃる。 この状況で、自分でPDOのMySQL用のドライバを入れたり できるのでおじゃるか? それとも、管理人に頼まないとだめなのでおじゃるか?
311 :
nobodyさん :2008/12/28(日) 08:14:03 ID:EDfMX0OA
$db = mysql_connect ( "hostname", "username", "password" ); この$dbを「データーベースポインタ」と呼ぶでおじゃるか?
「おじゃる」ってなに?
「情報のやりとりは、聞き違いや受け取りミスがあってはいけないの でメールで。 急ぎの場合は、メール送信後に電話で確認。また、長文になる場 合は添付ファイルにするなどして 情報をまとめるよう心がけること。」 もう3年も前から飽きる程言ってるのに、まだこの基本ルールが守れ ない奴が多すぎて萎える。 今日も、某から4通のメールで新仕様を送ってきた。自分の意見と仕 様を織り交ぜた長文メール。 改行位置もムチャクチャで読むために一旦メールからコピペして、エ ディタに貼り付けて、 読みながら内容体裁しないといけない始末。何度言ってもこうやって くるうえ、 修正依頼すると普通に1日とかかかるので、月曜までに仕上げない といけない関数だから自分で解読した。 2時間半程かかって、ようやく仕様解読。なんだ、まとめればメール1 通で済む内容じゃないか。設計開始。 そこに某から「メールの内容なんですけど、修正箇所がありまして・・ いいですかあ」とか言って「いい」とも答えてないのに 何行目のどこそこはやっぱりこうで、そこの数字は実はこうで・・と、こ ちらのメールでは改行全然ないのに送信側は一定行数で自動改行 になっているらしく どこを示しているのかさっぱりわからなかったので、再送信しろと言っ て電話を切った。
すると意外に早く(といっても3時間で)メールがきたが、 前のメールの訂正ではなく、新たに書き起こしているからまた 解読が必要・・・ ため息つきながら解読開始したら、いきなり最初の仕様が違う。 引数仕様が全然違ううえ、存在しない構造体の名前とか見える。 意味わからん、どうなってるんだ!と、こっちの解読した仕様をメ ールで送り これを元に直せ!と言って、電話したら 「今日は早退しました」 もうこっちで現状の仕様を元に仕様作ってやるから、帰りにダン プにでも撥ねられてくれ・・
>>314 うざい長文がお前にもきちんと受け継がれていることだけはわかったw
316 :
311 :2008/12/28(日) 10:02:19 ID:???
>>312 >「おじゃる」ってなに?
そこはどうでもいいから質問に答えろや、kasu
そこはどうでもいいから、「おじゃる」ってやめて「質問」に戻せや
318 :
311 :2008/12/28(日) 10:12:01 ID:???
>>317 言われたとおりにしてやったんだから今度こそ答えろよ、kuso
$db = mysql_connect ( "hostname", "username", "password" );
この$dbを「データーベースポインタ」と呼ぶで質問?
コピペするAA探してるのでちょっと待ってね
321 :
319 :2008/12/28(日) 10:18:20 ID:???
ふははは、必死乙
323 :
319 :2008/12/28(日) 10:40:05 ID:???
325 :
319 :2008/12/28(日) 11:22:39 ID:???
質問 管理人に頼まないとだめなのでおじゃるか?
いくら暇でも質問スレッドを荒らすのは勘弁してくれ
327 :
325 :2008/12/28(日) 11:46:52 ID:???
すみません、解決しましたでおじゃる
こいつはひどいな
マジレスするよ phpの時代は終わったよ 請負の適正化の問題で大手がいっせいにphpの採用を手控えた 現在就業している奴は本当にラッキー 新規でphpのスキルで案件に入るなんて不可能 現在修行している奴も契約の更新時で契約社員への転向、単価ダウンを提示されるケースが多い まあたまに例外はある どんな世の中でも例外はあるだろ その例外を皆が目指してもナンセンス 100人に1人になろうなんてクレージー phpなんてこれまでは必要悪な存在だったんだよ たまたま技術者不足で仕方なく採用されていただけ SIサイドでもphpグラマーのスキル不足、社会性の欠如を苦々しく思っていた人も多くいる この際徹底的にphpグラマーを排除できると喜んでいるよ phpグラマーに告ぐ もうphpのようなポジションにしがみ付くのは諦めろ Javaが無理ならrubyに転向しろ いくら個人で新規の契約を待っていても99%無理だぞ それから経済情勢の悪化で単価は間違いなく下がっている 1年前の感覚で営業していると誰にも相手にされない 3割引きは覚悟しな
お前はこのスレで何を言ってるんだ? 初心者同士が教えあうスレだぞ
>>329 君のような空気嫁ない基地外ならJavaやRubyでも仕事はないだろうね
PHPがkusoいのは認めるが
332 :
144 :2008/12/28(日) 14:01:21 ID:l23GN/5c
【PHPのバージョン】php5.2.6 C++でいう strstream みたいな、文字列変数としてデータが格納されるファイ ルポインタはありませんか? fputcsv() で、CSVファイルではなく文字列を作りたいので。
333 :
329 :2008/12/28(日) 14:04:09 ID:???
最近失業してイライラしてたから腹いせに書き込んでしまった てめぇらも気をつけな
334 :
332 :2008/12/28(日) 14:04:35 ID:l23GN/5c
すみません、名前欄の144は誤りです。
file_put_contents
336 :
332 :2008/12/28(日) 14:13:23 ID:???
337 :
332 :2008/12/28(日) 14:33:52 ID:l23GN/5c
>>336 は騙りで
>>335 は誤りです。このスレ、ノイズが多いですね。
私は、ファイルポインタのようにしてデータを出力すると、ファイルではなく、
文字列変数になる、そういうオブジェクトを探しているのです。
出力してfile_get_contents
>>337 ここに住み着いた荒氏がいなくなるまでは、
まともな答えを期待する方が無理というもの
>>335 ,336,338は意味がわかってない
fputcsvは文字列をオープンしたCSVファイルのポインタに書き込んでんだろが 頭悪いな
いや、誤解した方がわるいんじゃない。
>>332 は質問をもう少しわかりやすくしないと、例の質問君と同じレベル。
>>331 > PHPがkusoいのは認めるが
きそい?
344 :
332 :2008/12/28(日) 14:57:21 ID:???
すみません。私の態度が悪いから教えていただけないのですね。 自分で探す努力もしないで、教えて厨になっていて申し訳ありませんでした。 もう二度とここには来ません。
な、
>>340 みたいなアホがでるからさ、
>>332 の質問は書き換えた方がいい。
ファイルハンドルに書きこむタイプの関数で、
実際にはファイルではなくて、変数やオブジェクトを返してくれるような
疑似ファイルハンドルやストリームコンテキストを返す関数はないか?
ってことだろ。
347 :
332 :2008/12/28(日) 15:01:18 ID:???
>>345 そこまでわかってるなら質問に答えてください。役に立たないという点では
あなたも一緒ですね。
>>345 は?332がアホなんだろが。340のどこが間違ってるんだ?説明してみろカス
C++より高級言語なゆとりPHPユーザに
C++視点での質問したって答えられるわけがないだろ
スレ違いだがC++のスレで聞いたほうが答え返ってくる確率は高い
ていうか
>>339 はそこまでいったんだから答えてやれよ
応用力ないんだなC++プログラマって
>>348 質問が読めてない。
ファイルに書きたくないのに、CSVファイルのポインタに書くって(ry
>>351 どこをどう読めばファイルに書けなんて解釈になるんだ?
fputcsvが文字列を作っていないような頓珍漢な質問をしてるから過程を説明してやってんだよ。
お前が読めてないんだろ低脳。
>>352 > [ファイルポインタのようにしてデータを出力すると、ファイルではなく、
> 文字列変数になる]
これの意味がわからないなら質問に答えてるなよ。
>>332 の質問は,fputcsvで対象にしているファイルハンドルにストリームを
使えるか?って意味だろ。
で、それに対して
>>341 が正解だしてるだろ。
fopenの引数にphp://memoryなりphp://tempを使う
>>347 質問君、乙
回答見落として逆切れですかw
お前ら質問がくだらなくないですよ
>>353 ほうほう、んでそれのどこが文字列変数になるの?
>>358 正解じゃないだろ
”くだらなくないですよ”って、
十分くだらねぇよ
362 :
358 :2008/12/28(日) 15:17:52 ID:???
363 :
332 :2008/12/28(日) 15:17:55 ID:l23GN/5c
用事から戻ってきたら騙りだらけで笑いました。
>>345 > ファイルハンドルに書きこむタイプの関数で、
> 実際にはファイルではなくて、変数やオブジェクトを返してくれるような
> 疑似ファイルハンドルやストリームコンテキストを返す関数はないか?
> ってことだろ。
おっしゃるとおりです。明快なご説明に感謝します。
他のレスはまだ内容に追いつけてません。今から読みます。
どうでもいいことでケンカすんなよ ガキかよwww
>>361 fopenしてfputcsvしてfreadするぐらいのことって説明しないとわからないんだ。
かわいそうに。
そういう下らない質問をするためのスレなんだからさ、
>>1 みてさっさとIDさらして質問しなおしたら?丁寧に説明してくれるひともいるさ
>>363 カス質問者のくせに笑ってんじゃねぇよ
◆質問する時の注意
・ 質問者として、態度をわきまえること。
これ満たしてないのでルール違反
>>332 の自演がうぜぇw
キャラ何通り使い分けてんだか
>>365 >ほうほう、んでそれのどこが文字列変数になるの?
↓
>fopenしてfputcsvしてfreadするぐらいのこと
お前は何を言ってるんだ。頭大丈夫か。
>>366 あのさ、失業して苛立ってるのはいいけど。
失業者にしても、もすこしレベル上げないとつらいんじゃね?
自己紹介乙w
>>371 お前が一番だよwwww説明もできないでダンマリなくせにwwww
C++(笑)がPHPをバカにしてると聞いて
368の論理展開が平気で出てきて、しかもそれがおかしいとも感じないのは頭やばいだろ。 日本語組み立て能力が無さ杉。コミュ力無さ杉。思考力無さ杉。 fopenしてとか関数名+動詞でしか説明できないのは抽象力がない証拠。
$f = fopen("php://temp", 'w+'); fputcsv($f, array("1", "2")); rewind($f); $test = fread($f, 100); fclose($f);
380 :
332 :2008/12/28(日) 15:49:09 ID:???
なんかもう面倒くさいからいいです。 下らねぇ質問してすみませんでした。皆さんありがとうございました。 もう少し大人になりましょうね。
失業中なんだから許してやろうぜw
>>333 が失業したの、わかったわ。
経営者、グッジョブだね。あとはネカフェが締めだしてくれるのを待てばOK
質問の人がブッチで金賞だろ
金銀銅独占だろ
388 :
332 :2008/12/28(日) 16:36:03 ID:l23GN/5c
いまさらあれですが、皆さんありがとうございました。
信じていただけないでしょうが、私はIDを出してしか書き込んでいません。
>>342 さんも書いてますが、質問の仕方が分かりにくすぎました。荒れさせてしまっ
て申し訳ありません。
>>341 さんのphp://memoryは知りませんでした。
>>377 さんにまとめていただき、
ここでの議論がよくわかりました。
CSV Helper (PHP 5) (Articles) | The Bakery, Everything CakePHP
http://bakery.cakephp.org/articles/view/csv-helper-php5 実はこういうコードを見つけていたのですが、よく仕組みがわからず、このス
レを読んでやっと理解できました。
>>377 さんとほぼ同じ内容になっています。
では失礼します。お騒がせして申し訳ありません。
389 :
332 :2008/12/28(日) 16:41:41 ID:???
少し補足。
>>378 私もimplode() を使っていましたが、区切り文字や引用文字のエスケープがで
きないので。
煽りが多いだのノイズがどうだの言わなけれよかったんだが 余計な一言から荒れる例 最近偉そうでバカな荒らし質問者がいるからタイミングが悪かったってのもあるけどな
392 :
332 :2008/12/28(日) 18:21:10 ID:???
>388 >信じていただけないでしょうが、私はIDを出してしか書き込んでいません。 誰も信じないだろうね。自作自演乙です 賞賛に値する暇人ですね
同一人物じゃなかったとしても、基本的には同質の変質質問。自業自得
ストレートに聞けばすぐに答えが出るものを、
Cakeの情報を持っててそれを出さずに、C++なんぞを例に出して抽象的な質問を作る。
>>390 タイミングが悪いときにそんな質問出す空気の読めなさは(ry
395 :
nobodyさん :2008/12/28(日) 18:25:33 ID:EDfMX0OA
最近PHP+MySQLの勉強をはじめたのでおじゃるが、 これって基本的には、SQL文をゴリゴリ ソースコード中にSELECT文で書きまくる ものなのでおじゃるか?
>>392 失業者、名前欄乙。
その頭の悪さは、称賛に値しますね。
>>310 ハンドルのことをポインタと呼ぶ、
C++をかじっただけの適応力のなさは332氏とおじゃる丸に共通ですな。
>>395 実際にソース見て調べたらいいじゃん
なんでまず自分で調べようとしないの?バカなの?死ぬの?
400 :
332 :2008/12/28(日) 18:41:25 ID:???
散々sageで書き込んだ後に「ID晒しだけが自分です」というのは
簡単だという例が
>>392 名前欄を間違えて入力したと思ってる奴はおつむが悪いよぅwww
言い訳乙
言い訳乙
>>400-402 あほだなお前ら。消し忘れ乙って言うんだよ。
だいたい、名前欄に332って入れたらなんで、
"「ID晒しだけが自分です」というのは簡単"の例になるんだよ。
偽装するのは簡単の例ならわかるけどな。
404 :
332 :2008/12/28(日) 18:49:07 ID:???
オレ言い訳乙
406 :
332 :2008/12/28(日) 18:50:16 ID:???
んじゃ俺も消し忘れ乙。
407 :
332 :2008/12/28(日) 18:50:55 ID:???
はいはい乙乙
409 :
332 :2008/12/28(日) 18:52:09 ID:???
お前ら無駄にスレ伸ばすなよw
410 :
332 :2008/12/28(日) 18:52:58 ID:???
411 :
332 :2008/12/28(日) 18:53:38 ID:???
これだから、失業者は困る
412 :
332 :2008/12/28(日) 18:54:43 ID:???
荒らすなよ、マジで
413 :
395 :2008/12/28(日) 18:55:46 ID:???
荒すのはおれの仕事。おまえらすっこんでろw
414 :
332 :2008/12/28(日) 18:57:14 ID:???
>>413 お前こそ俺の仕事とるなよwてめぇこそすっこんでろ
415 :
333 :2008/12/28(日) 18:59:22 ID:???
失業したうえに、荒しの仕事まで取られたら、悲しすぎるんでかんべんしてください
416 :
332 :2008/12/28(日) 19:00:58 ID:???
荒れてるところすみません。 ここへの書き込みがばれて先ほど失業したのですが、次の就職先はどこがいい ですか?できれば派遣じゃないところで。 PHPメインでしたが、JavaとPythonも少しかじってます。 よろしくお願いします。
最近PHP+MySQLの勉強をはじめたのでおじゃるが、 これって基本的には、SQL文をゴリゴリ ソースコード中にSELECT文で書きまくる ものなのでおじゃるか?
冬休みが終わるまではこのスレ見ないほうがいいかもな 終わっても質問の人はニートみたいだから毎日いるけど
ROMるには面白いが、まともに質問できそうにないなこのスレw
>>418 冬休みの終わりが来年の今日あたりの人はどうすればいいですか?
421 :
nobodyさん :2008/12/28(日) 19:11:18 ID:ye4GPpuG
ちゃんとID出そうぜ。
俺は出すぞID。
>>332 年明けでfind jobで探そうぜ。
javaのかじるっていうのはどのくらい?
う、かぶって、負けた
>>421 ありがとうございます。
Javaは学生時代に4年ほど勉強しました。卒業後はPHPとPythonだけで
今は2年目です。
職場はできれば千葉県内で。
業務経験がないなら言語経験とか就業には関係なし 入社してから必要なものおぼえさせられるだけ
> PHPメインでしたが、JavaとPythonも少しかじってます。 つじつまぐらい合わせろ
427 :
nobodyさん :2008/12/28(日) 19:26:33 ID:EDfMX0OA
グローバル変数を初期化するときは、 空文字にするべきでおじゃるか? それとも、NULL?
>>425 ということは実質PHPとPythonのそれぞれ2年分しか就業には関係ないんですか...
>>426 PHPメインは仕事の話です。「かじってる」としたのは、仕事で使えるレベルか
自信がなかったからです。釣られてくださって感謝します。
429 :
nobodyさん :2008/12/28(日) 19:29:01 ID:ye4GPpuG
釣りと釣られの絆に感動しましたw
431 :
nobodyさん :2008/12/28(日) 19:31:40 ID:uVW1Zee4
【OS名】centos5 【PHPのバージョン】php5 【質問内容】 連想配列でキーを検索して値を出すことって出来ますか? array_searchの逆で
>>429 残業無いのはいいんだけど、給料は?
そこのサイトには、具体的な数字が全くないんだけど。
433 :
nobodyさん :2008/12/28(日) 19:33:07 ID:ye4GPpuG
>>433 応募資格ゆるすぎませんか?こんな条件でまともな人材とれそうにないけど
436 :
nobodyさん :2008/12/28(日) 19:53:05 ID:uVW1Zee4
437 :
nobodyさん :2008/12/28(日) 19:55:55 ID:ye4GPpuG
給与は25万くらいか。確かリクナビで載せていたころ 確か。 面接が2回で。賞与がしっかりでる。(ITではめずらしく) ただ問題は放置playと日報を英語で書くことだな。 なんかしらないが、日報は英語。 やたら英語にこだわる。後社長が日本の人ではなく、 日本語が意味不明。テストがあるが確か英語のテストで パソコンの知識はTCP/IPやなんかで言語の問題は特に 聞かれなかったような。
>>438 ほんとうだ。
きづかなかった。
私は馬鹿だ。
ありがとう
440 :
nobodyさん :2008/12/28(日) 20:08:46 ID:uVW1Zee4
IDだしわすれた。 ありがとう。
月25万・・・ そんな安いプログラマーいるのか うちの会社だと、バイト君でも月40は払ってるぞ
>>441 みたいなレスは高校生か20過ぎて社会経験0のダメニートだな
なんか、かわいそうだな
444 :
nobodyさん :2008/12/28(日) 20:35:45 ID:ye4GPpuG
http://www.webstarjapan.com/ ここはやめとけ。まじ死ぬ。
会話がなく終わった会社。
あんなにしゃべらずに終わった会社はない。
後find jobで常連のエステートサーチな。
もはやこれは....ってレベル。
トイレにも行かせてくれなかった。
後有楽町でwebのつく会社、最近ほら派遣社員にサーバー
のっとられた会社あったじゃん。
あれどこだっけ?
くだらん
高さがピクセルで決められたテーブルに行を書き出して行く際、行全体が テーブルの高さを超えたかどうかを知ることは可能ですか? また、同様に大きいテーブルのセル内に小テーブルを何段か詰め込む場合も、 小テーブルの高さの合計が、大テーブルの決められた高さを超えたかどうかを 知ることはできますか? いずれにせよ、テーブルの中身がテーブルの規定の高さを超えた場合、 テーブルの境界にまたがる中身は、ごっそり次のページに回したいわけです。
>>448 不可能でもないが難しい。
PHPの側で、WEBブラウザのレンダリングイメージを取得する方法は原則的にな
い。せいぜいが出力した行数をカウントするぐらい。そもそもブラウザごとに
表示される大きさは違う。ピクセル単位でコントロールするのは諦めた方がい
い。
一応、実現可能な方法を思いつきで示すと、
1.テーブルを記述するHTMLとCSSを非常に厳密にして、対応ブラウザのすべてで
ピクセル単位でも変化しないようにし、描画されるテーブルのサイズがPHP側か
ら計算できるようにする。
2.Ajaxという技術を使って、ブラウザが描画中のテーブルの高さのピクセル数
をリアルタイムでサーバ側に送り、規定のサイズになったらサーバのデータ送
信を終える。
どっちも初心者には敷居は高いと思うよ。
451 :
nobodyさん :2008/12/28(日) 23:50:05 ID:qmHngp5c
フォントサイズを等幅で固定しちゃえば、文字数数えるだけでいけるかもな。
452 :
nobodyさん :2008/12/29(月) 00:48:49 ID:pJ2vNT6J
【OS名】win XP HE 【PHPのバージョン】php5.2.8 【連携ソフトウェア】apache2.2.11 mysql5.1 【質問内容】 phpはzipからapacheとmysqlはインストーラーからインストールしました。 インストール後、phpinfoにアクセスしてみたんですが、 mysqlの項目がなく、mysql_connectなどmysql関連の関数が一切使えません。 エクステンションのパスはあっています。 どんな原因が考えらますでしょうか?
php.iniのコメントアウトを外していない
454 :
452 :2008/12/29(月) 00:59:14 ID:pJ2vNT6J
>>453 コメントとは
extension=php_mysql.dll
の先頭にある ; のことでしょうか
これははずしてあります
Apacheを再起動していない
456 :
452 :2008/12/29(月) 01:00:37 ID:pJ2vNT6J
わからない
違うphp.ini読んでる
459 :
nobodyさん :2008/12/29(月) 01:11:18 ID:6L5BHSgG
eregiの使い方を教えてください 1つの文字列に対して複数のフィルタをかけたいときはどうのように行えばよいですか? 例えば <?php $moji = "test script ABC"; if(eregi("script", $moji)){ $test=1;; } else{ $test=2; } echo $test; ?> のようなとき$mojiに"script"が入っているので1と出力されますが、scriptの他にも"ABC"も含んでいたら1と出力させたいです 単純に|やorではできなさそうなので、くだらないですがよろしくお願いします。
正規表現で|
461 :
nobodyさん :2008/12/29(月) 01:32:58 ID:6L5BHSgG
>>460 確認したところできました ありがとうございました
462 :
nobodyさん :2008/12/29(月) 02:15:59 ID:oaToqhvA
extension_dirのパスは正しいのに ライブラリを一切認識しない これはバグですね
463 :
nobodyさん :2008/12/29(月) 02:18:45 ID:bH2y1A5X
htmlspecialcharsのような関数で < と > の2つだけをエンティティ変換するのって ありますか?
465 :
452 :2008/12/29(月) 02:29:32 ID:???
環境変数のpathにphp.exeへのパスを追加したらmysqlの項目がでました
つかlibmysqlへのパスが通ってなかっただけだろ
467 :
nobodyさん :2008/12/29(月) 03:58:00 ID:XvwvhG3U
ブログのRSSをPHPで拾おうとしてて、googleで調べながら下のようなコードでなんとかいけてました。 <?php require_once("XML/RSS.php"); $rss =& new XML_RSS("url"); $rss->parse(); ところが、突然下記のようなエラーが出るようになりました。PHPの設定がおかしくなったのでしょうか? よろしくお願いします。 Warning: require_once(XML/RSS.php) [function.require-once]: failed to open stream: No such file or directory in /home/sites/lolipop.jp/users/lolipop.jp-life-mo/web/test.php on line xx
んなファイルはネーヨって書いてあるじゃん
>459 if(false !== stripos($moji, 'script') && false !== stripos($moji, 'ABC'){ echo '1'; } strposは正規表現より一桁速い。 というかeregはマルチバイト文字列で発狂する事があるのでなるべく避けとけ。 正規表現はpregを使った方がいい。マルチバイト対応してるし、eregより速い上に高機能。
470 :
447 :2008/12/29(月) 10:06:27 ID:???
471 :
nobodyさん :2008/12/29(月) 14:21:32 ID:5UFVSChd
アクセスカウンターを下のプログラムで作りました。acccntf.cigというメモ帳を作成して合計アクセス数を上げてます しかし、更新するたびカウントは増えてしまいます。 これでは、何人の方が訪問したか分からないんです 1人1回だけ更新回数を増やす方法を知りたいんですが、どなたか教えてください fpt系が配布しているアクセスカウンターみたいなのを作りたいんです <?php $filnam = "acccntf.cgi"; $fp = fopen($filnam,"r"); $totalc = trim(fgets($fp)); fclose($fp); $totalc = trim($totalc); $totalc++; $filnam = "acccntf.cgi";$fp = fopen($filnam,"w"); fputs($fp,"$totalc"); fclose($fp); ?>
>>471 「1人1回」という仕様を明確にすればロジックになるんじゃない?
・なにを持って「1人」にするの?
・1回っていうのは一生?
この辺りからつめていけば…
>>471 とりあえず、flockと$_SESSIONを使ってみたら?
てか、いまどきアクセスカウンター?
474 :
nobodyさん :2008/12/29(月) 14:33:47 ID:5UFVSChd
>>472 1日1回
>>473 「下らねぇ質問はID出して書き込みやがれ 78」
fockと$_SESSION調べてきます
ありがとうございます
もうちょっと言語を勉強してからの方がいいと思うぞ
というか .cgi に誰か突っ込もうぜ。
別にいいだろ。何か問題でも?
1人の定義も書いた方がいいし、1日というのは24時間のことなのか、0時を超えたら別にするtのか とかもあるし
その2つしかないだろw
481 :
nobodyさん :2008/12/29(月) 18:21:23 ID:HrL57s26
レンタルサーバーにPDOは入っているのだが、 ドライバがMySQL用のが入っていない。 この場合、自分で入れたりするのが普通なのか?
>>481 詳しくはサーバ管理者に聞くしかないが、普通は無理だろう。
専用サーバやVPSなら自分でインストールできるが、共用レンサバで
PDOドライバをインストールできるところは珍しい。
そういう質問をするときは、もう具体的にどこのレンサバって書く方が早い。
483 :
nobodyさん :2008/12/29(月) 18:35:00 ID:HrL57s26
>>482 レンタルサーバーの管理人から
メールの返事が返ってきた。
「ウチのサーバーではPDOは使えないからあきらめろ」
と書いてあった。
しかし、PDOそのものはインストールされていて、
ただドライバがSQLite用のものと、MS-SQLserver用の
ものの、2つしか入っていないという状況なのだ。
だから、「PDOはうちのサーバーでは使えない」
という表現はまちがっていると思うんだ。
この場合、MySQLをPDOで使うのをあきらめて、
PDO+SQLiteでいくべきなのか。
それとも、PEAR::MDB2 + MySQLを使うべきなのか。
それとも、素のPHPのネイティブ関数でごりごり書くべきなのか?
長所と短所を調べて好きな方法でやれ いい加減お前は自分で考える能力が無さ杉だ
おやおや質問スレで荒らし行為ですか ひろゆきに追い込みかけられても知りませんよ
486 :
nobodyさん :2008/12/29(月) 19:34:18 ID:X3IsYFSg
考える能力が無さ杉だ
・usamimi.info・・・新規登録のページがわからない。 ・web1.nazca.co.jp・・・フリーメールだめ。&php mysqlなどの詳細ページがない。 ・ribbon.to・・・mysql利用不可 ・srv7.biz・・・php利用不可 ・sosite.jp・・・mysql利用不可 ・pf-x.net・・・400文字以上はめんどい。 tryhost.net・・・phpバージョンが5.1.4以上ではない。 ・kuronowish.com・・・募集休止中 ・n.whss.biz・・・フリーメール無理。 ・adsv.jp・・・募集休止中( メンテナンスのためなので一時的? ) ・abcoroti.com・・・phpバージョンが5.1.4以上ではない。 ・meganebu.com・・・phpバージョンが5.1.4以上ではない。(家族BBSにあった) ・space-i.jp・・・mysqlの情報がない。容量が20mb少ない ・best-space.jp・・・phpバージョンが5.1.4以上ではない。 ・es.land.to・・・pdo_mysqlがない。 ・.my-sv.net・・・phpバージョンが5.1.4以上ではない。 ・atpages.jp・・・公開フォルダの一つ上までいけない。
usamimi.infoで登録できないとか、自分で調べる能力がまるでないんだな
調べる能力以前に探す気がないんじゃないか?
Javaは大型案件が多い→大型案件は単価が高い→単価が高い案件はみんなやりたがる →みんながやりたがる案件は競争がおこる→競争になるので優秀な人だけ残る PHPは小さい案件が多い→小さい案件は単価が安い→単価が低い案件はみんなやりたがらない →みんながやりたくない案件は人が集まらない→人が集まらない案件はゴミグラマーが多くなる →PHPをやってるやつはクズグラマーが多い
491 :
nobodyさん :2008/12/29(月) 21:03:40 ID:bH2y1A5X
生理か?
失業中らしいよ
PDO_MySQLが入っていないレンタルサーバーって 結構あるみたいだね だとしたら、もしPDO前提のWEBアプリ作って 一般に配布したとしたら、動かない人続出って 結果になるのかな?
アホかお前は
【PHPのバージョン】php5.2.6 【質問内容】 初歩的かつくだらない質問。 print TRUE; ならちゃんと 1 って出力されるのに print FALSE; だと何も出力されないんだけど,これってそういうものなの? 0 と出力してほしい気がするんだが。
497 :
nobodyさん :2008/12/30(火) 01:30:21 ID:DZfQMSS9
やり直し。 【PHPのバージョン】php5.2.6 【質問内容】 print TRUE; ならちゃんと 1 って出力されるのに print FALSE; だと何も出力されない。これってそういうもの? 0 と出力してほしい気がする。
そこに疑問を持つ事は、糞のようなPHPの世界でマトモなプログラミングをするための第一歩。
printは本来、文字列を受け取って、文字列を出力するための関数。
そこに文字列以外のものを渡した場合、何が起きるのか?
渡したものが文字列に変換される(暗黙的な型変換(型キャスト)と呼ばれる)。
変換ルールは
ttp://jp2.php.net/manual/ja/language.types.string.php#language.types.string.casting 辺りを参照。
全部覚える必要は無い。「決まった型以外を関数に渡すと変換が起きる」という事を知っていればいい。
> boolean の TRUE は文字列の "1" に、 FALSE は "" (空文字列) に変換されます。
これに従って、trueは文字列の"1"に変換され、画面へ出力される。
一方falseは"0"ではなく空文字列に置換されるので、出力したところで何も表示されないわけだ。
499 :
nobodyさん :2008/12/30(火) 02:29:07 ID:DZfQMSS9
>>498 サンクス。型変換に関しては考えてたんだけど,print で型変換が起きるのかー。
本当は,いくつかの条件をチェックしたくて,一つ一つの条件の真偽値を配列に入れていて,
全部 TRUE だったら(つまりその配列のすべての要素の積が1なら)という判定をしたい。
それで,配列の中身がどうなってるのかと思って print_r してみたら,
FALSE になるべきところが空白になってて心配したというわけ。
ちなみに,全部 TRUE だったら,という判定は,
if (array_product(配列))
で OK だよね?配列の要素が 真偽値 でも。
あと,「糞のようなPHP」とはどゆこと?
これからは別の言語がいいってこと?
PHP 勉強し始めて3日目なんだけど。。。
なんでカンマと。なの?
>>499 糞のような
はphpのまくら言葉だから気にするな。
カッコつけて付けたがる人が続出なだけで、大人になると自分が恥ずかしくなるような行為と一緒。
例えばJ「-popなんてだせぇよ、洋楽だろ」とか言い出す中学生と同じ。
でも実際J-POPは・・。
>>499 やるなら
in_array($array,false,true) == false
504 :
498 :2008/12/30(火) 12:53:40 ID:???
>499 PHPは「型」の扱いが酷すぎる。 だから、PHPでマトモなプログラムを書こうと思ったら、型の扱いにはいつも注意しないといけない。 型の概念が希薄だから習得が容易なのだPHPの特徴だが、型の扱いをルーズにやってると極めて発見しづらいバグを埋め込みやすい。 以下のプログラムの実行結果を予測してから実際に実行してみるといい。恐らく事前に7問全問正解できるのはスレでも2,3人しかいない。 var_dump(1 == '1+1'); var_dump('1+1' == 1); var_dump('1+1' == '1'); $ary = array(true, false, 1, 0); foreach($ary as $i){ switch($i){ case "false": echo "hoge\n"; break; default: echo "default\n"; break; } }
>>504 bool(true)
bool(true)
bool(false)
hoge
default
default
hoge
>>504 false
true
true
default
hoge
default
hoge
型が厳密な言語って習得するときには ウザイけど、実際にコードかきはじめると 信頼できる言語になるってことかな?
>>507 > さらにswitchって緩い比較なのね・・。
それは本件のケースとは全く違う。
>>508 そうだね。
だから自己学習で覚えるならPHPはおすすめ。
もちろんいきなり初言語でJAVA余裕だぜってなら、JAVAでもいいと思うけど。
男が一生の仕事でプログラマやるなら、JAVAのほうが食えるんじゃないかな。
あと金払って習うならPHPより、JAVAだと思う。
PHPは自己学習で何とかなる。
でも、使いどころの違いだよね。
JAVAで自分でWEBサービス作るっていうとピンとこないし。
WEBよりならPHPのほうが柔軟性がある気がする。
WEBデザイナーが仕事を広げるためにPHPを習うなら意味があるし。
実際専門上がりでPHPが出来るWEBデザイナーは助かる。
>>509 どう違うんすか!
まぁ、なんでそうなるのか全体的に分からないんだけどw
>>512 スマソ。おれの勘違い。
switchは緩い比較で正解
しかし、 var_dump("php" == 0); これは酷いね。
507で張ってた 寝不足でもうだめだー
しかし、 var_dump("php" == 0); // bool(true) var_dump(false == 0); // bool(true) var_dump("php" == false) ; // bool(false) 算数の世界ではありえないね。
Cの影響はかなり受けてるが、最大の失敗はboolがあるくせに 0をfalseに、それ以外をtrueにする仕様をそのまま持ってきちゃったことだろうなあ
そもそもPHPであんなコード書くようなアプリケーションを作ることはないだろ? そこまで型意識したアプリケーションをPHでP作ることないだろ? そこまで厳密に型を意識する必要あるならPHPでつくらなくね?
「糞のようなPHP」、「型の扱いが酷いすぎる」なんていうのは、
他の言語と比較した結果であって、そんな評価はまったくもって意味を持たない。
作るものにあわせた言語を選べば良いだけだし、
>>501 がっているようにアタマの硬いお方のたわごとにしか聞こえない。
まぁ
>>498 はそんなつもりで言ったわけじゃないと思うけど
うんそうだよね。 レジスタを自分で操作できない糞のようなCと言ってるアセンブラ使いみたい
523 :
nobodyさん :2008/12/30(火) 16:26:11 ID:8nqwT/tk
型でたまにはまることあるよね。 型の概念を知っていれば緩やかに回避するけど、 知らない人はずーっとはまりっぱなしで、糞なロジックや変数を 追加して回避したりしてるよね。困る。
524 :
nobodyさん :2008/12/30(火) 16:27:33 ID:8nqwT/tk
>>522 視野の狭い人っているよね。自分の世界が絶対だと思っている人。
strpos で === 使えれば特に困らないんだけどな。
本当にくだらない質問ですが cssが丁度終わったころ少し学校を休んでいて 気づいたらphpにはいっていました 全くついていけず、皆さんはどういった勉強方法をしていますか?
527 :
nobodyさん :2008/12/30(火) 17:48:30 ID:8nqwT/tk
専門学校?
Arrayが array('a', 'b', 'c', 'd'); のような形式か array('a' => 'b', 'c' => 'd'); のような形式かを判断したいのですが、何か良い方法はありますか?
array('a', 'b', 'c', 'd'); →ノーマル配列 array('a' => 'b', 'c' => 'd') →ハッシュ(連想配列) だから、配列が、ノーマル配列なのか、連想配列なのか、 を見分ける関数がありますか?って質問になるかな。
keyが数字か文字列かで判別してやればいいじゃん
関数はないんじゃね? キーを調べる関数でarray_walkが早いかな。
Warning: main(clsFile.php) [function.main]: failed to open stream: No such file or directory in /home/sites/lolipop.jp/users/○○○/web/news/news/index.php on line 3
Fatal error: main() [function.require]: Failed opening required 'clsFile.php' (include_path='.:
http:// ○○○
news
http:// ○○○/news/libs/PEAR:
http:// ○○○/news
http:// ○○○/news/libs/smarty:
http:// ○○○
/news
http:// ○○○/news/libs/jpspan:
http:// ○○○/news
http:// ○○○/news/classes:
http:// ○○○
/news
http:// ○○○/news/ad_classes:
http:// ○○○/news
http:// ○○○/news/news/classes') in
/home/sites/lolipop.jp/users/○○○/web/news/news/index.php on line 3
すみません、朝から設置してるのですが、エラー解除できず、くじけそうなので質問させてください。
上記のようなエラーがでるのですが、これはどういった意味なんでしょうか?
すみませんが、分かるた居られましたらよろしくお願いします
>>534 そんなファイル指定したディレクトリにねーよ
だーれもID出さなくなったのな
include_pathがhttpなんだ
>>537 allow_url_fopen な環境ならそれは問題ない。
ただ、パスセパレーターがちゃんとあたってなくて、
なおかつ、検索先が正しいPHPソースを返してないんじゃないかな。
>>535 >>537 即レスありがとうございます。
絶対パスじゃなくてinclude_path = ".:/usr/local/lib/php/pear";こんな感じで設定しないとダメってことですか?
もういちど、調べて設置してみます。
また、躓いたらすみませんけど、書き込ませて頂くかも知れません。。。
ありがとうございました。
//レンタルサーバーのOSがLinuxの場合 最後に / はいらない
//フルパスを記入
$fullPath = '/home/sites/lolipop.jp/users/○○○/web/news';
//スライダー用URL
$httpUrl = '
http:// ●●●/news';
//htmlを書き出す際の文字コード
$targetCode = "EUC-JP";
$pearDbPath = $fullPath . '/home/sites/lolipop.jp/users/○○○/web/news/libs/PEAR';
$smartyPath = $fullPath . '/home/sites/lolipop.jp/users/○○○/web/news/libs/smarty';
$jpspanPath = $fullPath . '/home/sites/lolipop.jp/users/○○○/web/news/libs/jpspan';
$commonClasses = $fullPath . '/home/sites/lolipop.jp/users/○○○/web/news/classes';
$ad_Classes = $fullPath . '/home/sites/lolipop.jp/users/○○○/web/news/ad_classes';
$localClasses = $fullPath . '/home/sites/lolipop.jp/users/○○○/web/news/news/classes/';
$iniFile = $fullPath . '/home/sites/lolipop.jp/users/○○○/web/news/news/news.ini';
$bodyUrl = $httpUrl . "
http:// ●●●/news";
$bodyUrl2 = $httpUrl . "
http:// ●●●/news/news";
umask(0);
}else if(strstr(PHP_OS ,'FreeBSD')){
やっぱり直らないので、ソース見ていただけないでしょうか
上記で
>>534 と同じようなエラーがでるのですが、どこか間違えてるでしょうか?
$localClassesの行の最後は「/」を付けると書いてあったので、そうしてあります。
よろしくお願いします
544 :
534,542 :2008/12/30(火) 20:17:02 ID:GPyST6V+
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】MySQL(バージョン4.0.24)利用可。[PHP My Admin]でのみ利用可。
エラー内容
Warning: main(clsFile.php) [function.main]: failed to open stream: No such file or directory in /home/sites/lolipop.jp/users/○○○/web/news/news/index.php on line 3
Fatal error: main() [function.require]: Failed opening required 'clsFile.php' (include_path='.:/home/sites/lolipop.jp/users/○○○/web/news
/home/sites/lolipop.jp/users/○○○/web/news/libs/PEAR:/home/sites/lolipop.jp/users/○○○/web/news
/home/sites/lolipop.jp/users/○○○/web/news/libs/smarty:/home/sites/lolipop.jp/users/○○○/web/news
/home/sites/lolipop.jp/users/○○○/web/news/libs/jpspan:/home/sites/lolipop.jp/users/○○○/web/news
/home/sites/lolipop.jp/users/○○○/web/news/classes:/home/sites/lolipop.jp/users/○○○/web/news
/home/sites/lolipop.jp/users/○○○/web/news/ad_classes:/home/sites/lolipop.jp/users/○○○/web/news
/home/sites/lolipop.jp/users/○○○/web/news/news/classes/')
in /home/sites/lolipop.jp/users/○○○/web/news/news/index.php on line 3
>>543 すみませんでした。
上記のようなエラーが出ます。
どこか間違えてる所ありますでしょうか?よろしくお願いします。
>>542 //フルパスを記入
$fullPath = '/home/sites/lolipop.jp/users/○○○/web/news';
//htmlを書き出す際の文字コード
$targetCode = "EUC-JP";
$pearDbPath = $fullPath . '/home/sites/lolipop.jp/users/○○○/web/news/libs/PEAR';
これで $pearDbPath の内容はどうなると思う?
もうちょっと落ち着いてコード見るといいよ。
548 :
534,542,546 :2008/12/30(火) 21:48:18 ID:GPyST6V+
>>545-546 ありがとうございました。なんとか管理画面までたどり着く事ができました。
そこで設定していたところ
Warning: file() [function.file]: HTTP request failed! HTTP/1.1 404 Not Found in /home/sites/lolipop.jp/users/○○○i/web/news/news/classes/clsOutPutHtml.php on line 55
というエラーが出ます。
配布元よりDLしたファイルにはclsOutPutHtml.phpが存在していないのですが、
これはどういった事が考えられるのでしょうか?質問ばかりで申し訳ありませんが、よろしくお願いします。
549 :
nobodyさん :2008/12/31(水) 00:00:49 ID:0oKh8Ta4
2009年1月1日0時0分0秒でコメントを出したいのですがどうすればいいでしょうか?
>>549 細かい事言うとそれ以降でしょ?
ちょうどじゃアクセス無きゃ表示もされない
なんという揚げ足取り
552 :
nobodyさん :2008/12/31(水) 01:03:31 ID:0oKh8Ta4
>>550 すみませんでした。
549の訂正をします。
2009年1月1日0時0分0秒になったら
それ以降であけましておめでとうとPHPで自動で
コメントを出したいのですがどうすればいいでしょうか?
おれ最近それとまったく同じ質問にレスしたぞ
556 :
nobodyさん :2008/12/31(水) 01:28:55 ID:0oKh8Ta4
>>553 すみません。
実は去年自分でstrtotimeで出して同じ事をしたら
失敗し不安だったのでマルチしました。
GMT足し忘れてたのかな。。
本スレからのマルチ失礼しました。
>>556 windowsなりで時間いじりながらテストとかしたら失敗しないと思うけど
本番環境じゃなきゃlinuxでも一緒だけど
「プログラミングを学ぶならPHP!?」 P20 「思いやり」という言葉 一学期が終わってJavaの専門学校に通っている娘が通知表をもらってきました。 担当の先生の所見欄を見ると、娘は「思いやりがあり・・・」と書かれています。 PHPグラマーの妻は、「ここのところ、よくわらからないから全部PHPに訳してみて」といいます。 私は困りました。というのは以前、Javaを長くやっているPHPの友人から 「PHPに絶対訳せないJavaの表現があるんだけど何だか知っているかい?」と たずねられた事があるのです。それがまさにこの“思いやり”だったのです。 レファレンスを見るとPHP語で「同情すること」「推測すること」などとなっています。 しかしこれでは“思いやり”という言葉に含まれた深い気持は表現できません。 結論から言ってしまえばPHPグラマーは“思いやる”ということをしません。 そういう言葉がないということは、そういう気持も、そういう行為もないことになります。 小さい時から、大学の授業、外部のセミナー、会社の研修の中で“思いやり”に類したことは全く教育されていないのです。 PHPでは大学でも専門学校でも、Javaのように「皆と仲良く」とか「他人に迷惑をかけるな」という教育をー切やりません。 反対に、一貫して強調されているのは、「一番になれ」「他人に勝て」ということです。 私がPHPのプロジェクトで娘たちと職場へ行くとよく目にする光景があります。それは例えばプリンタの前でプログラマーたちが 順番を待っているところへ、プログラマーを連れたPMなり、PLがやってきます。 すると並んで待っているプログラマーはおろか、プリンタを使っているプログラマーもひきはがして そのPMの連れて来たプログラマーがプリンタを勝手に使ってしまうのです。 その他のプログラマーたちもそれをまたごく当然の事として受けとめているのです。 良い悪いは別にして、これがPHPグラマーの行動パターンの原型です。自分の事しか考えないのです。 他人のことを思いやったり、他人への迷惑を気にするのはバカげた事なのです。 (中略) JavaとPHPは似たように見えてもこれほど違う言語なのです。
560 :
nobodyさん :2008/12/31(水) 14:41:17 ID:dNBkPk9o
配布する場合の掲示板などの設定項目について質問です いろいろなスクリプトを見てまわってるのですが こういう設定箇所は定数の人もいれば変数の人もいます だいたいは定数の人が多いようですが 今回classを使ったものに挑戦しているのですが オブジェクト定数(const)なんてものもあるようで classを使ったプログラムをする場合こういう設定項目は メンバー変数or定数orオブジェクト定数どれにするべきなのでしょうか?
通知表に高評なんて書くのはせいぜい高校までだろw 思いやりがありとか小学生かよwwww で釣られてやったわけだがどこを縦読み?
php知識のない人が設定しやすいもの一択
>>560 どれにすべきかじゃなくて
それぞれの特徴や違いを知ろうとすべき
俺なら1クラスにまとめてメンバー変数にするか、グローバル定数。 設定ファイルとかに切り出しやすいからな。 クラス定数は後から場所を移動しにくい。
後から移動しにくいってどういうこと?
A::HOGEHOGEをB::HOGEHOGEにしにくいって事じゃね?
メンバ変数も同じじゃね?
DIコンテナを使え
Javaじゃfinalでstaticな変数が定数なわけだが phpもそうしろとは言わないがconstにfinalがつけれないのはなんでだろうな 継承先で変更可能になってしまうのは気持ち悪い
>>568 クラス定数の方だって使えるのでは?
いまいち何を言ってるのか分からんからコードで示してくれ
>>570 仕様の問題
constにしにゃきゃいいじゃん。
>>560 だいたいさ、「こういう設定項目」のこういうって何よ
>>560 iniファイルにして、parse_ini_fileで読み込む
今時iniは古い。xmlにすべし。
>>570 javaにもconstが予約語としてあるよ
constはstaticでfinalなものと考えれば良い
>>571 constにした場合
A::HOGEという形で呼ぶべきなので
Aというクラス名が書かれこれを変更する際に手間が増える
iniやxmlにするとさ速度的な効率はどうなるの? アクセスする毎に毎回読み込むんだよね? どっかにキャッシュとしてもたれてるのかな?
>>576 例1 定数の定義と使用
<?php
class MyClass
{
const constant = 'constant value';
function showConstant() {
echo self::constant . "\n";
}
}
echo MyClass::constant . "\n";
$classname = "MyClass";
echo $classname::constant . "\n"; // PHP 5.3.0 以降で対応
$class = new MyClass();
$class->showConstant();
echo $class::constant."\n"; // PHP 5.3.0 以降で対応
?>
だそうです
>>577 ハードコーディングよりは遅いさ。
しかし、クラス定数の値を手動で書き変えさせるなんて俺はしない。
状況にもよるが、安全に修正できて設定がしやすいiniファイルは有効
>>575 iniが古くてxmlがいいって?
使いどころの問題でしょう。
Zend_Config_Iniとか、XMLより便利だし。
定数として実装すると、定数としてコード中になければならない。 なんらかの変数ならば、動的に書き換えられるような設計に作り変える事が可能になる。 たとえば設定ファイルから読み込むとか、サーバー変数から動的に組み立てるようにするとかな。 速度問題や可読性の問題もあるから、どれがいいとは一概には言えないが。 >577 毎回読み込む事になるから遅くなる。特にXMLはパース処理も重いのでダブルで遅い。 APCのようなシステムを組み込んでいて、速度を重視する場合は、読み込んだ内容を丸ごとPHPコードとして吐き出しておくといい。 このPHPコードとiniファイルの更新日時を比較する処理も入れておくのもいいな。 まあ、そこまで性能が要求される事態ってのもそうそう無いが。 APCとかを使ってないならば、ファイル読み込み程度は誤差の範囲。 あと、>575は一周遅れているようだが、XMLの流行はすこし昔の話。 実際問題、そこまで構造化されたデータを必要とする事は少ないからな。 JSONやYAMLなどの、より構造のシンプルな可読性の高いフォーマットを使うのが最近の流行。 PHPならばiniを使うのも悪くない選択だと思う。
>>581 使いどころ。
たとえば、掲示板の簡単な設定をカスタマイズさせるケース
title = someboard
theme = tundra
indextype = thread
logpath = /var/log
583 :
580 :2008/12/31(水) 20:13:54 ID:???
>581 XMLの利点は、高度に構造化されたデータを表現できる事。 欠点は糞遅い事と、可読性が低く、人間が書きにくい事。SimpleXMLを使う前提で考えるならPHP5以降限定である事。 iniは表現力の低さがデメリット。配列すらややトリッキーな事をしないと使えない。 書き方が分かりやすく、かなり古いPHPでも標準関数で読み込めるというのがメリット。 読み込み速度も最速の部類のはず。PHPコアが使ってる機能だからな。 JSONはiniよりはやや可読性で劣るが、多少構造的なデータが扱えるという強みがある。 構造化と可読性のバランスが良いので個人的に好きなのだが、PHP 5.2.0以降でないと標準で読み込む関数がないのでかなり微妙。 >582の言うとおり、XMLはこのケースで使うには高級すぎる。 iniでじゅうぶんな内容しか書かないなら、iniの方が簡単だし速い。
iniやxmlってさユーザが編集するもんじゃないよね アプリケーションがユーザの操作によって自動的に出力するイメージがあるんだけど Windowsのアプリケーションとかだと窓の大きさとか窓の位置とか 前回どういう状態で終了したとか 設定用の画面を用意すればいいのか
ユーザーに書き変えさせるためのものだよ。 システムが触るだけなら、var_exportが正確だしincludeするだけで変数作れる
ユーザが着替えるような設定なら.iniは悪い選択じゃないだろ
iniで十分とか古臭いおっさんばかりのスレですね
で、そこのお若いの、何がオススメじゃ?
きめぇw
理由とか対案書かないなんてただの煽りなんだってw
自己紹介乙
自己紹介乙w
593 :
nobodyさん :2009/01/01(木) 02:04:18 ID:g1UFnF+n
sqlite_openで生成したデーターベースは SQLiteManagerで認識できない?
594 :
nobodyさん :2009/01/01(木) 02:50:35 ID:uPL0NuYt
iniとかxmlとか議論がふるっ!
>>593 出来ないし、SQLiteManagerは色んな意味で使えない。
関係者以外の人が修正する気の起きない様な未曾有のコードの汚さだから
ある程度需要はあるんだろうけど、3年前に開発がストップしてる。
596 :
nobodyさん :2009/01/01(木) 03:11:19 ID:g1UFnF+n
>>595 じゃあSQLiteを使うときには、
phpmyadminの代わりに何を使うのが標準なの?
597 :
nobodyさん :2009/01/01(木) 03:11:59 ID:g1UFnF+n
>>595 開発がストップするというのはいろんな理由があるのだろうけど
「コードが汚すぎて周辺の人が参加できない」
というのも理由の一つになるのか。
598 :
nobodyさん :2009/01/01(木) 03:59:16 ID:g1UFnF+n
SQLite + PDOで、 could not find driver というエラーが出るんだが、どうしたらいい?
599 :
nobodyさん :2009/01/01(木) 04:20:00 ID:g1UFnF+n
もしかしてPDOのドライバはSQLite2用で 自分のパソコンの中に入っているSQLiteはバージョンが3とかかな?
600 :
nobodyさん :2009/01/01(木) 04:20:41 ID:g1UFnF+n
なので自分が使っているSQLiteが 2なのか、3なのか、どうやって調べればいいですか? xamppなのでデフォルトでは2のはずなのですが。
601 :
nobodyさん :2009/01/01(木) 04:23:43 ID:g1UFnF+n
もしかしてSQLite2とSQLite3で PDOの書き方違う?
602 :
nobodyさん :2009/01/01(木) 04:30:44 ID:g1UFnF+n
603 :
nobodyさん :2009/01/01(木) 04:32:04 ID:g1UFnF+n
PDOでSQLite2で、データーベースに接続できました( ̄▽ ̄)V これでボクも今日からデーターベースを使いこなすプログラマー
605 :
nobodyさん :2009/01/01(木) 14:08:35 ID:g1UFnF+n
PDOってMySQLだろうと、SQLiteだろうと、 書き方や文法はほとんど同じなの?
606 :
nobodyさん :2009/01/01(木) 14:09:11 ID:g1UFnF+n
PHP + PDO + SQLiteの勉強をしたいんだが、 どういう順番で勉強していったらいいのか、 全然わからんな。
607 :
nobodyさん :2009/01/01(木) 14:42:55 ID:g1UFnF+n
PDOのバインド機能って何?
少しはググッてみたら、それから質問したほうがいい
609 :
nobodyさん :2009/01/01(木) 19:11:35 ID:g1UFnF+n
try catch の超カンタンなサンプルを書いてみたいんだが、 わざと例外出してみたいんだが、 なにかサンプルコード買いてよ
610 :
nobodyさん :2009/01/01(木) 19:12:07 ID:g1UFnF+n
例外とエラーは違うのかな? エラーが出るコードではダメなの?
611 :
nobodyさん :2009/01/01(木) 19:13:07 ID:g1UFnF+n
PDo + SQLiteの勉強しようと思ったんだが、 ググってもサンプルコードがあんまり出てこない。 でも、もしかして、PDO + MySQLのコードと、ほとんど同じなの? 接続のところの、一行だけ変更すれば、あとは全部同じ?
質問の人は思ったよりもレベルが低いな
そんなことないよ
ID:g1UFnF+n ここはお前のらくがき帳だ、もっとやれ。
思ったよりというより、思った通りレベル低い
616 :
nobodyさん :2009/01/01(木) 20:00:22 ID:g1UFnF+n
<?php try { $dbh = new PDO("sqlite2:aaa/bbb"); } catch(PDOException $e) { echo $e->getMessage(); } ?> このコードで、aaaフォルダに書き込み変更禁止 属性をつけて、上記のプログラムを実行した。 そしたら、bbbというデーターベースは存在しないので、 新規作成にいくが、フォルダが書き込み禁止なので、作成できない。 なのでエラーになるはずで、そしたら例外なんとかのメッセージが 出るとおもったのだが、出ない。なんでだ?
setAttribute
餌をやるな
ぁぁ、質問厨か 暫らくスレ見てなかったから気がつかなかった( ;^ω^)
620 :
nobodyさん :2009/01/01(木) 20:40:41 ID:g1UFnF+n
<?php function foo() { throw new Exception("例外発生!"); } try { foo(); } catch (Exception $e) { $e->getMessage(); exit; } このコード実行しても なんもメッセージ出ないんだけど、 これでいいの?
わからないなら例外処理なんて無理して使わなくていい
いいの
623 :
nobodyさん :2009/01/01(木) 21:27:23 ID:O09m/dw1
オブジェクトのインスタンスを作って、それをその後に続くfunction関数の中で処理したいんですが うまくいきません require_once('MySmarty.class.php'); //Smartyクラスのインスタンス作成 $smarty = new MySmarty(); 中略 function logoutConf(){ if($loginFlg == 0){ $smarty->display('logout.tpl'); exit(); } } 上記を別ファイル(loginChk.php)として、 require_once('loginChk.php'); logoutConf(); としても動かないんです $smarty->display('logout.tpl');をコメントアウトしてecho "テスト";としたら出力します 何が原因でしょうか? インスタンスのfunction内での扱いを間違ってるでしょうか? あと、あけましておめでとうございます
関数logoutConfの中で$smartyはnull
625 :
nobodyさん :2009/01/01(木) 21:41:23 ID:O09m/dw1
>>624 そっか、スコープの問題だ!
また忘れてた、ありがとうございました!
626 :
nobodyさん :2009/01/02(金) 18:50:02 ID:PIvYRgwW
sessionの情報を完全に破棄する(セッションIDを破棄して使用不可能にする)にはどうしたらいいでしょうか? 現在携帯向けサイトを作ってて hoge.com/profile?PHPSESSID=ce04068aecfc222ed167f335d7d496de でアクセスすると それまでに登録した名前($_SESSION['uName'])が表示されるようにしてあります。 で、ログアウトページで session_unset(); session_destroy(); var_dump($_SESSION); をしてるのですが、その場では array(0){} となるものの、上記のURLをブラウザ直張りして アクセスすると、さっきの名前が表示されてしまいます(PCで検証してるので、、) なにも表示されないようにしたい(パラメータのPHPSESSIDの値を無効にしたい)んですが どうしたらいいんですか?
泥臭い方法だが、 $_SESSION = array("destroy" => 1); とか。実質的に破棄されたようにできる。 サーバー上に保存されるファイルを直接消したければ、gcのタイミングを早めるしかないかな、 どうだったか覚えてない
session_destroy() はセッションストレージからセッション情報を削除する デフォルトのセッション保存関数ではその場でファイルを削除するから復元される事はない 表示されるのはキャッシュを読んでるか実装がおかしいかだ
>626 ログアウトページで、ちゃんとstartしてから破棄してるか?
ログアウトページにセッションIDが通ってないとか
631 :
nobodyさん :2009/01/03(土) 08:54:27 ID:QyZ7nGCj
PDO でSQLiteを使いたいんだが、 解説ページを見ると、PDO+SQLiteの場合、 SQLite3の解説記事ばっかり。 SQLite2で使いたい場合は、説明のページがあんまりない。 だからSQLite3にしようかと思ったが、自分がつかっている レンタルサーバーにはPDOのSQLite3のドライバが入っていない。 だから仕方なくSQLite2を使うしかない。
いいじゃんそれで
633 :
nobodyさん :2009/01/03(土) 09:05:40 ID:QyZ7nGCj
マニュアルも読まない人に解説記事は不要だろ?
君の場合解説記事というよりコピペですぐ使えるコードだろう
SQLite2とか3とか、そういうのに依存しないように書け
637 :
nobodyさん :2009/01/03(土) 09:33:04 ID:QyZ7nGCj
>>635 そうそれそれ。
SQLite3用のサンプルコードをコピペして、
ワクテカして実行したらエラーで動かないとかひどすぎ。
638 :
nobodyさん :2009/01/03(土) 09:34:46 ID:QyZ7nGCj
639 :
nobodyさん :2009/01/03(土) 09:36:53 ID:QyZ7nGCj
もしかしてサンプルコードのtry-catchでなんのメッセージも 出なかったのは、SQLite2だからなのか?
>>637 そんな方法じゃ行き詰って当然。つまり自分のやり方のせい。
>>638 それは例外に依存してるからだろ
依存しないように書けばいい
糞ブログを盲信する前にマニュアル読め
643 :
nobodyさん :2009/01/03(土) 10:50:33 ID:QyZ7nGCj
本人に聞けよ
ID:QyZ7nGCjアボーソ
コピペできるコード見つけたんじゃないのw
647 :
nobodyさん :2009/01/03(土) 21:58:48 ID:hw8rEzMz
FORMのSubmitを受けるページで(post)その内容をmb_send_mail()後、「送信しました」という
確認画面にリダイレクトしています。
mb_send_mail($toAddress,$title,$_POST['msg'],〜);
header(Location:
http://www.hoge.com/ );
で、リダイレクト先のページをリロードすると「フォームを再送信します」というメッセージがでて
続行すると再度メールが送られてしまうんですが、二重送信を管理するセッションなどを持たせて
再送を防ぐしかないんでしょうか?
if($_SESSION['doubleSend']==0){
上の処理
$_SESSION['doubleSend']=1;
}
みたいな… もっとうまいやり方ないですか?
648 :
nobodyさん :2009/01/03(土) 22:01:15 ID:QyZ7nGCj
SQLiteをマネジメントする良いツールはないですか? SQLitemanagerを使ってますがこれはバグだらけでクソすぎる 既存のデーターベースを読み込んで使うこともできない
649 :
nobodyさん :2009/01/03(土) 22:01:47 ID:QyZ7nGCj
できればPHPmyadminにそっくりなヤツでお願いします
お前は上の忠告を100遍読んでから出直してこい
>>650 開店一時間前から並んで、俺は余裕の一番乗りをゲット。いわゆる、ファースト・オブ・ファースト。
開店して着席、一息ついて改めてファーストロットメンバーを確認してふと気づいた。
普段はこの店、学生が多いのだが今日はサラリーマン、OLと客層が豊か。
しかも素人が多いのか、コールの仕方もめちゃくちゃで、他の麺バーとの協調性のかけらも見えない。
これはまずい・・・ファーストロットの乱れは、閉店まで波及しオペレーションに重大な支障を来たす。
ふと店主と目が合う。額に汗を浮かべながらのその表情は明らかに
「たのむ・・・あんたがロットマスターになってなんとかしてくれ」と訴えかけていた。。。
ここまで期待されたら、断る理由は無い。やってやろうじゃないの。
大豚W全マシが俺の前に置かれる。難攻不落の要塞さながらのその野菜の山に、
俺はさっそく箸を刺しこみ、胃袋に詰め込み始める。
しかし、今日はいつもの単純な、自分との戦いではない。俺は自分の要塞を攻略しつつ、店内を注意深く監視する。
さっそく発見。盛りの豪快さをネタに、しゃべりまくる二人連れの学生。
――ロット乱しの元凶その1、『不要な私語』。ギルティー。
俺は勢いよくテーブルをバシッ!と叩く。その音に驚き、店内に再び静寂と規律が戻った。
そしてその隣!長い髪を気にしながら、上品にすぼめた口で一本ずつ麺をすすりこむOL!
――ロット乱しの元凶その2、『女』。ギルティー。
俺は箸で女を指し「すばやく食え!」と麺をかきこむジェスチャーを送る。
OLは髪に添えていた手を放し、一心不乱に麺をかきこみはじめた。そう、それでいい。
ロットマスター(=俺w)の的確な指揮により生まれた規律と調和。
俺はさながら、オーケストラを指揮するコンダクターだ。この全能感、多幸感―――。
結果、全員がほぼ同時にどんぶりをカウンターの上に置くことで、
ファーストロットという名のコンサートは見事に成功し幕を閉じた。
店を出たところで、先ほどのOLと目が合う。軽く俺がウィンクをすると、彼女は恥ずかしそうに逃げていった。
>>643 ⇒ dsn を sqlite2:my_sqlitedb にすればsqlite2.x系が読み込める。
PDOのSQLITEはver.3系、ビルトイン関数の方は2系。
一行上くらい読んでな。
PDOは2、3どっちでも使えるけど3で使うのが推奨。
3が使える環境でもsqlite_openで作ると2系のDBしか作れない。
MySQLも使うならプリペアドステートメント使っとけば、大体同じに書ける筈。
普通の生クエリで書いちゃうと、SQLiteはカラムや数値をクォートしちゃダメだから
MySQLとの入れ替えは厳しい。
俺の自分がググリ易いように公開してるSEOスパム用メモ張をあてにしない方が良いよ。
>>652 このスレってなんのためにあるの?
ググレ、ググレって覚えたての言葉をうれしそうに連呼する猿を見ると吐き気がする。
手元にある書籍で思いっきりひっぱたいてやりたい気分。氏ねw
日本のPDOが終わってるのはコミュニケーション能力のないキモヲタしかつかわないから。
そういう豚は「ググレググレググレ」ばっか。だからユーザーが育たない。
>>652 3が推奨なのはあちこちのページに書いてあるのでわかりますが、
自分が使っているレンタルサーバーでは
PDOのドライバーが2用のしか入っていないので
使えないんですよ。だから仕方なく2を使っているという現状です。
だから、2用の解説記事を今から10本書いてください。
しかも初心者が読んでわかりやすいようにね。
いつまでも書けますか?
Xいつまでも書けますか? ○いつまでに書けますか?
>>657 * 忠告しておく。層化を追求すると死人が出る ・ ・ ・ ・。
1. 斎賀孝司 ( 朝日記者 / 病死?)
2. 森田設計士( 耐震偽装関連 / 自殺?)
3. 大西社長 ( LD投資組合社長 / 行方不明 )
4. 古川社長 (平成設計の元社長 / 自殺?)
5. 森田信秀 ( 姉歯に構造計算を発注 / 自殺?)
6. 草苅逸男 ( 岡山 ・ 新勝央中核工業団地 / 一級建築士 / 焼死?)
7. 野口英昭取締役( ライブドア政界窓口 / HS証券 ・ 安晋会理事 / 沖縄カプセルホテルで怪死 )
8. 東江組員 ( 沖縄旭流会幹事 / 惨死 )
9. 小渕恵三 ( 脳梗塞??)
10.竹下登秘書の青木伊平( 自殺??)
11.市議会で創価を追及してた元東村山市議朝木議員→飛び降り自殺
12.映画で創価学会を取り上げようとした伊丹監督→飛び降り自殺
13.国会で創価に噛みついて、議員辞職後も創価と裁判してた永田元議員→飛び降り自殺
うぜー市ねw
660 :
nobodyさん :2009/01/04(日) 00:47:56 ID:+Z0x0JrP
661 :
nobodyさん :2009/01/04(日) 02:45:22 ID:90ycN+/t
PHP4 で、オブジェクトにインスタンス変数が定義されているかどうかを調べる方法はありますか。 property_exists($obj, "varname") みたいなのが PHP4 でできるなら教えてください。
やりたいことは $var = "varname"; echo $obj->$var; というだけなんですが、error_reporing(E_ALL) をすると $obj->varname が存在しないときにエラーがでるので、 それを防ぎたいというだけです。
あれ、普通にissetで存在確認できなかったっけ? nullとか空文字列とか空の配列で初期化しとくとそもそも判定の手間が省ける事も多い。検討の余地あり。
665 :
nobodyさん :2009/01/04(日) 07:49:06 ID:lpSLvYGu
fsockopenでサーバーにつなぎ、fputsでデータを転送しようと思います。 そこで、fsockopenはうまく繋げたけど、fputsの途中でLANケーブルを 抜いた場合などに、タイムアウトを設定して時間切れになったら任意の処理を 実行するといった動作は可能でしょうか? 可能なら実現方法を教えて頂ければと思います。 個人で調べた範囲のものでは、 stream_set_timeoutが惜しいと思ったのですが、fopen/freadにしか使えないようです。 OS不明/PHP5です。お願いいたします。
timeoutしたらfalse返ってくんじゃないの?
668 :
665 :2009/01/04(日) 15:32:22 ID:???
レスありがとう
>>666 fputsで処理がストップするから値は何も返って来ないんだ
>>667 fsockopenじゃなくて、fputsのタイムアウトをとりたいのです。
fsockopenで接続されたあと、ループをまわしながらfputsで少しづつ情報を
送っているのですが、その途中で接続が切断された場合、fputsで処理が止まり
どうしようもなくなってしまうので・・
何か分かりましたらお願いします。
669 :
nobodyさん :2009/01/04(日) 16:27:28 ID:S9BZj0MW
フォームの入力内容を確認画面で表示したいと思います で、"><font color="#ff0000"> と入力して送信したら、確認画面では \"> と表示され ソースを見ると該当箇所は \"><font=\"#ff0000\"> となってました なんで\をつけられてるんでしょうか? かなりレベルの低い質問だと思いますが、御願いします htmlspecialchars() とかしてないのにと混乱してます smartyのスレで質問したのですが、それ以前の問題に思えてきたのでこちらで 質問させてもらいました、よろしく御願いします
magic_quote_gpc
>>671 どうもありがとうございます、ようやく解決しました
利用非推奨だしONだと遅くなるらしいし、何の意味があるんでしょうかねこれって
とにかくありがとうございました
>>672 MySQLに値を格納するときに
SQLインジェクションされるのを防止
するためにNASAが開発した新機能だ
674 :
nobodyさん :2009/01/04(日) 17:57:19 ID:csR3yzKg
例えば入力フォームなどなく MYSQLのデータをPHPで表示させる場合SQLインジェクション対策をする必要はあるのでしょうか?
SQLインジェクションって何か分かってないのか?
676 :
nobodyさん :2009/01/04(日) 18:14:18 ID:8Obh1++8
>>674 それは
MySQL→PHP
というデーターの流れだよね。
その場合は、htmlspeなんとかで、タグのサニタイズをするべき。
理由はXSSやCSRF.
もし、
PHP→MySQL
というデーターの流れであれば、それは
データーベースにデーターをつっこむわけだから、
適切にエスケープしないと、SQLインジェクションされる。
この時は、mysql_real_escape_stringなんちゃらを使う。
またはPDO+プリペアードステートメントを使えば自動でやってくれる。
サニタイズ(笑)
678 :
nobodyさん :2009/01/04(日) 18:47:22 ID:8Obh1++8
http://www.devshed.com/c/a/PHP/Using-PDO-Objects-in-PHP-5/1/ このページの記述が理解できん
openとcloseが、まったく同じではないのか??
// example opening a connection to SQLITE 2 (available in PHP 5.1)
$dbh= new PDO('sqlite2:/databases/mydb.sq2');
//**************************************************
// example closing a connection to SQLITE 2
$dbh= new PDO('sqlite2:/databases/mydb.sq2');
679 :
nobodyさん :2009/01/04(日) 18:48:46 ID:8Obh1++8
もう既に公式ページからはSQLite2はダウンロードできなくなっているし、 SQLite3に以降したほうがいいのか? しかしxamppではいまだにSQLite2だし、 PHPにデフォルトでついてくるSQLiteも2のままだ。 SQLite3+PDOで使えるレンタルサーバーを探したほうがいいのか?
680 :
nobodyさん :2009/01/04(日) 19:00:08 ID:8Obh1++8
今、サーバーのphpinfoを見てみたんだが、 PDO PDO support enabled PDO drivers sqlite2, sqlite こうなっているんだが、 「sqlite」 っていうのは、もしかしてsqlite3のことなのか?
681 :
nobodyさん :2009/01/04(日) 19:01:27 ID:8Obh1++8
pdo_sqlite PDO Driver for SQLite 3.x enabled PECL Module version (bundled) 1.0.1 $Id: pdo_sqlite.c,v 1.10.2.6.2.3 2007/12/31 07:20:10 sebastian Exp $ SQLite Library 3.3.7 って書いてある。3って理解でいいよな?
サニタイズというのは表現が抽象的だから好きになれないんだよな。 HTMLタグをエスケープするならそういえばいいし、SQLエスケープならそう言えばいい。 俺の周りで「サニタイズ」を好き好んで使う奴って無能ばっか。バリデーションとサニタイズの区別もつかないようなアホとか。 まあ、>676の指摘は全面的に正しいから別にいいんだけどな。
683 :
nobodyさん :2009/01/04(日) 19:11:19 ID:8Obh1++8
>>682 漏れの説明ってすっげーわかりやすくて正確だろ?
お前達みたいなゴミグラマとはセンスが違うんだよ!
684 :
nobodyさん :2009/01/04(日) 19:13:26 ID:hMI53W82
$this->{$obj_name}->method(); こういう事がしたいんですが、出来ません。 プロパティでないと中括弧と変数を使った記法は出来ないのかと思いますが どう書けば出来ますか?
覚えたてで嬉々として使いたい頃なんだろ
>>683 いつも、他人のふりして煽ってる質問君、
煽る時はsageた方がいいよ
>>687 おまえ、どれだけ悲惨な環境で育ったんだ?
今現在、少しは生活が良くなったのか?
だとしたら良かったな。 抑圧された悲惨な生活から何とか抜け出せたなら、次は知性とか教養を身につけないとな。
血の滲むような努力をしてきた君なら、きっと教養は身につけられるだろうから頑張れよ。
もしかしたら、その曲がりきった卑しい根性も、少しは矯正できるかもしれないぞ。
689 :
nobodyさん :2009/01/04(日) 19:17:03 ID:hMI53W82
>>684 何がしたいの?
オブジェクトの何をそこに入れたいの?
>>691 底辺で生きてる奴はちょっと自分が優位だと思うと豹変するんだよねぇ。
些細なミスをした店員を執拗に罵倒してる客とかたまに見るけど、
普段怒られてばっかで、怒ることに慣れてないから必要以上に相手を罵っちゃうんだろうな。
加減が分からないって可哀想だよね。
695 :
nobodyさん :2009/01/04(日) 19:49:23 ID:+Z0x0JrP
ライオンってでけぇんだな
696 :
674 :2009/01/04(日) 20:47:58 ID:csR3yzKg
>>676 分かり易い解説ありがとうございました。
すっきりしました
お礼が遅くなり申し訳なかったです。
>>696 漏れの説明わかりやすいだろ?
漏れの説明が世界一わかりやすい。
今度本出したら真っ先に買え。
PHPからXMLデーターベースって使えるの?
699 :
nobodyさん :2009/01/05(月) 00:56:51 ID:g6qRsOWr
ORマッパーっていうのは フレームワークについてくるもので、 単独で使うものではない?(PDOのように)
いや、そんな事は無い。 単独で公開されてるORマッパだってあるし、フレームワーク付属のO/Rマッパだってそのまま単独で使える事が多い。
701 :
nobodyさん :2009/01/05(月) 03:26:50 ID:g6qRsOWr
自分のパソコンの中にPDOのSQLite3の ドライバ、インストールするのはどうやるの?
702 :
nobodyさん :2009/01/05(月) 03:47:24 ID:g6qRsOWr
php.iniってシフトJISで保存でいいの?
本当に質問したいときと、答えはいらないけど書くときを みんなにわかりやすくしたら反感買わないと思うよ? 答えが出たらそれで納得したのかどうかぐらいはレスした方がいいだろうし 前の質問に回答が出る前に別の質問立てたら、スパムだと思われるよ。 反感を買うために書いてるんならスルーしてくれていいけど
ID:g6qRsOWrアボーン
705 :
nobodyさん :2009/01/05(月) 14:19:36 ID:SSLU+Cc/
PHP5です レンタルサーバーでセキュリティーの問題からallow_url_fopenがOFFになっており getimagesizeで外部の画像の大きさ等の情報を取得できず困っています curlを使いgetimagesizeみたいに画像情報を配列で返してくれる関数というのはあるのでしょうか? それともcurlで1度画像をローカルに取得し、それをgetimagesizeするしか方法はないのでしょうか?
>>705 allow_url_fopen だって、内部的には一度画像をローカルに取得して、
サイズをとってるだけだよ。
707 :
nobodyさん :2009/01/05(月) 15:10:43 ID:SSLU+Cc/
>>706 ありがとうございます
curlで1度ローカルに画像を保存しても極端に重くはならないということですね
クラスのプロパティやメソッド一覧を出力したいのですが 何かそのような関数はありますでしょうか? 継承したものも全て出力したいです
709 :
708 :2009/01/05(月) 17:29:20 ID:l+1z1H6j
すみませんID出し忘れました
>> 708 これでいけるはず Reflection::export(new ReflectionClass('クラス名'));
711 :
nobodyさん :2009/01/05(月) 18:22:51 ID:l+1z1H6j
>>710 おーこれはスゴイ!
希望通りのものを取得できました
どうもありがとうございました
712 :
nobodyさん :2009/01/05(月) 18:49:49 ID:2utmAeel
テキストファイルのみで保存・編集をしたいと思っています。 編集する時の手順は 1:ファイルを読み込む 2:編集する箇所を置換(編集しない場合は元のデータを挿入) 3:編集後の内容を書き込み と言った流れで良いのでしょうか? それとも「指定行を更新」というような事が出来るのでしょうか?
>>712 編集手順はあってる
読み込んだ文字列から新たな文字列を作成してそれを書き込む
>それとも「指定行を更新」というような事が出来るのでしょうか?
配列に読み込めば擬似的に可能だけど
結局全て読み込んで新しい文字列を作って新規に書き込むという点は変わらない
714 :
712 :2009/01/05(月) 19:36:16 ID:???
>結局全て読み込んで新しい文字列を作って新規に書き込むという点は変わらない なるほど。では自分が712に書いた方法で作成していきます。 回答ありがとうございました。
715 :
nobodyさん :2009/01/05(月) 20:41:50 ID:CQeOYLFz
info.phpってファイルがあるんですが、そこにはMYSQLのユーザ名やパスワード・・・があります。 ドキュメントルートに置くのはセキュリティ的によろしくないと聞いたので ドキュメントルート直下に置きたいのですが相対パスが間違ってるって言われます;; さくらインターネットを使ってます ご存知の方よろしくおねがいします
落ち着け
つ絶対パス
718 :
nobodyさん :2009/01/05(月) 21:15:49 ID:g6qRsOWr
PDO+SQLite3で接続しようと思ってたんだけど、 PDOつかわないでO/Rマッパー使った方がいいの? その場合、O/Rマッパーは何を使えばいい?
719 :
nobodyさん :2009/01/05(月) 21:16:21 ID:g6qRsOWr
レンタルサーバーにインストールされている sqlite3のバージョンを調べるにはどうしたらいい?
720 :
nobodyさん :2009/01/05(月) 21:16:58 ID:g6qRsOWr
>>715 できればpublic_htmlと同じ階層においたほうがいい。
ブラウザで見れないところ。
それ見れるだろw
722 :
nobodyさん :2009/01/05(月) 22:00:50 ID:IAJIgrKJ
技術的な質問とは少し反れますが デザインパターンとは今PHPの現場では必須の技術ですか? PHPで就職を考えてて今デザインパターンを勉強してるんですが なかなか考え方に慣れなくて・・・ 皆さん当たり前に使えるものなんですかね?
724 :
nobodyさん :2009/01/05(月) 22:09:16 ID:CQeOYLFz
ぎゃあ
>>717 絶対パスでも無理でした。
もう一度調べてきます。
725 :
nobodyさん :2009/01/05(月) 22:23:09 ID:g6qRsOWr
SQLiteに接続するのに、 PDOとO/Rマッパーと、 どちらを使うべきか検討しているのだが、 (1)PDOのメリット (2)PDOのデメリット (3)O/Rマッパーのメリット (4)O/Rマッパーのデメリット をそれぞれ教えてくれ。 それと、もしO/Rマッパーを使うなら CakePHPについているのと同じのを 使うつもりです。
無事解決しました ありがとうでした。 またお世話になります
727 :
nobodyさん :2009/01/05(月) 22:35:53 ID:EpBVQO6B
PHP5とApacheをLinux上で使用する場合、 Apacheは 2.2系でも大丈夫なんでしょうか? PHPの本家マニュアルを見ると2.0系のことしか書いてありませんでした。
>722 OOP自体からして覚束ない奴なんかも結構多いのがPHP開発者の実情だから大丈夫。 流石にクラスの概念や継承などといった機能はわからないとしんどいかもしれないが、そこも職場次第。 そういった基本さえ分かってれば、経験を積めば難しいパターンも使いこなせるようになる。 問題は、いつ何を使うかだからな。「あ、なんかこれってアレに近いかも」とか思える程度に記憶の片隅にあればじゅうぶん。 OOPの基礎がしっかりしてりゃ、後からパターンを取り入れるようなリファクタリングすればいいだけの話だしな。 >725 手続き型に近い書き方をするならPDOと相性がいい。 関数型言語に近い書き方ならO/Rマッパ。 O/Rマッパの利点はコード記述量が少なくて済む事。 欠点はちょっと複雑な事をしようとするとすぐ生SQL書かないといけなくなる事。 掲示板のような、DBアクセス部が簡単なものはO/Rマッパが向いている。 経理処理など、複雑なデータ処理が入るなら最初からPDO経由でSQLを書いたほうがいい。
729 :
nobodyさん :2009/01/05(月) 23:07:49 ID:iF7qEbUz
PHPで楽天商品ランキングのAPIを表示させたいんですが、googleで検索してもみつからずほとほと困っています。 詳しい方教えてください。おながいします。
730 :
nobodyさん :2009/01/06(火) 00:11:46 ID:W/IomqEG
731 :
nobodyさん :2009/01/06(火) 02:34:14 ID:rh+yNOKs
レン鯖に情報が出されているはずなんだが 鯖サイトチェックするか、問い合わせしてみたら?
ID:rh+yNOKsアボーン
734 :
nobodyさん :2009/01/06(火) 02:57:21 ID:rh+yNOKs
>>732 SQLite3はexeを一個置くだけでインストール完了するので、
自分で勝手に自分のディレクトリにアップロードすると
いうのではダメなのかな?
サーバー側が置いたSQLiteが優先されてしまう?
exe(笑)
>>731 phpinfoで確認しろ雑魚
聞けば解決すると思ってるゆとりだから
phpinfo見ればわかりそうだということも予測できない
いつまでたっても成長しない
740 :
nobodyさん :2009/01/06(火) 03:53:25 ID:rh+yNOKs
phpinfo(8);
742 :
nobodyさん :2009/01/06(火) 04:27:51 ID:rh+yNOKs
SQLite SQLite support enabled PECL Module version 2.0-dev $Id: sqlite.c,v 1.166.2.13.2.11 2008/12/01 12:28:27 felipe Exp $ SQLite Library 2.8.17 SQLite Encoding iso8859 ↑これの中のどこを見ればいい?
テンプレ無視してPDO、SQLite絡みの質問してくる奴はNGに入れておけ ここ最近DB板のSQLiteスレでも迷惑を掛けてるガチキチと同一人物
744 :
nobodyさん :2009/01/06(火) 04:32:20 ID:rh+yNOKs
●コマンドラインツールのコマンド名は、SQLite2がsqliteで、SQLite3がsqlite3。 ●PDOのドライバ名は、SQLite2がsqlite2で、SQLite3がsqlite ↑これどうにかならないのか??,
あぁ、そういえば、C++の宿題スレにも出没して嫌がられてたなww
最近どこもgdgdだと思ったら、おれの読んでるとこばかりじゃないか・・・
PHP5.2.5 @ winXP abstract class parent{ abstract function _exe(); static function exe(){ self::_exe(); } } class child extends parent{ static function _exe(){ echo 'child'; } } 呼ぶと、Cannot call abstract method parent::_exe(); ってエラーをはいてしまう。 self:: を子クラス内で呼ぶとなぜか親クラス内のメソッドが呼ばれてる。 子クラスにもう一度、exeメソッドを定義しなおすしかありませんか?
749 :
748 :2009/01/06(火) 13:22:40 ID:d951qjNM
ID出し忘れました。
750 :
748 :2009/01/06(火) 13:24:23 ID:d951qjNM
「呼ぶと」が何かわかりにくいので追記。 連レスすみません。 child::exe(); を実行すると Cannot call abstract method parent::_exe(); が出てきます。
>>748 exe()が実際に書かれたクラスはabstractだよね。だから、selfはabstractクラスを指している。
abstractクラスのabstractメソッドは呼べないから、そのまんまだけど?
752 :
748 :2009/01/06(火) 13:35:04 ID:d951qjNM
やりたいことはだいたいわかる。 遅延静的束縛が使えるといいんだけどねぇ。
abstractじゃない基底クラスをつくって、5.3まで待つ
755 :
748 :2009/01/06(火) 13:53:28 ID:d951qjNM
レスしてくださってありがとうございます。
>>754 abstractを外してもエラーを吐かなくなるだけで、親の _exe(); を呼んじゃって解決には至らないようです。
static を外して、インスタンス化して使うか、継承先のクラス全てに self::exe_(); を書いてやるしかないみたいです。
ありがとうございました。
あ〜、うん。そうだね。俺の勘違いだった。
757 :
nobodyさん :2009/01/06(火) 16:39:12 ID:QYoVUecW
なんというエロサイトの宣伝
とりあえず Accept-Encoding: gzip,deflate
760 :
nobodyさん :2009/01/06(火) 17:17:29 ID:QYoVUecW
>>758 ,759
お早いレスありがとうございます。
curl_setopt($n_ch,CURLOPT_ENCODING,'gzip,deflate');
を追加したら見れるようになりました。
本当にありがとうございました。
あとエロサイトですいません。
761 :
nobodyさん :2009/01/06(火) 17:33:30 ID:uURjk+bM
HTML_HEADERのような複数行記述をclassの中で行うにはどうすればいいでしょうか。
762 :
nobodyさん :2009/01/06(火) 18:19:15 ID:6vEbKfuN
764 :
nobodyさん :2009/01/06(火) 20:33:39 ID:rh+yNOKs
<?php $a=sqlite_libversion(); print $a; ?> これを実行すると、 2.8.17 と表示されるんだが、どういう意味なんだ? MS-DOSプロンプトでしらべたら、 3.6.8 とかって表示されるんだが?
765 :
nobodyさん :2009/01/06(火) 20:34:11 ID:rh+yNOKs
「リンクされているライブラリのバージョンを表示する」 ってどういう意味なんだ?
766 :
762 :2009/01/06(火) 23:10:11 ID:6vEbKfuN
http://d.hatena.ne.jp/elseif/20080507/1210171860 パスを通すって行為も
考えなしにやると危険なんだな。
「※ディレクトリにパス通すからには、/
home/自分のID/local/binとかに限って
おいた方が安全です。全部に通しちゃ
うと、ファイル名が一致したら実行しちゃ
うから「ヤバイよヤバイよ」って周りから
後ろ指差されてしまいます。例えばアッ
プローダーとか作ってて、lsって名前で
誰かが悪意のあるバイナリとか実行可
能なスクリプトをUPして、優先順位が自
分のディレクトリの方が上ならlsした瞬間
にウィルスに感染しちゃったりするかも
です。まず無いけど。」
構ってちゃん(笑
769 :
nobodyさん :2009/01/07(水) 21:19:21 ID:i9Jnyed+
まったくの初心者なんですが サイト内検索バーはどうやって作ったらいいんでしょうか?
771 :
nobodyさん :2009/01/08(木) 16:09:27 ID:zDlTPy6N
$date = date("YmdHis"); という日時が変数に入っているとして、 2009年01月08日 16:10:00 と言うように書式化して表示するにはどうすれば良いのでしょうか?
$date = date("Y年m月d日 H:i:s");
ん?そういう意味なの? preg_splitとvsprintfを使うんでなくて?
preg_match("/([0-9]{4})([0-9]{1,2})([0-9]{1,2})([0-9]{1,2})/",$date,$date_set); echo $date_set[1]."年".$date_set[2]."月".$date_set[3]."日"." ".$date_set[4].":".$date_set[5].":".$date_set[6]; これで出来ました。ありがとうございました。
なにこいつ
PHPって日時型って無いんだっけ?
echo date("Y年m月d日 H:i:s", strtotime($date));
>>774 練習ならいいけど、もっと楽に出来るよね・・
実例を示せよ ウェブプログラマーって貧相な知識を出し惜しむよな
大型案件→Java多い→単価高い→みんなやりたがる→競争発生→優秀な人だけ残る 小型案件→PHP多い→単価安い→人こない→ダメグラマの吹き溜まりに
substr($str, 0, 4). '年' . substr($str, 4, 2) . '月' (以下略 日付型は頻繁に使うので、専用のクラスを自作する事をオススメする。 1アプリ内でもよく使うだろうし、他のスクリプトで丸ごと使い回す事も多い。 date同様のフォーマット指定ができるようにしておくと、入力形式さえ拡張すれば長く使える。 $my_date = new MyDate('20080109020800'); $my_date->date('Y年m月d日 H:i:s'); とかな。 >776 DateTimeという標準クラスが存在する。PHP5.いくつ以降とかかもしれないけど。 やり方がキモいものの「1月後」とかを一発で表現できるのでそれなりに便利。
DateTimeは5.2.0以降らしいよ
783 :
nobodyさん :2009/01/09(金) 03:00:58 ID:GUFSqjMC
【OS名】Linux colinux 2.6.12-co-0.7.1 【PHPのバージョン】PHP 5.2.0-8+etch13 【連携ソフトウェア】なし 【質問内容】 多重のarrayから、値を取り出したいのですが、どうするのが一番よいでしょうか? 今は、foreachで展開して、array_valuesで取り出しているのですが、何となく もったいない事をしている気がします。 <元のarray> ( [0] => Array ( [User] => Array ( [user_id] => 175 ) ) [1] => Array ( [User] => Array ( [user_id] => 651 ) ) ) <最終的に求めたいarray> ( [0] => 175 [1] => 651 (
array($array[0]['User']['user_id'], $array[1]['User']['user_id'])
foreachはいいとして、array_valuesなんて使う必要ないだろ。 それはいいとして、array_reduceがオススメ。 コールバックで仕様を決定できる。
>771 にしろ >783 にしろ、 難しく考えすぎないようにしましょうね。 答えは意外すぎるほどシンプルなことが多いので。 可読性もあがりますよ。
その答えがわからないから質問してるんだろうにw
788 :
nobodyさん :2009/01/09(金) 18:49:55 ID:zD5plmHn
$array = array("aaa"=>"3","bbb"=>1,"ccc"=>4); という連想配列を降順にして ccc aaa bbb と並べ替えたいのですが、どうすればいいのでしょうか? rsort($array)だとおかしくなります。
arsort
791 :
nobodyさん :2009/01/09(金) 19:15:41 ID:egjc87dJ
PDOでsqliteって書けば、 SQLite3に接続できるの?
792 :
nobodyさん :2009/01/09(金) 19:16:16 ID:egjc87dJ
PHPをコンパイルするときに、 SQLite2を使うか、SQLite3を使うか、 選択しないとダメなの?
793 :
nobodyさん :2009/01/09(金) 19:17:02 ID:egjc87dJ
PHP5のデフォルトは、(xamppも) SQLite2なので、普通にPHPネイティブの SQLite関数を使うと、SQLite2に接続しにいくの?
794 :
nobodyさん :2009/01/09(金) 19:17:36 ID:egjc87dJ
でもPDOでsqliteって書くと、sqlite3に接続しにいくの?
795 :
nobodyさん :2009/01/09(金) 19:18:15 ID:egjc87dJ
でもそのときのsqlite3はどこにあるの? 自分でインストールするの? パスの通った場所にsqlite3.exeを置いておけば それを読みに行くの?
796 :
nobodyさん :2009/01/09(金) 19:19:22 ID:egjc87dJ
でもレンタルサーバーの時はどうするの? レンタルサーバーでも、パスの通った場所に sqlite3の実行ファイルを置いていけば、 pdoでsqliteって書いたときに、それを読みに行くの? でも、レンタルサーバーの場合、パスが どこに通っているかなんて、知ることはできるの?
797 :
nobodyさん :2009/01/09(金) 19:21:29 ID:egjc87dJ
MDB2ってsqlite3に対応してないの? 使ってるレンタルサーバーがPDO+MySQLに対応してないので、 しかたなくMDB2を勉強しようと思ったんだけど、せっかく知識を得ても sqlite3には流用できないとか、時間の無駄じゃん
その辺ちゃんと調べてから勉強したほうがいいぞ
http://www.komagi.jp/manual/php/ref.pdo.html このマニュアルどういう意味だろう?
PDO は、データアクセスの抽象化レイヤを提供しま
んねん。 ゴチャゴチャゆうとる場合やあれへん,要
は、使用しとるデータベースが何であるかにかかわら
ず、同じ 関数を使用してクエリの発行やデータの取
得が行えるちうことや。 PDO は、データベースの抽象
化を行うのでは おまへん。ゴチャゴチャゆうとる場合
やあれへん,要は、SQL を書き直したり 存在せん機
能をエミュレートしたりはせんちうことや。
800 :
nobodyさん :2009/01/09(金) 21:04:04 ID:egjc87dJ
http://study.rakuto.net/php/pdo/connect/ ここのページ見ながら勉強しているのだが、
<?php
/* PDO データベースハンドルの生成 */
try {
$dbh = new PDO('sqlite:test.db','', '');
} catch (PDOException $exception){
echo "PDO生成時:";
echo $exception->getMessage();
echo "n";
exit();
}
/* エラーモードの設定(例外処理を有効) */
$dbh->setAttribute(PDO_ATTR_ERRMODE, PDO_ERRMODE_EXCEPTION);
/* テーブルの作成 */
/* idをプライマリ宣言し自動シーケンス */
$query = <<<QUERY
CREATE TABLE account_tbl (
id INTEGER,
number INTEGER,
name VARCHAR(64) NOT NULL,
email VARCHAR(128),
PRIMARY KEY (id)
);
QUERY;
ageろカス
802 :
nobodyさん :2009/01/09(金) 21:05:25 ID:egjc87dJ
try { $dbh->query($query); } catch (PDOException $exception){ echo "テーブルの作成時:"; echo $exception->getMessage(); echo "n"; } /* ステートメントの生成 */ $query = "INSERT INTO account_tbl (number,name,email) VALUES (:number,:name,:email) "; $stmt = $dbh->prepare($query); ここまでは、エラーもなく、問題なく実行できた。 データーベースも作成されてるし、 SQLiteManagerで読み込みもできた。しかし、 次の段落をソースコードに含めると、エラーになってしまう。 /* バインド変数を設定 */ $stmt->bindParam(':number',$number, PDO_PARAM_INT); $stmt->bindParam(':name', $name, PDO_PARAM_STR, 64); $stmt->bindParam(':email', $email, PDO_PARAM_STR, 128) ↑これ。この3行を入れると、エラーになる。
803 :
nobodyさん :2009/01/09(金) 21:06:49 ID:egjc87dJ
Notice: Use of undefined constant PDO_PARAM_INT - assumed 'PDO_PARAM_INT' in C:\xampp\htdocs\1.php on line 35 Warning: PDOStatement::bindParam() expects parameter 3 to be long, string given in C:\xampp\htdocs\1.php on line 35 Notice: Use of undefined constant PDO_PARAM_STR - assumed 'PDO_PARAM_STR' in C:\xampp\htdocs\1.php on line 36 Warning: PDOStatement::bindParam() expects parameter 3 to be long, string given in C:\xampp\htdocs\1.php on line 36 Notice: Use of undefined constant PDO_PARAM_STR - assumed 'PDO_PARAM_STR' in C:\xampp\htdocs\1.php on line 37 Warning: PDOStatement::bindParam() expects parameter 3 to be long, string given in C:\xampp\htdocs\1.php on line 37 --------------------------------------------------------------- ↑こうなってしまう。なんで?
804 :
nobodyさん :2009/01/09(金) 21:09:10 ID:egjc87dJ
noticeの方はシングルクオーテーション入れてないだけだった。 入れたらnoticeは消えた。 Warning: PDOStatement::bindParam() expects parameter 3 to be long, string given in C:\xampp\htdocs\1.php on line 35 Warning: PDOStatement::bindParam() expects parameter 3 to be long, string given in C:\xampp\htdocs\1.php on line 36 Warning: PDOStatement::bindParam() expects parameter 3 to be long, string given in C:\xampp\htdocs\1.php on line 37 ------------------------------------------------------------------------ ↑現在の状況はこんな感じだ。 大佐、指示をくれ。
805 :
nobodyさん :2009/01/09(金) 21:10:26 ID:egjc87dJ
expects parameter 3 to be long これの意味がわからん。 「3番目のパラメーターはlong型を期待してたのに、違う」 って意味か?
806 :
nobodyさん :2009/01/09(金) 22:04:42 ID:YWm/Ufgk
PEARのXML_Feed_Parserの事なんですが RSSから各記事をパースした後 $entry->title $entry->link $entry->date 等のtitle,link,date以外のプロパティ名?一覧が欲しいのですが どのようにして調べるんですか?お願いします。
get_object_vars
仕事内容 誰もが知る大きな会社の大きな案件、さらに自社サイトの開発と、 仲間と夢中になって挑戦できる社風です! プロジェクトのマネージメントをお任せいたします! 今回は、開発案件のマネージメントをお任せできる技術者の方を募集し ております。 現在、数名のプログラマーがおりますが、メンバーのリーダー的存在と して、プロジェクトやリソースの管理および仕様の設計などをしていただ きます。 ――【この仕事の醍醐味は?】 「エンドユーザの視点で常に新しいものを要求されるので、挑みがい があります!」と開発技術者。 スピード感が重要な世界だけに、タイトなスケジュールを強いられるこ ともありますが、 その分、完成した時の達成感は大きく、責任ある立場での仕事にや りがいを感じていただけるはずです。 躍進中の会社で、入社後すぐに大型案件に挑戦できる! ■モバイルの世界に特化し、さらに株式上場を目指す会社は東北で は当社が随一! ■モバイル業界はまだまだこれから大いに成長させることができる業 界! ■仙台にいながら、世界を動かすモバイルコンテンツの開発に挑戦で きる!
求める人材 ■歓迎するスキル ・PHPとMySQLの実務経験のある方 ・プロジェクトマネージャー、システムエンジニアなどの実務経験のある方 ★複数の技術スタッフのリーダーとして、 大型プロジェクトのマネージメントに、あなたの実力を発揮してください。 こんなマインドの方大歓迎! ・前向きに、自主的に仕事に取り組んでいこうという意欲、さらに機動力のある方 ・「地方経済を活性化させたい」という意欲のある方 ・新しい仕掛けを世の中に発信したいという方 ・ユーザーに「大きな歓びを与えたい」という熱意のある方 ・会社の成長を自分の成長に重ね、チャレンジできる方
勤務地 ■本社 仙台市宮城野区榴岡5丁目12-55 NAViS仙台ソフトウェアセンター5F ※I・Uターン歓迎!! 勤務時間 ■フレックスタイム制 (標準労働時間8時間/コアタイム10:00〜14:00) 給与 ■月給21万〜35万円 ※年齢、経験、能力を考慮の上、優遇します! 昇給・賞与 ■昇給/半期評価制度(6ヶ月に1度、給与改訂あり) 諸手当 ■交通費支給(1,000円/日まで) 休日・休暇
■完全週休2日制(土・日) ■祝祭日 ■夏期休暇 ■年末年始休暇 福利厚生 ■各種社会保険完備 モバイル業界未経験者も大歓迎! ・当社はモバイル未経験者が大半を占めています ・入社一年で、都内で講演を行うまでにいたった技術者や、 クライアントから次々に指名される20代のディレクターも! ・面接であなたの意欲をアピールしてください! ・Iターン・Uターン希望者も大歓迎です!
世界を突き動かす革命的なモバイルコンテンツを仙台から発信しませんか! 当社は、これまでナショナルクライアントからの受託大型案件を中心としてき ましたが、3年後の株式上場を視野に入れ、永続的な安定を目指すのと同時 に、「ユーザーに直接大きな歓びを与えたい。感動を与えたい。幸せにしたい 」といった思いから、自社サイトの開発をスタートさせました。 モバイルの世界では、革命的におもしろいというコンテンツが実はまだありま せん。そんなコンテンツを仙台から発信したい。世界を突き動かすようなコンテ ンツを自分達の手で発信したい。そんな思いでチャレンジし続けていくのが当 社です。こうしたマインドを共有しながら、コンテンツのイノベーションを私達と 一緒に巻き起こしてみませんか!
設立 2004年1月23日 代表者 代表取締役社長 / 小泉拓学(こいずみたくみち) 従業員 25名 資本金 25,050千円(2008年12月現在) 売上高 134,000千円(2008年1月決算) 事業内容 モバイルインターネットの企画、制作業 携帯電話で閲覧するモバイルサイトの開発やデザイン、およびFlashゲームや着信メロディなどのコンテンツを制作しています。 ■プロダクト事業(BtoB) 東京のクライアントから、キャンペーンサイトなどの制作を請け負っています。 当社はモバイル専門でサイト、コンテンツを制作できる会社として、東京の企業から高い評価を得ている、業界では知る人ぞ知る制作会社。
ID:egjc87dJアボーン
818 :
nobodyさん :2009/01/10(土) 03:16:52 ID:izg33gvC
数値が12桁までしか入力できないから、 1兆円までしか表示できないんだけど、 100兆円単位のアプリ作りたいんだけど、 どうしたらいいの?
820 :
nobodyさん :2009/01/10(土) 03:37:24 ID:izg33gvC
>>819 <?php
$a = '99999999999923456789012';
$b = '999999999999923456789012';
echo bcadd($a, $b);
?>
数値でなくて、文字列として格納して、
BCMathで足すってこと?
ずいぶんとめんどくさいね。
それに数値なのに文字列扱いするのも感覚的におかしい。
※餌を与えないでください
ほんとどうしようもない構ってちゃんだなw
何をだw
825 :
nobodyさん :2009/01/10(土) 09:49:41 ID:iaOWyvQZ
class A{ function b(){$this->c();} function c(){$this->d();} function d(){ //なんかエラーだった場合とか、 if($error){ //これを$retに返したい return 'error'; } } } $a=new A(); //ここに返したい $ret=$a->b(); 普通にA::bとA::cにif書く以外に、 なんかA::dからAの外側に一気に脱出するようなのはないでせうか。
返り値付ければいいじゃん
エラーと例外は違う
誰がいつ一緒だと言ったんだよ エラーを伝えたいという目的を仮定して、その手段として例外処理を紹介してる 文脈を読めねぇ奴だな
830 :
nobodyさん :2009/01/10(土) 11:24:21 ID:B2TbfON6
質問だけど array(ラーメン,そば,うどん,パスタ) という配列があって 配列から一つ取り出す時に 全て同じ確率ではなく ラーメンを50%の確率で取り出したいのですが いいアイディアありませんか?
それを2度繰り返せば1/4が2回で50%になるじゃん
>>828 ,832
残念ながら間違い(キリッ
とかタイプする暇があるなら理由でも書いたらどうだ
間違いなんだろ?なら正してこそ意義がある
>>830 ラーメンかそうじゃないか決めてから
そうでなければラーメン以外から選べば
掲示板ログなどで /*log.txt*/ 123<>あいうえお<>12345 122<>かきくけこ<>67890 121<>さしすせそ<>111213 てログで「67890」を検索してその行数と1行を抜き出すにはどんなのを使えばいいんでしょう。
836 :
nobodyさん :2009/01/10(土) 13:40:12 ID:wVuPrAmV
【OS名】WindowsXP Pro 【PHPのバージョン】php5.2.8 【連携ソフトウェア】なし 【質問内容】 floor(5.57*100)を計算すると、浮動小数点数の丸め誤差 で56が返ってくるんですが、これの回避はどうすればいい んでしょうか? 他言語を使っていたときは、予め100倍しておいた値を整数演算で処理したり、 十進型を使ったりしてたんだけど、 phpの場合はどうやったらスマートに解決できますか? なお、GMPは入っていません。
普通に557になるけど? 56はなんかおかしいんじゃね?
841 :
nobodyさん :2009/01/10(土) 14:52:25 ID:izg33gvC
>>835 (1)
データーベースに格納してSQL文で検索する
(2)
クヌースの2000ページの「データーの構造とアルゴリズム」を
買って6ヶ月かかって読む
844 :
836 :2009/01/10(土) 15:04:23 ID:wVuPrAmV
>>837 floor(5.57*100)ではなくfloor(0.57*100)の間違いでした。
それ以外に、floor(0.29*100)なども28といった期待と違う結果になります。
手元にlinux(debian4.0+php5.2.0)が有ったので、
そちらでも試しましたが同じ結果でした。
>>833 分からないなら自分で調べるかageて質問しろ
>>835 /*log.txt*/
123<>あいうえお<>12345
122<>かきくけこ<>67890
121<>さしすせそ<>111213
$fh = file('log.txt');
for($i=0;$i < count($fh);$i++){
list($id,$str,$hoge) = explode('<>',$fh[$i]);
if($hoge == '67890'){
// 行そのものは $fh[$i]; 行数は$i
}
}
こんな感じでいいならこんなの。
しっかり動くかは知らない。動かないようなら微調整してくれ。
>>841 の言うようにSQL使うのも確実でいいと思う。どっちが手間が簡単かは知らない。
本については知らない。
みなさんレスありがとうございます。
まだSQLを手に出せるほどのスキルがないので
>>846 さんのものを参考に駆使してみたいと思います。
でもやはりSQLが使える方が便利そうですね。
今年の課題にします。
>>836 PHPや他の言語に関わらず、浮動小数点にIEEE 754を採用してる限り無理でしょう
BCMathも使えないのかな?そうなら整数演算で工夫するしかないね
>>845 「エラーの通知に例外を使う」に対して「それは間違い」と
自分が新たな問題提起しておいて人のせいかよ…ないわ
851 :
nobodyさん :2009/01/10(土) 17:08:52 ID:izg33gvC
<?php $dbh = new PDO('sqlite:test.db','', ''); $stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)"); $stmt->bindParam(':name', $name); $stmt->bindParam(':value', $value); // 行を挿入します $name = 'one'; $value = 1; $stmt->execute(); ?> このコードを実行したところ、 Fatal error: Call to a member function bindParam() on a non-object in C:\xampp\htdocs\1.php on line 4 というエラーが出る。どうしたらいいか。
$aa = "$".$bb; if($abcd == $aa) とするとうまくいかないので /*$aa = "$".$bb;*/ if($abcd == $$bb) とするのはなにか問題あるのでしょうか?
855 :
nobodyさん :2009/01/10(土) 21:10:42 ID:izg33gvC
漏れの初のSQLiteアプリがついに動いた。 <?php try { $pdo = new PDO("sqlite:ggg"); $stmt = $pdo->prepare("INSERT INTO CD(ID, TITLE, CONTENT) VALUES(:ID, :TITLE, :CONTENT)"); $stmt->bindParam(":ID", $id); $stmt->bindParam(":TITLE", $title); $stmt->bindParam(":CONTENT", $content); $id = 16; $title = "HEXDUMP"; $content = "Hex Dump Music"; $stmt->execute(); } catch (PDOException $e){ var_dump($e->getMessage()); } ?> SQLiteManagerであらかじめ SQLite直下のフォルダにgggというSQLite3データーベースを作って、 テーブルを作って、それをソースフォルダにコピーしたら動いた。 プリペアードステートメントも動いているし、完璧。 WOOHOO
856 :
nobodyさん :2009/01/10(土) 21:11:47 ID:izg33gvC
>>857 どこにマルチしてますか?
リンクをはってもらえます?
盗人猛々しい
そこの
>>852 、煽りにいちいち反応する前にスレタイトル通りID出して質問しなおせ
861 :
nobodyさん :2009/01/10(土) 21:59:16 ID:izg33gvC
PDOが動いたのが あまりにも感動なので これを機にブログを 立ち上げようと思うのだが、 お前らも意見を述べてもらいたい。
864 :
nobodyさん :2009/01/10(土) 23:01:51 ID:f16K+jwD
すいません、初心者ですがよろしくお願いします。 ローカルではうまく動いてくれていたんですが、アップロードしたら Fatal error: Class 'Pager' not found in 〜 on line 236 というエラーが出てしまいます。 require_once 'Pager/Pager.php'; $params = array( 'itemData' => $data, 'perPage'=> 20, "curPageSpanPre" => '<span class="current">', "curPageSpanPost" =>'</span>' ); $pager = & Pager::factory($params); ←←236行目 $pages = $pager->getPageData(); $links = $pager->getLinks(); foreach ($pager->getPageData() as $val) { echo $val ; } なんとか動くように出来ないでしょうか??
>>864 エラー文を読んでる?
>Fatal error: Class 'Pager' not found in 〜 on line 236
致命的なエラー: Pagerクラスが見つかりません (〜の236行目)
require_once 'Pager/Pager.php'; これで読み込んでいるのでは?
じゃあ次はPager/Pager.phpの中身を確認するだろフツー なんで些細な手間を惜しむんだ
868 :
nobodyさん :2009/01/10(土) 23:13:20 ID:izg33gvC
PDO::__construct これのサンプルコードを探してるんだが、見つからない。 なんで?
869 :
nobodyさん :2009/01/10(土) 23:14:41 ID:izg33gvC
ちなみに、ここで質問して回答が得られなかった質問だが、 英語の掲示板で英語で質問したらすぐに回答がきた。 やっぱりジャップはクズだな。 プログラミングの質問するなら、アメリカ人だな。
>>869 日本のコミュニティにも手取り足取り教えてくれる
奇特な場所があったりするぞ
お前のように根絶丁寧に教えて欲しい人は
そもそも2ちゃんねるに向いてない
871 :
864 :2009/01/10(土) 23:24:35 ID:f16K+jwD
>>867 コメントありがとうございます。中身とはこれでしょうか??
<?php
/**
* Dummy file, used to maintain backward compatibility.
* The real file was moved to the PEAR root directory
*
* PHP versions 4 and 5
*
* @category HTML
* @package Pager
* @author Lorenzo Alberton <
[email protected] >
* @author Richard Heyes <
[email protected] >
* @copyright 2003-2007 Lorenzo Alberton, Richard Heyes
* @license
http://www.debian.org/misc/bsd.license BSD License (3 Clause)
* @version CVS: $Id: Pager_savebc.php,v 1.3 2007/10/28 22:37:01 quipo Exp $
* @link
http://pear.php.net/package/Pager */
require_once 'Pager.php';
?>
見てもさっぱり分かりませんでしたorz
>>871 それ、ちゃんとサーバーでインクルードパスからの正しい階層にアップしてる?
874 :
864 :2009/01/10(土) 23:43:07 ID:???
>>873 サーバーの/home/〜/pear/PEARの下にPager/pager.phpがありました。
インクルードパスは
include_path=".:/home/〜/pear/PEAR"
となっているんですが、間違っていますでしょうか??
876 :
864 :2009/01/10(土) 23:50:07 ID:f16K+jwD
/home/〜/pear/PEARの下にPager/pager.phpがあるんだったら /home/〜/pear/PEAR/Pager/pager.phpじゃん
878 :
nobodyさん :2009/01/10(土) 23:59:45 ID:f16K+jwD
それも試したんですがそうすると Fatal error: require_once() [function.require]: Failed opening required 'Pager/Pager.php' (include_path='.:/home/〜/pear/PEAR/Pager/pager.php') in 〜 on line 227 という require_once 'Pager/Pager.php'; ←←227 のエラーが出てきてしまいます。
じゃその場所にないんだろ
てかinclude_pathにファイルを指定してんの?
881 :
864 :2009/01/11(日) 00:23:00 ID:Ab45eT41
すいません、もうちょっと色々試してみますね・・ありがとうございましたorz
883 :
nobodyさん :2009/01/11(日) 01:09:19 ID:UKIH12nD
Red Hat Enterprise Linux ES 4 にもともと入っていたPHP 4.3.9と新たにインストールした mysql-5.1.30とを組み合わせようとしているのですが、 どうしてもうまくいきません。 いろいろ調べたところ、php-mysql-4.3.9 rpmというもの をいれればうまく行きそうなのですが、 Red Hat Enterprise Linux ES 4におけるサポートが切れており ネットを調べても手に入れることができなさそうです。。 また、php5にして、やってみるということも考えたのですが、 こちらもやってみているのですが、どうしてもうまくいかない。 (libphp5.soが入らないので、httpdと連携できない。これは また上記とは違う問題と思うのですが。。) まずは、php4で解決できればうれしいのですが、うまく解決する 方法があれば教えてください。 よろしくお願いいたします。
ubuntoにすれば?
885 :
nobodyさん :2009/01/11(日) 01:54:58 ID:iteb9xMW
SQLiteのプライマリーキーなんだけど、 id=1で一個、データーを登録して、 そのあとに、さらにもう一回、 id=1で、別のデーターを登録しようとして、 やってみたんだけど、idをプライマリーにしてたんで、 当然2重登録はできなかったんだけど、 そんかわし、なんのエラーも出さないんだよな。 これって普通、エラーメッセージとか、 出してくれるものなんじゃないの?
>>883 PHP5で解決する方向でいくべき。
セキュリティ云々もそうだけど
なにより古過ぎて文献やネットやらの情報が役にたたない可能性大。
>libphp5.soが入らない
のはなんで?
>>883 PHPをソースから入れればいいよ。
MySQLをrpmで入れたんならdevも入れる必要がある。
Nginx+PHP5をwindowsでやりたいんですが設定はどうすれば良いんでしょうか?
891 :
nobodyさん :2009/01/11(日) 11:58:35 ID:YC1y1My8
>>889 すいません、どうもです
【OS名】Windows XP SP3
【PHPのバージョン】php5.28
【連携ソフトウェア】Nginx
【質問内容】
NginxとPHPを連携させてwindowsでリバースプロキシとして動かしたいんですが
マイナーなのかサイトがあまり見つからないのでここで質問させて下さい
>>892 誘導どうもです、ありがとうございました
894 :
nobodyさん :2009/01/11(日) 12:12:55 ID:YC1y1My8
>>890 イマイチ質問の意図がわからない
クエリストリングの値=$_GET ってことでおk?
だったら、$_GET で受け取った値を、preg_match() とかで判別し、
false なら error ページとかに飛ばせばいいのでは?
$_GET[unko] が全て数字じゃなかったらエラーメッセージを出力
if(!preg_match("/^[0-9]+$/", $_GET[unko])){
echo "お前うんこ";
exit;
}
数字の判別に正規表現(笑) 添え字が定数(笑)
>>896 先生、エスパーっぽいっすね(笑)
おしえてくださいよ^^
まさか is_numeric とか言い出さないですよね?
まあ質問が整数かどうかわからないんですけどね^^
しったかはだまっとけカス
マルチをネタにどこまで盛り上がるつもりだw
900 :
nobodyさん :2009/01/11(日) 13:38:30 ID:YC1y1My8
901 :
nobodyさん :2009/01/11(日) 13:44:32 ID:iteb9xMW
四則演算とか、平均値を出したりとか、 最大値を求めたりとか、SQLでもできるし、 PHPのネイティブ関数でもできるけど、 どっちを使うのが普通なの? 1,2,3ってデーターがデーターベースに入っていて、 それの平均値を求める場合、 データーベースから生データーを取ってきて、 それをPHPの関数で平均値を出すのか、 あるいは、 SQLの平均値を求める関数を使って、 先に平均値を出してから、PHPにもってくるのか。 どっちが普通のやり方なの?
902 :
nobodyさん :2009/01/11(日) 13:45:22 ID:iteb9xMW
あと回答しなかったらアメリカ人に聞くからな! 「ジャップに聞いたけど、やつらレベルが低すぎて 回答できませんでした!」 って英語での説明もつけて!
餌をやんな
オブジェクトとクラスの使い方を知ってれば見れば分かると思いますがねぇ
907 :
905 :2009/01/11(日) 14:34:38 ID:???
オブジェクトとクラスですか ちゃんと勉強してみます
有志が和訳してるからじゃね? 和訳されてないパッケージも一杯あるしな。 と思ったら英語版じゃねえか。 誰かNet_GameServerQuery更新してくれんものだろうか。
英語も読めないのにpearを使おうったあ100年はええんだよタコ
英語ねぇ
そうよねぇ
914 :
783 :2009/01/12(月) 02:39:51 ID:Rm35EcoD
783でArrayから値を抽出する方法についてお聞きした者です。
教えて下さった方、ありがとうございます。お返事が遅くなってすみません。
>>784 ありがとうございます。
例では$array[0]、[1]としているのですが、$array[n] (nは不定の整数)の
場合はどうすればよいでしょうか。最初の例が悪くてすみません。
>>785 やはり、foreachは必要ですか。
多重の配列じゃなければ、arrya_valuesだけで値を抽出できたので、多重配列でも、
一発でできる方法があればと思ってお聞きしました。
下記URLを参考にarray_reduceの使い方を考えてみたのですが、今回のような条件の場合、
どう使っていいのか分かりませんでした。
http://phpspot.net/php/man/php/function.array-reduce.html
915 :
nobodyさん :2009/01/12(月) 02:42:28 ID:KBrfsxKy
preg_match_all("/<dt>(.*)/", $a, $b); これの『/』にはどういう意味があるのかどなたかお教え下さい。
>>914 後出ししないでもっと仕様を厳密に決めてくれないと答えようが無い
>>914 $base = array(0 => array('User' => array('user_id' => 175)),1 => array('User' => array('user_id' => 651)));
$test = array_reduce($base, "ar");
function ar($a, $v)
{
$a[] = $v['User']['user_id'];
return $a;
}
var_dump($test);
919 :
836 :2009/01/12(月) 11:28:21 ID:???
>>847 ,850
お礼が遅くなってすみません。
サーバー環境が変更になる可能性があったので、
標準の機能だけしたかったのですが、BCMathを使う方向で考えて見ます。
ありがとうございました。
920 :
nobodyさん :2009/01/12(月) 13:11:41 ID:5DjRG0n2
PHPというかhtmlの事かもしれないんですが 掲示板でフォームに文字を入れてポストのボタンを押し、次のページに切り替わった後に ブラウザの戻るのボタンを押してページを戻ると フォーム内に入力した文字が消えてしまいます。 2chなんかだと文字は残っているみたいなんですが この違いは何ですか? postではなくgetだと残るのは確認しましたが postで残せないでしょうか?
>>920 2chはクッキーじゃね?
基本的に戻った場合はブラウザの仕様
2chのフォーム、POSTだよね
POSTで送信したものがクッキーに保存され、フォームでそのクッキーを表示してるのでは?
「戻る」でクッキーの内容が表示されるのって標準仕様?JSとか?ブラウザ依存?
基本的にブラウザの初期設定ではhtmlのような静的コンテンツはモディファイヘッダを見て 更新がなければキャッシュを表示してる
oi phpでSNSを構築できるマスか??
お前じゃ無理
928 :
nobodyさん :2009/01/12(月) 14:57:53 ID:Txgu2Ylv
キャラチェンジ?
931 :
928 :2009/01/12(月) 16:32:31 ID:Txgu2Ylv
>>931 ガチか。apacheで設定すれば?
ローカルでしかアクセスしないなら、localhostのドキュメントルートをデスクトップに。
test.phpだけでいいなら、test.phpにaliasを貼るか、mod_rewrite
デスクトップにテスト領域を作るならディレクトリ掘ってそこにAlias
documentroot
解決しました ありがとうございます <Directory "">を変更してしまったのは直さないとマズいですか? くだらない質問しすぎで吸いません><
apacheの質問はスレ違いだよ
937 :
nobodyさん :2009/01/12(月) 19:25:40 ID:Dw74hwuy
【OS名】suse linux 9.3 【PHPのバージョン】php5 【連携ソフトウェア】apache2 【質問内容】 ファイル操作で 先頭から追加で書き込みたいのですが、 fopen("pegirama.txt","r+") とかで書き込むと 上書きされて、今までの内容が消えてしまいます。 どうすれば上書きされずに先頭からカキコできますか?
無理
ありがとうございました。 上書きと追記2つつかって実現します。
940 :
783 :2009/01/12(月) 21:29:12 ID:Rm35EcoD
>>917 おっしゃる通りです。私もそう思います。すみません。
>>918 こんな方法があるんですね。
ありがとうございます!
今日時間があったから自作でフレームワーク作った おれまじはんぱねー
942 :
nobodyさん :2009/01/13(火) 01:27:05 ID:D2D40YVN
$file = file_get_contents("test.html"); でファイルを読み込んだのですが、TABが入っていて そのまま出力しても見づらいです。 変数内のTABを一括で削除する方法はないでしょうか?
置換に正規表現(笑)
946 :
nobodyさん :2009/01/13(火) 03:09:34 ID:Qz7Qbc/9
trim (笑)
>>944 $sql を var_dump してみ
951 :
nobodyさん :2009/01/13(火) 15:05:31 ID:UfswTbQA
PHPとかHTMLとかを難読化するやつ教えて <?php $a = 1; ?> <table> <tbody> とかを <?php$a=1;?><table><tbody> こういうふうにするやつね。 名前忘れたけどPOBS(?)とかいうやつで難読化したけど HTMLが毎回ぶっ壊れるんだよね。なぜかは知らんから捨てた。 日本人が作ったフリーソフトとかで何かいいの無い?
>>951 $source = preg_replace("/(?:\r\n|\r|\n)/","",$source);
文字列の中に特定の文字が何文字含まれているか返してくれる関数ってありますか?
下のように出せるのですが関数やもって手軽なものあれば教えてください。
$moji = "あいうえおああいいてんきああ";
preg_match_all("/あ/",$moji,$matches);
echo count($matches[0]);
953 :
952 :2009/01/13(火) 15:18:51 ID:???
954 :
nobodyさん :2009/01/13(火) 15:35:04 ID:50I9JJCG
$sql = "SELECT dataType FROM table WHERE id = " . $id; $info = $this->_mysqli->query($sql); これで$infoに空のオブジェクトが返ってくるのはなぜでしょう? $idにはちゃんと数値が入っているし、このsqlをphpMyAdminで 実行すると、ちゃんと結果が返ってきますが、PHPでやると空の オブジェクトが返ります・・・。
phpにはJavaでいうところのeclipseみたいなメジャーな開発環境ってない?
>>952 日本語でOK
おちついてpreg_match_allのマニュアル嫁
$moji = "あいうえおああいいてんきああ";
echo preg_match_all("/あ/",$moji,$matches);
>>954 $idはダブルクォーテーションで囲まなくていい数値なの?
960 :
954 :2009/01/13(火) 17:41:16 ID:50I9JJCG
>>959 bigint(20)のフィールドなので、いらないですね。。。
WHERE無しでも同じ?
964 :
954 :2009/01/13(火) 19:03:28 ID:???
>>961 WHEREなしでも同じでした・・・。
>>962 mysqliオブジェクトですよ。
コンストラクタで $this->_mysqli = new mysqli('ホスト', 'ユーザ', 'パスワード', 'DB');
とやって、privateの$_mysqliにオブジェクトを入れてます。
>>963 トップページ見ただけでコンセプトがわかるようなデザインにしたほうがいいよ
>>964 mysqliオブジェクトなら、queryの返り値はboolだよね。
次に、->fetch_object()しないとオブジェクトは取れないでしょ?
>>964 あぁ、ちょっと?書いた。
SELECTの時は返り値は結果オブジェクト。
で
$result->fetch_object();で行がとれる。
968 :
nobodyさん :2009/01/13(火) 19:56:11 ID:/s3q30uO
【OS名】特になし。 【PHPのバージョン】php5.0以上 【連携ソフトウェア】特になし 【質問内容】 $hoge=new Hoge; $hoge->fuga(); これを、インスタンスを変数に代入することなく (new Hoge)->fuga(); と書くと文法エラーになります。 しかし、メソッドを一回しか実行しない場合、わざわざ変数に入れたくありま せん。 変数に代入せずに済ませる方法としては、 call_user_func(array(new Hoge, "fuga")); というのを見つけましたが、これは冗長だし分かりにくいです。 何かほかに、変数に代入せずにメソッドを実行する方法はありませんか?
staticに
970 :
954 :2009/01/13(火) 19:57:26 ID:???
>>966 >>967 ありがとうございます!
queryの説明に、SELECTのときは結果オブジェクトが返るって
あったので、それをそのまま使えると勘違いしていました・・・。
>>970 だったら$infoが空ってことはないんじゃないの?
972 :
968 :2009/01/13(火) 20:02:19 ID:/s3q30uO
>>969 > staticに
staticには呼び出せないメソッドなのです。
例としては cake の Model::find() です。
じゃ無理
>>968 その動作を代理で実行するfunctionかクラスを書くとか。
975 :
954 :2009/01/13(火) 20:26:57 ID:???
>>971 var_dump($info)
で
object(mysqli_result)#3 (0) { }
と返ってくるんですけど、これは空とは違うのですか?
ともあれ、教えていただいた方法で結果は取れました。
ww
977 :
968 :2009/01/13(火) 20:49:25 ID:/s3q30uO
>>973 やっぱり無理ですか...。
>>974 その手間をかけるなら、あきらめて変数に代入するか、 call_user_func()を使っ
たほうが楽な気がします。
--
それにしても、自分はこれのできない言語は初めてです。たいていの言語では、
カッコでくくれば何とかなるのですが。
ほかにも、switch文の代用で
array("hoge"=>"ほげ", "fuga"=>"ふが")[$x]
などと書いたら動きませんでした。
$a = array("hoge"=>"ほげ", "fuga"=>"ふが");
$a[$x];
こう書かなければいけない。
どうもPHPのパーサは名前のないオブジェクトに弱い感じです。まあ慣れるしか
ないのでしょうが。
皆様、お教えいただきありがとうございました。
たかが1行減らして喜んでるのは素人
>>975 空だったらfetch_objectで結果も取得できなくね?
980 :
968 :2009/01/13(火) 21:13:46 ID:/s3q30uO
>>978 行数の節約はわりとどうでもよくて、不要な変数が名前空間に存在することが
自分は好きでないのです。ただでさえPHPの名前空間は種類が少ないのに。
※PHP5.3のnamespaceではなく、それを含んだ一般概念の話です。
ほかにも、PHP5.3からの無名関数(クロージャ)も、あの使いづらい
create_function() も、変数に代入しないと使えないわけで、これがPHPの流儀
なのだと割り切るしかなさそうです。
質問スレで議論をするのは避けたいので、これで失礼します。
そんなことに拘ってないで全体から最適化しろ
>>980 次スレ立てれ
ところでさ、クラスやfunction書くのそんなに手間か?
static functionを1個追加して、自インスタンス返す1行だけじゃん。で、
Hoge::getInstance()->fuga();
名前空間を汚したくないという理由にしちゃ、動機が不純だよ。
文句たれたかっただけとしか見られないんじゃね?
983 :
968 :2009/01/13(火) 21:52:35 ID:/s3q30uO
乙〜
985 :
nobodyさん :2009/01/13(火) 23:14:36 ID:sfzYhJri
>>985 外部とはどこまでの範囲をいっているのか分からない
外部の範囲が広すぎる
>>985 具体的に何がしたいか分からないので、解説が必要かと
外部ファイルを取り込んだときに配列にセットされたらいいってことじゃない? <?php 〜 ?>で囲めばいいんじゃない?
989 :
985 :2009/01/13(火) 23:55:49 ID:sfzYhJri
レスありがとうございます。 重要なことがぬけていてすいません 外部とはテキストファイルに保存してそれをcronしたいと考えています
>>982 既存ライブラリを継承したり拡張したりすることを知らないレベルだったってオチじゃね?
拡張つか委譲か
993 :
985 :2009/01/14(水) 00:25:00 ID:6pr/PCig
>>990 レス有難うございます。
array file( string ファイル名 )で取り出せばいいんですね
有難うございます
994 :
nobodyさん :2009/01/14(水) 13:11:53 ID:4Dtvjdwa
すいません急ぎのため困ってます 初心者のくだらない質問で申し訳ないのですが 演算子 "=&" の意味が今ひとつ理解できずにいます。 ググろうにも該当するサイトが少なく困っています。 この演算子に関する解説が掲載されていサイトなどでも結構なので どなたかご教授頂けませんでしょうか。
マルチ乙
>>994 初心者がPHPマニュアル読んでもリファレンスは分からんだろう。
つうかリファレンスはPHPの泥沼の一つで、きちんと分かって使ってる奴は少な
い。時間がないなら見よう見まねで済ませたほうがいいと思う。
とりあえず、これ↓なんかどう?
PHPの参照渡しは関数の引数だけじゃない - cloned.log
http://d.hatena.ne.jp/cloned/20060510 あとは 「PHP 参照代入」あたりでググって。
いやそれはお前が分からないだけだろ 素人の信頼性の低いblogや日記なんかを参考にするより20倍はマシ
999
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。