【PHP】下らねぇ質問はここに書き込みやがれpart17
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/02/24(金) 22:05:48ID:YHkZgU8bここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
本スレ【PHP】質問スレッドpart33【php】
http://pc8.2ch.net/test/read.cgi/php/1140027592/l50
前スレ【PHP】下らねぇ質問はここに書き込みやがれpart16
http://pc8.2ch.net/test/read.cgi/php/1139146534/l50
過去スレは>>2
0552nobodyさん
2006/03/08(水) 15:55:00ID:???色々考えてみたのですが、非常に面倒な方法になってしまいました。
例2005-03-20 → 2005-03-31、2006-01-20 → 2006-01-31
0553nobodyさん
2006/03/08(水) 15:58:52ID:???0554nobodyさん
2006/03/08(水) 16:06:17ID:vjc8ygyCヒント:翌月1日の1日前の日付が当月の末日
0555nobodyさん
2006/03/08(水) 16:15:40ID:???http://php.benscom.com/manual/ja/function.date.php
0556nobodyさん
2006/03/08(水) 16:24:15ID:???ttp://php.benscom.com/manual/ja/function.mktime.php
> 例 2. 次月の最後の日
> 指定した月の最後の日は次の月の -1 番目の日ではなく、"0" 番目の日 として表すことが可能です。
> 以下の例はともに文字列"The last day in Feb 2000 is: 29" を出力します。
> $lastday = mktime(0, 0, 0, 3, 0, 2000);
> $lastday = mktime(0, 0, 0, 4, -31, 2000);
0557nobodyさん
2006/03/08(水) 16:31:53ID:???$t = explode('-', $foo);
$bar = date('Y-m-t', mktime(0, 0, 0, $t[1], $t[2], $t[3] ))
;
echo $bar;
0558nobodyさん
2006/03/08(水) 16:32:58ID:???$foo = '2005-03-20';
$t = explode('-', $foo);
$bar = date('Y-m-t', mktime(0, 0, 0, $t[1], $t[2], $t[0] ));
echo $bar;
0559nobodyさん
2006/03/08(水) 16:40:34ID:???PEARを使わずmysql〜関数を使用して自作クラス作りました。
INSERTやUPDATEは型判別して自動でクエリ文作る感じです。
mysql_fetch_array() で取得した値が全てstring型になっていたため、
一部のパラメータのみを書き換えてINSERTやUPDATEすると
エラーになり苦労させられたのですが、
この辺どのように回避していますか?
また、PEARを使用すれば上記は回避できるのでしょうか?
0560nobodyさん
2006/03/08(水) 16:49:00ID:???"指定した月の日数。"なんてオプションがあるんだな。
質問者ではないがありがとう。
print date(t,strtotime("10 April 2006"));
0562nobodyさん
2006/03/08(水) 16:58:53ID:???tが裸だから?
0563nobodyさん
2006/03/08(水) 16:59:17ID:???PEAR::DBではクエリ作成の機能を持ってない。
ADOdbではFetchField()でDBネイティブの各カラムのデータ型の取得と、
MetaType()でその型を汎用的な抽象表現への変換ができるようになってる。
PHPの変数は型を厳密に規定できないので、あらかじめDBからテーブルの型を
取得しておこう、って発想なんだと思う。
0564560
2006/03/08(水) 17:05:25ID:???今月でいいなら
print date(t);
でも可
print date(t,strtotime("April 2006"));
でも動くし
>>561
俺もなんで動かないと思ったか知りたい
責めてるんじゃなくて、もっといい記述方法があれば知りたいのだ
0567562
2006/03/08(水) 17:10:28ID:???0569559
2006/03/08(水) 17:29:49ID:???レスどうもです。
DB_common::autoPrepare() でINSERT/UPDATEのクエリを
作ってくれるようなんですが、
使うに当たり疑問になりまして。。。
結局型をあわせてやらにゃいかんのかな〜
今PEARのDB関係のメソッド漁ってますが、
型を取得するメソッドが見つからないんですが(;´д⊂
今のままでいっかなぁ・・・
0570nobodyさん
2006/03/08(水) 17:42:09ID:???ごめん。PEAR::DBでもクエリ作成できたのね。吊ってくる…
autoPrepare()は型を含んだクエリテンプレートの自動生成みたいよ。
実際のクエリ生成はそのテンプレートを元にexecute()で生成するぽい。
0571nobodyさん
2006/03/08(水) 17:59:00ID:???DB_common::getAll() なり何なりで取得した配列が
全部DBと一致する型・・・とは言わないまでも、
intがstringになってたりしなければ問題ないんですけどね〜
もうちょっと揉まれてきます(´д`)
0572nobodyさん
2006/03/08(水) 19:26:32ID:???0573559
2006/03/08(水) 19:34:59ID:???DB_common::getAll() の戻り値:軒並みstring
以下テーブルを作り、execute()内でどんなクエリが作成されるか検証。
テーブル名:t_test
key1:verchar(255)
key2:int(11)
key3:tinyint(4)
・ソース1
$data = array( "data1", 2, true );
$ret = $conn->autoPrepare( "t_test", array( "key1", "key2", "key3" ) );
$conn->execute( $ret, $data );
・クエリ1
>>"INSERT INTO t_test (key1,key2,key3) VALUES ('data1',2,1)"
・ソース2
$data = array( "data1", "2", "true" );
$ret = $conn->autoPrepare( "t_test", array( "key1", "key2", "key3" ) );
$conn->execute( $ret, $data );
・クエリ2
>>"INSERT INTO t_test (key1,key2,key3) VALUES ('data1','2','true')"
単にexecuteの第二引き数の型をそのまんま適用しているだけっぽい。
DB次第じゃエラーですなヽ(;´д`)ノ
0574質問
2006/03/08(水) 20:55:12ID:MC7d+fja具体的に言うと文字列を10進数とか16進数とかエンティティ化する方法はないですか?
0576nobodyさん
2006/03/08(水) 21:40:22ID:74wPkS3/このときaを$pen bを$con
という変数に置くにはどうしたらよいでしょうか?
0578nobodyさん
2006/03/08(水) 21:49:31ID:74wPkS3/0579nobodyさん
2006/03/08(水) 21:50:45ID:???0581nobodyさん
2006/03/08(水) 21:54:42ID:???ordかsprintf。
エンティティ化は
preg_replace_callback('/./', create_function('$m', 'return "&#".ord($m[0]);'), $str);
て感じか。
これやってくれる関数あるっけ?htmlentitiesやhtmlspecialcharsじゃ特定文字だけだしな。
>>576
$a = array(array('', ''), array('a', 'b'));という意味だと仮定するとlist($pen, $con) = $a[1];
0582581
2006/03/08(水) 22:08:04ID:???エンティティ化でセミコロンつけ忘れちゃった
0583nobodyさん
2006/03/08(水) 22:09:04ID:74wPkS3/できますたありがとう
0584nobodyさん
2006/03/08(水) 22:16:53ID:???データベースを使うメリットを教えてください。
それから、今後の普及予想もお願いします。
やはりデータベースを利用したプログラムが増えていくのですか?
0585nobodyさん
2006/03/08(水) 22:29:01ID:???メリット:安定して動作し、データ破損や消失が少なく、データ件数が多い場合に検索・表示が高速
普及:とっくに普及してると思うが…20年前の人ですか!?
DB利用:これは普及とかは関係なく、システム規模などの条件でどっちを使うか決めるもの
0586nobodyさん
2006/03/08(水) 22:29:10ID:???掲示板だろうと、アクセス解析だろうと、
データを何かしらの方法で保存して、それを参照すれば、すなわちデータベース
お!君も既に使ってんジャンSUGEEEEEEEEEEEEEeeeeeeeeeeee!。
と、煽ってみる
0587nobodyさん
2006/03/08(水) 22:48:29ID:???socket関数を使うというようなことを聞いたことがありますがいまいちやり方がわかりません。
ちなみにhtmlでformタグのactionで指定するのでは目的は達成できないので、phpでよろしくお願いします。
0589587
2006/03/08(水) 23:24:24ID:???xreaでは使えないかなぁ・・・
0590nobodyさん
2006/03/08(水) 23:34:28ID:???>pear使わないと無理ですか?
pearを使わずに自作することは可能。
ただし、それにはHTTPを理解する必要がある。
>xreaでは使えないかなぁ・・・
どこであろうとpearは使える。
例え"pearコマンドでインストール"できないサーバでも、
必要なパッケージを適当な場所に置けばよい。
なぜならpearはPHPで書かれたライブラリ群に過ぎないから。
xreaで使えるかどうかについては板違い。
0591590
2006/03/08(水) 23:35:26ID:???0592nobodyさん
2006/03/08(水) 23:39:07ID:???0593nobodyさん
2006/03/08(水) 23:45:45ID:MQhgDV9rライブラリってありますか?
PEARで探したところそれらしきものはなさそうでした。
0594nobodyさん
2006/03/08(水) 23:46:16ID:???0597nobodyさん
2006/03/08(水) 23:53:19ID:???0600nobodyさん
2006/03/09(木) 00:02:23ID:???出来る
たとえばSAKURA Internet(http://www.sakura.ne.jp/)
はtelnet/ssh接続で接続できるサービスを提供している
レン鯖といっても専用サバなら当然出来ると思うが。
板違いすまない。
0601nobodyさん
2006/03/09(木) 00:06:22ID:???0602nobodyさん
2006/03/09(木) 00:26:43ID:???それは知らなかった。早速やってみよう。
0603nobodyさん
2006/03/09(木) 01:07:10ID:???HTTP_Requestでできました!!パッケージのインストールすら初心者には大変なもので・・・結構時間かかりました。
本当にありがとうございました!!
0604nobodyさん
2006/03/09(木) 01:10:24ID:???0605nobodyさん
2006/03/09(木) 01:10:53ID:???ファイルをfile関数で取り込むと
error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 15920437 bytes)
と表示されます。
調べてみるとmemory_limitを増やせば解決できるそうなのですが、
増やすとリスクが増えたりする可能性があるきがしましてできれば他の方法で解決を図りたいのですが、
何か良い方法はございますでしょうか。
0606nobodyさん
2006/03/09(木) 01:13:54ID:???どういう整形をするかまったく書かれてないので、相談に乗りにくいのだが、
fopenで開いて、1行単位、もしくは、指定容量単位で処理すべき。
0608nobodyさん
2006/03/09(木) 01:19:59ID:dcUpKQFS0613nobodyさん
2006/03/09(木) 01:32:41ID:SHZr9acFオンラインものじゃなくて、本があったほうがうれしいんで・・・
0614nobodyさん
2006/03/09(木) 01:35:37ID:???PHP関連の書籍(但しPHP出版系お断り)第2版
http://pc8.2ch.net/test/read.cgi/php/1117066073/
参考書籍推薦スレッド
http://pc8.2ch.net/test/read.cgi/php/1014836425/
0615nobodyさん
2006/03/09(木) 01:46:10ID:???うふひひふ
0616nobodyさん
2006/03/09(木) 02:02:35ID:???これをparse_urlで分解するとpath には/test/read.cgi/php/1140786348/が戻されますが、
真ん中の「php」の部分だけを戻したいときはどうしたらいいでしょう。
0618nobodyさん
2006/03/09(木) 02:11:01ID:???>>616
○投げスレではない。
あとIDだして質問しろ
0619nobodyさん
2006/03/09(木) 02:12:32ID:???0622nobodyさん
2006/03/09(木) 02:50:21ID:dcUpKQFSどうやれば良いでしょうか?
0623nobodyさん
2006/03/09(木) 03:07:54ID:???0627nobodyさん
2006/03/09(木) 08:10:27ID:???消す意味あるの?
たまに配布されているphpスクリプトでもNoticeエラーでまくることあるけど、
エラーは全て表示でコーディングした方がいいよ
0628nobodyさん
2006/03/09(木) 09:49:04ID:???出ても動くんだからさ
0630nobodyさん
2006/03/09(木) 10:02:23ID:???0631nobodyさん
2006/03/09(木) 10:18:29ID:???「最近の」デフォルトな。以前はデフォルトじゃなかった。
昨今のPHPブームでNotice出しとかなきゃミスコーディングするやつが続出したんだろ。
PHPなんて本来お手軽に作れるからこそ価値あるものだし、元々の言語構造的に
厳密にコーディングしたところでかなり無駄なんだからわざわざ出すもんじゃないんだがな>Notice
0632627
2006/03/09(木) 12:23:00ID:???そうか?
一般の他の言語なら動けばいいだけだ。
しかし、phpはWebプログラミング用の言語であり、他言語との連携も重視されている。
言語構造的に正しくコーディングすることはセキュリティホールの発生確率を下げることになる。
以前はデフォルトじゃなかった、というが、以前はGETで送信されてきた「hoge」が、$hoge にそのまま入っていたよね。
そして、Noticeエラーも出ないから変数の初期化忘れても気が付かないわけだ。
その2つが組み合わされたら即大変危険なセキュリティホールの完成だったじゃないか。
0633nobodyさん
2006/03/09(木) 12:29:30ID:???せいぜい「通知」
気になる人は治しとけってだけ
0634nobodyさん
2006/03/09(木) 12:36:57ID:???へぇー
変数の初期化をしないことは普通の言語では重大なエラーに相当するんだけどね
おまいさんは、Apacheのログの Notice 全部記録されなくて困らないの?
プログラミング言語を考える時に、もとの単語の意味なんて気にしちゃ駄目。
0635nobodyさん
2006/03/09(木) 12:44:57ID:???どっちが穴を防げるかっつったら議論の余地も無いだろ。
0636nobodyさん
2006/03/09(木) 12:56:51ID:???register_globalsがOFFになったのは随分前の話。これは本当にセキュリティホール。
NoticeがデフォルトONになったのはつい先日の話。これはへたくそプログラマが増えたせい。
0637nobodyさん
2006/03/09(木) 13:47:54ID:???堅牢なプログラムが必要なら堅牢な組み方しろよ。言語関係なく。
0638nobodyさん
2006/03/09(木) 14:06:11ID:???0639nobodyさん
2006/03/09(木) 14:19:09ID:31uVLi9Sそれを使用者のIPでPOSTするにはどうすればいいんでしょうか?
0640nobodyさん
2006/03/09(木) 14:31:41ID:???<FORM>タグでフォームを用意して、ユーザーにSUBMITボタンおしてもらう。
PHP使わbネくてもできるb諱B
0641nobodybウん
2006/03/09(木) 14:35:46ID:31uVLi9Sそれじゃあやりたいことができないんですよ・・・
0642nobodyさん
2006/03/09(木) 14:36:00ID:X3uNYaoU現在file_get_contents("hoge.php?id=35")でやっています。
しかし、いちいちファイルを読み込む為時間がかかります。
引数だけ送ってファイルを読み込みたくない場合はどうすればよい
でしょうか。
0644nobodyさん
2006/03/09(木) 14:37:26ID:???わかりやすく解説しているサイトなどはないでしょうか。
0649nobodyさん
2006/03/09(木) 14:43:24ID:???0650nobodyさん
2006/03/09(木) 14:43:55ID:???0651nobodyさん
2006/03/09(木) 14:45:11ID:???当然出る警告がウザイ。
0652nobodyさん
2006/03/09(木) 14:46:48ID:???■ このスレッドは過去ログ倉庫に格納されています