【PHP】下らねぇ質問はID出して書き込みやがれ 80
1 :
nobodyさん :
2009/02/01(日) 18:10:57 ID:PdwQzQch 質問者はまず
>>1 を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
次スレは
>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 78
http://pc11.2ch.net/test/read.cgi/php/1230026935/ ◆質問用テンプレ
【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に保存?
→ 好きにしてください
テンプレがなかったのでコピペした
>>4 は前スレ
>>7 を使用
8 :
nobodyさん :2009/02/01(日) 19:03:59 ID:b90OQfT9
では、さっそく。 loggixインスコしたが、システム環境設定を変更して「設定を保存」しても反映しない。 新規ログや新規ダウンロードの投稿は正常にできるのに。。。
10 :
nobodyさん :2009/02/01(日) 19:19:37 ID:b90OQfT9
>>9 分かりました。そちらに聞いてきます。
また、質問後に無線マウスを落っことし破損してしまい
ショックで返信遅れました。すいません。
w
12 :
nobodyさん :2009/02/01(日) 21:50:20 ID:/O5+s7Bi
ループを使えば$strs[7]から$strs[41]くらいまでは一回で済む。 ま、解決してから自分で勉強だな。 コードをコピペしたら、その瞬間に「自分は糞コードを生み出している」という自覚を持て。 最初の問題が発生するのは、encodingでUTF-8を名乗っているのに各エントリの中身がShift_JISだから。 二番目の問題は、「2ちゃんねるTV番組欄」という文字列がUTF-8だから。 解決策:読み込んできたテキストをmb_convert_encodingでUTF-8に変換する。 $word を読み込んだ直後に、$word = mb_convert_encoding($word, 'UTF-8', 'SJIS'); encoding欄はUTF-8のまま。
14 :
nobodyさん :2009/02/01(日) 22:27:43 ID:rPQwGHoV
win環境です apacheのhttpd.confのconfigチェックがDOSからできるように php.iniのconfigチェックってできますか?
できます。
16 :
nobodyさん :2009/02/01(日) 23:13:39 ID:rPQwGHoV
すいませんやり方をおしえてください
17 :
12 :2009/02/01(日) 23:23:31 ID:/O5+s7Bi
>>13 ありがとうございます。
>$word を読み込んだ直後に、$word = mb_convert_encoding($word, 'UTF-8', 'SJIS');
(2)以外の<description>は正常に表示されるんですが、
firefoxでaha.xmlを開くとやはり(2)が2?????TV???となってしまいます。
「2ちゃんねるTV番組欄」だけ書かれたテキストファイルをUTF-8で保存して
file_get_contentsから変数に代入して、その変数を表示させたらうまくいったのですが、糞コードですよねぇ
stsr[7]~[41]は
for($i=0;$i<7;$i++){
$strs[7+$i*5] = "<item>";
$strs[8+$i*5] = "<title>".$c[6-$i].$m."</title>";
$strs[10+$i*5] = "<description>".$d[6-$i]."</description>";
$strs[9+$i*5] = "<link>".$u.$b[6-$i]."/"."</link>";
$strs[11+$i*5] = "</item>";
}
にしました。
>17
PHPコードはちゃんとUTF-8か?
現象だけ見るとPHPコードがSJISになってるっぽい。
晒されてたコードがUTF-8だったんで大丈夫だと思ったんだが…
ttp://gist.github.com/55940 「このコードなら動くはず」ってうpろうとしたが、暇だったんで書き直した。
ギリギリで入門レベルまでに抑えたつもり。やってる事はほぼ同じ。
titleとdescriptionを入れ替えたのと、file_get_contentsの代わりにfile、fwriteの代わりにfile_put_contentsを使ってるのが大きめの違い。
・(存在期間の長い)変数名や関数名は人間が読んで理解できる名前にする。
・複数同じものがあったら配列に入れる。配列の中には同じものしか入れない。
(本文に混じってヘッダーとかフッターとか入れない)
(タイトルとURLとをごっちゃにして入れない)
・何行かまとまってひとつの意味を持つコードは、ちゃんと関数として束ねる。
辺りに気をつけて頑張れ。
改行がない数MBの英数半角のみのテキストファイルがあります。 0001 APPLE0001000002 CHERRY0003000003 BANANA000150 これを適切な場所で改行を入れると 0001 APPLE000100 0002 CHERRY000300 0003 BANANA000150 と 3つのフィールドがきちんと揃っています。 phpでこの数MBの改行の無いテキストファイルを 上のように整形ことはできるのでしょうか? 秀丸で行うと、1行数百万文字のため、ほとんど動かない状態になります。 バッファ的な問題かと思いますが、phpはこういう作業は不得意ではないでしょうか?
20 :
199 :2009/02/02(月) 06:28:23 ID:???
上記の例は 商品コード・商品名・価格 という情報になっています。 数字はゼロフィルされて、文字情報は空白で埋められて、各フィールド位置と改行位置は揃っています。
つスレタイ
22 :
199 :2009/02/02(月) 06:52:51 ID:rAwfZGrE
>>22 数MB程度なら余裕で処理できるのでは?
それでも気になるようならfreadでバイト数指定するとか。
24 :
nobodyさん :2009/02/02(月) 09:15:46 ID:KIIJTR4m
すいません、自分はwww鯖をdebianで運用しているものです。
Web鯖に旧0ちゃんねるをダウンロードしてpublic_html下に置きました。
で、admin.cgiとbbs.cgiを以下のとうり修正しました。
bbsroot を
http://hoge.com cgiroot を
http://hoge.com/test しかしたがらホームページにいくと403が出てきます・・
perlのパスも合ってるはずなのによくわかりません。
何か改善策があればご教授くださいませ
403ってのはスレタイが理解できないあわてんぼうさんがよく出すエラーの意味
26 :
nobodyさん :2009/02/02(月) 09:35:01 ID:KIIJTR4m
>>26 そのperlのパスを書いたcgiはphpで出来ているの?
それとも、パーミッション設定とかCGIの設置場所とかそういうのをPHPだと思ってるとか?
>>24 ここはPHPのスレです
というかスレ違いの連発を見ると、スレタイにも問題がありそう
2chの慣習から【PHP】が本題を修飾してるだけと読み捨てられるので
次スレから "PHPの下らない〜" に変えましょうか
PHP出版のことだと思ってるんじゃね?
30 :
nobodyさん :2009/02/02(月) 11:55:54 ID:Di7qHe/A
2ちゃんねるなど、名前の欄やEmail欄に入力すると、クッキーでその欄は保存されますよね その機能を、どのクライアントからでも同じ状態にする、ということをしたいのですが 何か方法はありませんでしょうか つまり誰かがsageといれたら、他の人も全員sageと入力されている状態にしたいのですが
>>30 Webサーバーとは別にキャッシュ用のサーバーを立てて、そこにmemcachedを入れる。
そのサーバーでは、リクエストを受けてmemcachedに保存するスクリプトを書いておく。
Webサーバーに投稿があったら、そのデータのうちキャッシュしたいものを、
CURLでキャッシュサーバーのphpファイルに送る
するとそのデータはmemcachedに保存される。
そのデータをwebサーバーのmemcacheクライアントを使って読み込んで利用するようにすれば、できる。
ふしあなさんテスト
あれ、ふしあなさんってもう使えないのか?
34 :
marunouchi333-shibuya.uso.ocn.ne.jp :2009/02/02(月) 12:08:40 ID:2iNQZ6gz
ほれ
35 :
nobodyさん :2009/02/02(月) 12:10:18 ID:Di7qHe/A
36 :
nobodyさん :2009/02/02(月) 12:56:43 ID:nxLE/4BM
>>18 ありがとうございます!
>PHPコードはちゃんとUTF-8か?
テキストエディタはTerapadで、
文字コードして保存→UTF-8で保存
しています。
>>18 のコードを同様に保存しても、文字化け。
使っているレンタルサーバー(
http://atpages.jp/ )の設定が関係しているんでしょうか?
37 :
12 :2009/02/02(月) 12:57:27 ID:nxLE/4BM
↑名前入れ忘れました
>>34 なんでだ?おれは使えないよ?自分でIP入力したとか?
39 :
nobodyさん :2009/02/02(月) 13:50:03 ID:jTY1nP2b
HTMLファイルの<body></body>の中身を取得しようと preg_match("/<body>(.*)<\/body>/is",$html,$sorce); としました。 これで取得できるのですが、bodyタグが <body bgcolor="#cccccc"> などと、別のタグが追記されていると取得されません。 どのような正規表現の書き方をすれば、 このような場合にも対処できますでしょうか?
<body.*?> or <body[^>]*>
bodyに属性つける書き方やめろよks cssにしろや
42 :
39 :2009/02/02(月) 13:57:55 ID:???
43 :
nobodyさん :2009/02/02(月) 17:45:33 ID:as+feHTC
phpで動的にtableの間に<tr><td>a</td><td>b</td></tr>的なのを何行かずらっと表示させて、 tdの上と下にボーダーつけたんだけど、<td>a</td><td>b</td>のaとbのtdのつなぎ目が _ _ a b  ̄  ̄ みたいに微妙に開くんですけど、これを __ a b  ̄ ̄ みたいにきっちりするにはどうしたらいいでしょうか。cssでもhtmlでもどちらでもいいです。 画像で使うのも考えてみたのですが、できればtableでやってみたいです phpに無理やり関連づけてしまいましたがよろしくおねがいします。
>>43 スタイルを調整して、それをphpから出力したらいいよ。
出力するときは、echo か printでいいんじゃない?
難しく考えすぎ
>>43 border-collapse:collapse
46 :
nobodyさん :2009/02/02(月) 18:07:21 ID:as+feHTC
>>44 >>45 おお!border-collapse:collapse;でできました!!
ありがとうございます!
47 :
46 :2009/02/02(月) 18:09:28 ID:???
べつにたいしたことじゃないから礼はいいってことよ
48 :
44 :2009/02/02(月) 18:11:36 ID:???
へぇ、そんな簡単なことだったんだ。
うぜえ
50
恥ずかしがるなよ
52 :
52 :2009/02/02(月) 18:54:25 ID:pyoydElk
オブジェクト型が以下の場合、 object(hogeRow)#69 (8) { ["_data:protected"] => array(8) { ["id"] => string(1) "1" } ["_cleanData:protected"] => array(8) { ["id"] => string(1) "2" } 次の方法で取得すると、「_data」側の値「1」が取得されます。 $object->id; 本当は「_cleanData」側の値「2」を取得したいのですが、方法はありますでしょうか。 宜しくお願いします。
$object->idで取れないだろ __get使ってんのか?
54 :
52 :2009/02/02(月) 19:07:11 ID:pyoydElk
>>53 すみません、Zend_Db_Table_Rowset_Abstract型のオブジェクトです。
56 :
52 :2009/02/02(月) 19:14:09 ID:???
57 :
nobodyさん :2009/02/02(月) 19:16:02 ID:pyoydElk
Zend_Db_Table_Rowset_Abstract型のデータで、 object(hogeRow)#69 (8) { ["_data:protected"] => array(8) { ["id"] => string(1) "1" } ["_cleanData:protected"] => array(8) { ["id"] => string(1) "2" } ・・・ 次の方法で取得すると、「_data」側の値「1」が取得されます。 $object->id; 本当は「_cleanData」側の値「2」を取得したいのですが、方法はありますでしょうか。 宜しくお願いします。
58 :
57 :2009/02/02(月) 19:17:03 ID:???
すみません。誤爆しました。
59 :
nobodyさん :2009/02/02(月) 20:12:08 ID:enCDFoM0
PHPでhttpとhttpsの判別するにはどうしたらいいですか? $_SERVERをvar_dumpしても、それらしい変数はありません apacheのディレクティブで判別用の環境変数を設定すれば出来るかなーとも 思っていますが
foreach ($_SERVER + $_ENV as $key => $value) { echo $key . " : " . $value . "<br>\n"; } ちょっと気になったんでhttpとhttpsの場合で見比べてみたけど httpsのほうには HTTP_X_FORWARDED_PROTO : https というのが出てきたよ
$_SERVER["SCRIPT_URI"]
62 :
60 :2009/02/02(月) 20:34:52 ID:???
他のサーバでやってみたけど必ずしもそうとは限らないみたいだな ただhttpと比べて取得できる変数や変数の中身が変わってくるみたいだから 自分のサーバではどうなのか見比べてみて httpsで取得できる変数が存在したらhttpsと決めるといった感じでやってみればいかがだろうか? ブラウザや設定によって変わる変数もあるのでそこを注意しないといけないけど
おいおい、どんなヘタレ鯖使ってんだ? SSLでgrepしたらいくらでも$_SERVERの中にあるだろ
正規表現での最短マッチについて質問させてください。 下記のようなhtmlを読み込んで <li><a href="okachimachi">御徒町</li> の部分だけにマッチングさせてスクレイピングしたいのですが、 パターンを /<li.*?御徒町.*?>/ でやってみても最短にはなりません。 どのような方法があるのでしょうか? 記 <li><a href="ueno">上野</a></li><li><a href="okachimachi">御徒町</a></li><li><a href="ochanomizu">御茶ノ水</a></li>
>>64 最短マッチの意味わかってる?
おれはよく知らない。
67 :
nobodyさん :2009/02/02(月) 20:57:57 ID:e9JkXj9O
マッチングさせたいのは 誤 <li><a href="okachimachi">御徒町</li> ではなく 正 <li><a href="okachimachi">御徒町</a></li> です。失礼しました。
68 :
nobodyさん :2009/02/02(月) 21:05:54 ID:25ge88B9
PHP講座ってどんくらいもうかるの?
>>68 会社の差、個人差が多すぎる話をしてどうする?
でも、俺の場合PHP経験数年で、某会社の新人にPHPを教えてるが、出張1日あたり、20万円(税・経費込)で週3回。
いかない日は教材作ってるから、個人だとあんまり儲からんね。
70 :
nobodyさん :2009/02/02(月) 21:12:27 ID:25ge88B9
1日20万円だって〜〜〜〜〜〜〜〜〜〜〜〜!!!!!!!!!!!!!!
71 :
nobodyさん :2009/02/02(月) 21:15:15 ID:25ge88B9
<?php print str_repeat("20万円だって〜〜!",100); ?>
73 :
59 :2009/02/02(月) 21:17:24 ID:???
レスありがとうございます。標準的な方法はないみたいですね 自鯖なので、SSL用のポートだったら SetEnvでHTTPSという環境変数を設定するようにしました
74 :
nobodyさん :2009/02/02(月) 21:18:08 ID:25ge88B9
でもおかしいな、計算が合わないよ 相場だと1回5000円で、10人生徒がいたとして5万円。 20人だと10万円で、40人で20万円。 たかがPHP講座で40人も生徒が集まるか?
>>74 どんな糞口座だ?
PHPのハンズオントレーニングなら、一人1時間1万円取られるよ。
1日で4〜6万が相場
76 :
199 :2009/02/02(月) 21:26:17 ID:???
>>23 phpって1行の文字列の制限があったと思うのですが、
1行10万文字を読み込んで、改行を入れて加工することができるのでしょうか?
78 :
76 :2009/02/03(火) 00:00:31 ID:Zy01yD9b
一行の制限はありません
ガタガタ抜かす前にやってみろよ。 file_put_contents('long.txt', str_repeat('12345', 150000)); $str = file_get_contents('long.txt'); $replaced = str_replace('5', "\n", $str); file_put_contents('replaced.txt', $replaced); 150,000 * 5文字を変数に保持し、ファイルに書き出し、読み込み、変換する。 余裕で動く。俺の環境だと一瞬で完了する。 やってみて気づいた制限は、文字列がPHP_INT_MAXバイト(32bit環境なら40億強)を超えるとNGになる事。 また、PHP側のメモリ利用制限量(php.iniのmemory_limit)を超えてもNGになる。
と思って過去ログ辿ったら、オリジナルの問題は「数百万文字」なのか。 >76だけ見て10万文字で試してしまった。
引数でバイト数が指定できる関数のことで混乱してるんじゃないの fgetsだと第二引数を省略すれば関数的には行の最後まで読んでくれるらしいよ
>>78 よう分からん。
↓を読んでphpに1行の文字列の制限があると判断したってこと?
「fgets()関数」
fopen()関数 で開いたファイルの、指定したファイル名の1行を取出しま
す。
取出す場合には、引数で最大バイト数を指定しますが、省略した場合には
自動的に 1024バイト(日本語で 512文字分)になります。
84 :
nobodyさん :2009/02/03(火) 11:09:06 ID:LJeHoB4T
一般ユーザーがphp.iniの設定値を.htaccessファイル内の php_flag php_valueによって上書きすることができますが、 .htaccess内のphp_flag php_valueの使用を禁止する方法は ありますでしょうか?
ないよ
php_admin_valueってそのためじゃなかったっけ?
AllowOverride none ではないのかな?
noneは不便だろ
89 :
nobodyさん :2009/02/03(火) 13:43:43 ID:dcWE6E+I
header関数で別ページに飛ばしたいのですが この関数は他の出力よりも前に書かないといけないみたいですけど htmlを出力した後に呼び出してもちゃんと別ページに移動できます これはブラウザの仕様でしょうか?
正常にheaderで飛ばしたのなら出力されたかもわからないわけだが
91 :
nobodyさん :2009/02/03(火) 13:52:16 ID:z3SY7sls
php5を使っています。 関数の中で同じクラスの関数を呼び出すにはどうすればいいですか? class c_check{ global $error_message; function __construct(){...} function f_int($var,$endflg){ intかチェック $error_message = 'intエラーです'; } function f_isset($var,$endflg){ issetチェック $error_message = 'issetエラーです'; } . . . function show_error(){ $error_message表示&ログ記録&スクリプト終了処理 } } というクラスがあって、 f_issetやf_intの中で$endflgがTRUEならshow_errorを呼び出したいのですが、 $this->show_error();と書いても呼び出されません。 どこかに自分のオブジェクトを生成しなければならないのでしょうか?
>>89 やってみなよ。
そういうのは、一度やってどんなエラーが出るのか知っとけ
94 :
nobodyさん :2009/02/03(火) 14:20:19 ID:dcWE6E+I
>>92 ありがとうございます
すでに実行済みで疑問に思ったのでここで質問させていただきました
95 :
nobodyさん :2009/02/03(火) 14:22:06 ID:dcWE6E+I
>>90 クッキーを読み込み
ファイル書き込み後文字出力
そのごheader関数を使い別ページに移動
この一連の流れの後にクッキーの値を確認、ファイルの書き込み内容も確認してます
96 :
nobodyさん :2009/02/03(火) 14:24:24 ID:z3SY7sls
>91です。 すいません、なんか入力値がおかしなことになってました。
>>91 globalなんて使わないからメンバ変数にしな
private $error_message;にして
セットは$this->error_message = "";でやる感じ
エラーチェックは1つのメソッドでやったほうがいい
>関数の中で同じクラスの関数を呼び出すにはどうすればいいですか?
staticメソッドならClass::method(自クラスならself::methodでも可)で呼び出せるけど
インスタンスメソッドなら自信をインスタンス化しないとならない
>>97 みたいなカスの言うことは話半分で聞いとけ
中には正しいことも混じってるだろうが。
あぁ、確かに理解する気になれん。 用語を正しく使えてないからな。
用語を知らないだけだろw Javaあたりやってるやつなら普通に理解できる
> globalなんて使わないからメンバ変数にしな 使わないんじゃねぇよ。使えないんだよ
> エラーチェックは1つのメソッドでやったほうがいい あほか、設計次第だろが
どういう反論してくるかと思えばこれはひどい
> インスタンスメソッドなら自信をインスタンス化しないとならない はしょりすぎ、スコープが書いてなきゃ意味ないだろ
> セットは$this->error_message = "";でやる感じ 言われんでも、質問者だってそのぐらい知ってんだろ えらそうに、
だいたい、質問者は > どこかに自分のオブジェクトを生成しなければならないのでしょうか? って聞いてるんだ。答えは YES それ以外は蛇足以外のなにものでもない
えらそうとかガキかお前は
アホラシw
ガキだけど、なに? あんた、もしかして、中年オヤジなわけ?
>>103-104 はただの揚げ足だな
同じフィールドにセットするという質問者の書き方にあわせただけだろ
まったく関係ないフィールド値なら話も変わるが
開き直ってるとこがまた痛いw ム板に帰りなよ
開き直って悪いかw カスドモ
>>85-88 ありがとうございました。
レンタルサーバでhtaccessで大半の機能は使えるけど
php_value php_flgは使えないサーバがあったので、
どこで制御しているのか気になっての質問でした。
>>91 $c = new c_check();
$c->f_int( "数字じゃないよ", 0 );
でOK
118 :
nobodyさん :2009/02/03(火) 16:02:57 ID:MgNsuIVl
mysqlでtimeで時間を保存してて、 その形式が00:00:00だったとき、 phpでselectするときに、24時間で、秒で表したいんだけど そんな関数ってありますでしょうか。 explodeで、:で配列だして、それぞれ秒変換して、足す。 ならできそうなんですけど、ぱっと一瞬で変換してくれるような方法があれば教えください。
なんかこの前そんな質問あったな ちょっと過去ログみてこよう
>>118 直訳するとMysqlから引っ張ってくる
00:00:00形式を数値化(unixtime形式)して取得したいと
いっているのか?
試してないけどMysql側でUNIX_TIMESTAMP()という関数が
あるがこれ駆使したらできないか?
121 :
nobodyさん :2009/02/03(火) 16:22:47 ID:MgNsuIVl
122 :
nobodyさん :2009/02/03(火) 16:31:43 ID:MgNsuIVl
やってみたところ UNIX_TIMESTAMP()で思い通りのことができました。 ありがとうございました
123 :
nobodyさん :2009/02/03(火) 17:31:46 ID:DYfqiAfI
くだらない質問ですいませんがお願いします PHPの掲示板(展開方式)でおすすめのやつおしえてください
やっぱ自作でしょ
この時間は再帰処理も書けない厨房が降臨してるからまともな回答はでないと覚えておいたほうがいいぞ
うんうん この時間は、再帰の必要のないところで再帰したがる奴が(ry
130 :
nobodyさん :2009/02/03(火) 19:23:49 ID:ijF8lhfw
1)あるディレクトリへの直接のアクセス(ブックマークからのリンク含む)を禁止したいです リファラとって、リファラ中にそのサイトのドメインが文字列としてあればOKという対処で いいんでしょうか? また、headerのロケーションでの移動は、リファラにその情報が乗らないんでしょうか? ログイン画面からのOK処理でlocation移動させるとリファラチェックがエラー扱いになります やり方がまずかったのかも知れないですが、、 1)の処理のためのいいやり方を教えてください、御願いします
loadHTMLで適当なHTML読み込むと警告でるけど DOM化はされているようだ。 で、この警告がでないようにする方法ってある?
>>130 へ
.htaccess
ではだめなん?
なんか後半の意味がわからないけど
133 :
nobodyさん :2009/02/03(火) 20:00:53 ID:d7p/0aUM
create_functionのサンプルとして載っている <?php $newfunc = create_function('$a,$b', 'return "ln($a) + ln($b) = " . log($a * $b);'); echo "新しい匿名関数: $newfunc\n"; echo $newfunc(2, M_E) . "\n"; // 出力 // 新しい匿名関数: lambda_1 // ln(2) + ln(2.718281828459) = 1.6931471805599 ?> を実行すると、文字化けするんだけど、なんで?
135 :
nobodyさん :2009/02/03(火) 20:29:15 ID:d7p/0aUM
>>134 どういうことかな?
UTF-8のホームページから、コピーしてきて、
エディタにUTF-8で貼り付けてるから
問題ないと思うんだが。
それに文字化けするのってこのサンプルだけ
なんだよね。
136 :
nobodyさん :2009/02/03(火) 20:31:03 ID:d7p/0aUM
>UTF-8のホームページから、コピーしてきて、 lol
138 :
nobodyさん :2009/02/03(火) 20:40:05 ID:d7p/0aUM
プログラマーってバカだよね〜 講師になれば1日で45万円かせげるのに、 わざわざコードを書いて、1ヶ月で40万しかもらえないなんて。 しかも書いたコードの著作権も会社に取られて しまうんでしょう?
じゃあお前がなればいいじゃん
140 :
nobodyさん :2009/02/03(火) 20:46:51 ID:d7p/0aUM
>>139 まじでなりたいわ。
PHPのハンズオンの会社で
一番料金の高いところはどこ?
スレ違い
PHPの講師(笑)
143 :
nobodyさん :2009/02/03(火) 22:27:39 ID:G0zcxThl
PHPファイルの拡張子をなぜphpにしたのでしょうか。 PHP関連情報をググるときに何も関係ないものがファイル名で引っかかってうざいのですが・・・
もっとがんばって検索うまくなれ
検索ってやっぱり絞り込むための言葉を拾い出すセンスだよなあ
どの言語で作成したのかわかるため 別にphpじゃなくてもoresamaって拡張子だってphpは動かせるぞ ようは好きな拡張子を設定しテロ
147 :
nobodyさん :2009/02/04(水) 03:01:42 ID:aAjFpYnj
>>132 htaccessだとどういう処理になるでしょうか?
リダイレクトだけくらいならわかるんですが、組み合わせになると自信がないです
スレ違いですみませんが、良ければ簡単に教えてください
スレ違い
>>147 どの程度の厳密性するかによる
リファラだと偽装とか携帯でリファラを出さないのとか、
そもそもリファラを送信しないクライアントもあるかもしれない
そんなのまで目くじら立てるか否か
(例えばPCで画像を直リンクさせたくない処理とかが参考になると思う)
それが我慢できないのなら、そのディレクトリに認証をかけるしかないし、
webプログラミング的に言えばセッションでもってそのディレクトリでスクリプト的に
(スクリプト経由でファイルを出す)処理するとかだな
150 :
149 :2009/02/04(水) 05:15:44 ID:???
ぁぁ、.htaccessの話とは関係なかったな 一般論ってことで
151 :
nobodyさん :2009/02/04(水) 05:55:37 ID:P19oRL/b
perlのクダスレも作れや!クズども
>>150 .htaccessでもできるよ。実際にはmod_rewriteが使えれば、だけど。
スレチだけどね
>>138 売上45万で受取45万だと思ってるバカ乙
>>153 雇われだと受け取れてもせいぜい15万が良いところね…
>>138 は競馬などで3万円かけて3万1千円のあたりがきたら
3万1千円儲かったと思える幸せなやつなんだろう(´ω`)
155 :
nobodyさん :2009/02/04(水) 12:16:17 ID:Kwvel5vA
156 :
nobodyさん :2009/02/04(水) 12:17:20 ID:Kwvel5vA
→静的
>>155 HTMLの勉強しろ
リンクは基本的にホームディレクトリからの絶対パスで指定すべき
相対パスなんか使うな
158 :
nobodyさん :2009/02/04(水) 12:31:19 ID:Kwvel5vA
>>157 なるほど、勉強になりました。
一度最初から編集するのは面倒くさいかもしれませんが、
逆にそれの方がすっきりするような気がしてきました。
ありがとうございました。
>>158 本気か?
普通はhttpd.confの設定を1対1になるように関数でもクラスでも書いて、
パラメーターをURLに変換するんだよ。
mod_rewireが使えない鯖でそれっぽいことやる海外スクリプト使ってるからべつにいいや
フリーライダー乙
162 :
nobodyさん :2009/02/04(水) 19:45:30 ID:ycXVzljr
こんばんわ〜 PDOでデータベース構築しようと思います。
166 :
nobodyさん :2009/02/04(水) 23:41:01 ID:ofs0LpAO
phpの基本文法を覚え、よく使われる関数の使い方も覚えました このあとクラスについて覚えるべきかフレームワークの使い方を覚えるべきは悩むのですが どちらがおすすめでしょうか?
基礎文法を完全に学ぶ
>>166 ネタにマジレスして悪いんだけど、
文法とか、関数はマニュアル見ながらやれば十分、
フレームワークだって、ドキュメントとAPI、phpDoc見れば大概のことはわかる。
そんなんは枝葉に過ぎんよ。
決定的に違いがでるのは、ソフトウエア開発の基礎的なノウハウ
何を基礎だと思ってるかってのが開発者の個性。そこを磨け
ウザ先輩乙www
, /〃ハヾ / ∧∨〃、ヾ} l| :}ミ;l\ /〃// / 〃l lヽ∨,〈ヾ、メ〈 }} ;l リ ハ l`!ヽ. //' /,' ,' 〃 l l川/,ヘ丶\;;ヽ/:'/〃∧ l ト、:l ! 〃,'/ ; ,l ,'' ,l| レ'/A、.`、\;;ヽ∨〃/,仆|│l }. |、 i' ,'' l| ,l ' l. !| l∠ニ_‐\ヽ;\,//,イ| l | l ト/ λ! 、 . l ; :|| ,'i:/ l| |:|: |``'^‐`ヾ∨`゙//|斗,l ! | ,タ /l.| l 三__|__ l ' l |」,' l' lハ |'Ν  ̄´ /` ,|l_=ミ|! ly' ,〈 :|| | 口 | |l .l H|i: l | ゙、| l _.::: ,!: l厂`刈/ /!} :l| ‐┬‐ |! :l |)!| ! | ヽ '´ ’/'_,. ノイ.〃/|! │田│ l|l |l 「゙|l |`{ .. _ |}/,ハ l  ̄ ̄ |!l |l、| !l :|. ‘ー-‐==ニ=:、__j:) l'|/|l リ 、 マ ヽ ̄ニ‐、__.」乢!L!lヱL」__ ー、 `'''´ 从「 / 了 用 \ `ヽ\ /l | / ̄´ // '"`ー‐ . ,、 l ゙、 / ' |、 { /l/ , '} l ゙, / |:::\ } ,.イ/ レ | l l l ,.イ l:::::::::\__ `'-‐::"// |′ ノ l ! K ヽ,、 \「`''''''''"´:::::::;;:" // . l l ト、\( _.... ヽ .:.::::::::;;″ /' _ \ | l| 八、ヽi´ | .:.:::::::::::::i' .:/'"´ ̄ ̄ ̄ ,.へ\
>166 クラスを使いこなすには経験が必要だが、PHPのクラスの使い方は非常に簡単。 というか、クラスの基本的な使い方が分からないと、フレームワークは理解できないし使えない。 クラスのインスタンスの生成、メソッドとメンバ変数、クラスの継承くらいまでは理解しておく事をオススメする。 当面は使い道が良く分からなくてもよいから、どう書くと何が起きるのかは理解しておく。
173 :
nobodyさん :2009/02/05(木) 03:33:35 ID:+8hoj09r
$manky = "-1"; if (isset($_GET['hoge'])) { $manky = $_GET['hoge']; } 上のは下の方が安全なんでしょうか? $manky = "-1"; if (isset($_GET['hoge'])) { $manky = htmlspecialchars ($_GET['hoge']); }
>>166 悪いことは言わないJavaをやったほうがいい
みんな表示にどれくらいの種類のブラウザを試してるもんなの
177 :
176 :2009/02/05(木) 08:02:47 ID:???
なんで無視するんですか?
178 :
138 :2009/02/05(木) 08:10:13 ID:???
案外釣れなかったから再レスするけど、 マジで講師いいよ。 日に45万は見栄張りすぎたけど、30万は確実にいくし。 まぁ、実際の俺は自宅警備だからこれは妄想にすぎないんだけど。
それは、本当に貰ってる俺を釣りたいのか?
>>178 釣りたければもう少し金額を下げておけ。
181 :
179 :2009/02/05(木) 08:23:26 ID:???
>>180 でも、それくらいはいくだろ。
俺も35万前後は毎月もらってるし
>>181 おまえ、せっこい釣りだな。小房かよ
別に、おれは困らんし
あ、名前欄に入れる数字間違えただけか、煽ってスマン
>>181 こんなところでつまらない見栄張ってる暇があったら働けよw
たかだかPHPの講師でそんなにもらえるわけねぇだろ
この業界が儲かるといわれて注目されてた時代はとっくに終わってるんだよ
>>184 ツッコミちがうぞ
181は「毎月」ってボケてるんだ
うん。そうなの。ごめんね
稼げないのが常識だと思ってる奴が数名いることだけはわかった
釣り師と釣られ師がいてもたったこれしか伸びないなんて... 全盛期(4,5年前かな)に比べるとかなり過疎ってるな。 あのころは金になると思ったボンビーメンたちがPHPやPerlスレに 押し寄せていたのに。時がたつのは早いですねぇ、えぇ。
スレ違いのしょうもない話に乗っても意味ないから君以外の皆は放置してるだけだよ
192 :
191 :2009/02/05(木) 09:08:08 ID:???
訂正 スレ違いのしょうもない話に乗っても意味ないから君と俺以外の皆は放置してるだけだよ
わざわざ騙ってそんなこと訂正して嬉しいのかw
名前欄に数字いれてないで、素直にPDOの質問出せばいいのに 質問 って
今、暇だから特別にこたえてやんよ
196 :
nobodyさん :2009/02/05(木) 09:33:16 ID:r201bcdx
formから受け取った画像ファイルを 画像ファイルとして読み込めるかどうか判断できる 方法を知っていたら教えてください。 今は、getimagesizeで取得できるかどうかで、 できなければ画像ファイルじゃない、と判断しているのですが、 なにか抜け道があるようなきがして不安なのです。 よろしくお願いします。
GDで新しいイメージを作ってそこにペースト。 それから保存する
>>173 htmlspecialcharsは実際に表示するときでいいよ
リクエスト受け取るときは何もしなくていい
>>195 今じゃなくて、「常に」暇なんでしょw
どうでもいいけど「やんよ」ってどこの訛りですか?
>どうでもいいけど「やんよ」ってどこの訛りですか? 2chは初めてですか?
>>199 常にってのは大げさだけど、暇な時間、多いかも。
あくせく働かなくても、儲かってるから
>>202 経済的にコンプレックスをかかえてるのはわかるけど、そういう見栄を張って
むなしくなりませんかw
>>202 へぇ、自宅警備ってそんなに儲かるんだ。
ひゃひゃ、なんか、くすぐったいねぇ
ガキども ここで雑談するな スレ違いだ
>>204 もう自宅警備歴がかれこれ5年になるけど、めちゃくちゃ儲からないよw
ヤフ桶での転○での利益が月7〜15万ではっきり言ってきつい。
日常生活に(お家がダンボールになっちゃうかもしれないという)スリルを
求める奴にはおすすめだけどね。
おまえら、せめて自宅警備のついでに開発しろ まともに開発できるやついたら、1か月80万〜100万払うぞ。俺が。まじで。
>>208 そこまで言うなら、まずは
お名前、ご住所、電話番号
を晒さないとね
開発力の証明になるようなサイト作って、仕事募集中って書いてくれたら、 おれからコンタクトするよ
211 :
210 :2009/02/05(木) 12:03:28 ID:???
言い忘れてたけど、もちろん全部嘘だから。それだけは承知しといてね
だめだこいつらwwww 普通の人間になってください
>>211 おまえ、まだいたのか。
稼ぎそこなったなw
>>167 pearいいですね、勉強してみます
>>168 文法ぐらいなら難しいことでもないのでもう完ぺきです
>>169 感性を磨きます
>>172 php5ですが簡単な使い方は覚えました
class keisan {
public $i=2;
public $n=3;
function tasizan(){return $t=$this->$i+$n;}
function hikizan(){return $h=$this->$n-i}
}
$obj=new keisan();
echo"<p>".$obj->tasizan()."</p>";
echo"<p>".$obj->hikizan()."</p>";
>>174 javaも勉強してみます
なんか滅茶苦茶だね
216 :
nobodyさん :2009/02/05(木) 14:24:15 ID:l+G3Usoa
ヤフオクの商品出品画面とかみたいに 一時的にアップした画像を次のページのさらに次でアップしたいのですがどう引き継げばいいですか? index1.htm ここのフォームで画像をアップする ↓ index2.htm ここで画像を表示して「この画像でいいですか」と出して ↓ index3.htm ここで「完了」と出す 2で一時フォルダに保存すれば3でアップと同時に一時フォルダの画像を消すことができるけど ユーザーが3に行かずにやめてしまった場合は残ってしまいます。 3で再びアップさせればいいんだけど、1から3へ画像ソースのディレクトリを引き継ぐ事はできないんですか? よく分からないので教えてください。
一時ディレクトリにタイムスタンプ付きファイル名でアップさせてしまう。 完了したら、それを正規ディレクトリに移す。 一時ディレクトリは定期的に掃除するスクリプトを動かす。
実際にアップロードしたくないのなら フォームで選んだら出るC:\なんちゃらってパスをJavaScriptで取得して そのパスを次の画面でhiddenで渡す 次の画面でそのパスをimg srcに埋め込んでローカルのファイルを表示させる とかでいいんじゃねえ PHP関係ないけど
>>218 JSのセキュリティ的にローカルのパスをセットしてアップって無理じゃない?
>>218 javascript以前にHTMLから勉強しなおし
そんなこと出来たらサイト作成者側から好きなファイルを
アクセスしたやつから勝手に回収することができるじゃないか!?
221 :
214 :2009/02/05(木) 15:28:19 ID:???
222 :
173 :2009/02/05(木) 15:30:57 ID:+8hoj09r
ゲットの中身が整数である決まりならhtmlspe(ryを使わずにintvalを使うこともできる
224 :
nobodyさん :2009/02/05(木) 15:42:27 ID:+8hoj09r
>>223 はい 整数なんですよ。
これでいいんでしょうか?
$manky = "-1";
if (isset($_GET['hoge'])) {
$manky = intval($_GET['hoge']);
}
>>221 >public $i=2;
カプセル化の意味がないので、privateにする。
publicは通常使わない。継承する親クラスで、継承先で使いたい時にprotected使うぐらい。
通常はprivateでOK。
>function tasizan(){return $t=$this->$i+$n;}
PHPの場合メンバー変数のアクセス方法は、$this->$iではなく、$this->i(iに$いらない)。
同様にnのほうもちゃんと$this->nにする。
return $this->i + $this->n;といった感じ。
単純な2値の計算なんかの場合はstaticメソッドを使うとよい。
class keisan {
static function tasizan($a, $b){return $a+$b;}
}
echo keisan::tasizan(2,3);
最初は誰だって滅茶苦茶なのは当たり前。
がんばってちょうだい。
初心者相手に、僕すごいんだぞってか
publicは通常、使わない、というが、 最後にはnewしてインスタンス化して使うんだよね だから、少なくても、最後の一個はpublicに しないとダメなんでしょ?
>>227 public classとかphpにはないんで。
基本グローバル
PHP使う時に他の言語の常識を振りまわすkz
230 :
nobodyさん :2009/02/05(木) 16:42:15 ID:kfp6uZBj
var_dumpしたら、複雑な連想配列でした、これをさくっと取り出せないのでしょうか? 配列構造は、ケースによってまちまちです。 array(4) { ["tes"]=> array(1) { ["aaa"]=> string(12) "*" } [0]=> array(8) { ["bbb"]=> string(10) "*" <省略> ["ggg"]=> string(4) "*" ["hhh"]=> string(1) "*" ["iii"]=> string(4) "*" } ["jjj"]=> array(1) { ["kkk"]=> string(4) "*" } ["lll"]=> array(1) { ["fff"]=> NULL } }
ヒント foreach 再帰
質問になってないのに、よくヒント出せるな。
233 :
230 :2009/02/05(木) 17:11:23 ID:???
やっぱ再帰ですよね。 phpは、よくわかんないだけど、割に便利な関数があるんで、 そんなのがあったりするんかなと。ググる前に質問しちゃいました。ゴメンね。 でもコード考える気がなかったりするw php,再帰,連想配列でググってみたらよさげなものがあるんで、 流用しようw
新キャラ出現w
PHP5.1.6のmb_convert_encodingでマルチバイトで1000文字くらいの改行の無い文字列の文字列変換をすると、 決まった長さまでは正常だけど、それ以降が文字化けするというのは仕様ですか?
んなわけねーだろ
5.1系は使うなとあれほどいっただろ
238 :
235 :2009/02/05(木) 18:46:55 ID:???
あ、申し訳ないです。問題の切り分けを間違えてました…。
mb_send_mailでの問題でした。
mail("
[email protected] ", "test", mb_convert_encoding("1234567890123…(改行無しで1000文字)", "JIS", "UTF-8"));
で改行のない長い文字列を送ると、
これで本文の途中から「…123・u條。毅僑…」と文字化けしてしまいます。
PHPは糞杉るので他の言語に転向したいんですが、何がいいですか?
240 :
216 :2009/02/05(木) 19:15:28 ID:nQqyz+9C
>>217-220 遅レスだがありがと。
結局定期的に消すしかないのか。
まあ誰かがアップした時に同時にゴミ画像消すスクリプト動かせば手間はかからんな。
HTMLはCとタイマン張れるほどの立派な低級言語だからHTMLおすすめ
このスレは糸を垂らすと必ず釣れるんだなw
>>241 低級言語の意味わかってねぇwww
しったかぶり厨うざいよ
245 :
nobodyさん :2009/02/05(木) 19:52:16 ID:+8hoj09r
(´・ω・`)
HTMLは上級下級問わず全てのwebにかかわる人に愛され続けてる言語です
>>247 お前、空気嫁ないねってよく言われるでしょ?
250 :
nobodyさん :2009/02/05(木) 20:15:36 ID:r201bcdx
>>197 なるほど、参考にさせていただきます。
ありがとうございました。
$dir = C:\\www\\a\\、みたいに指定して
下のようにディレクトリaを削除してみたのですが、
if(DIRECTORY_SEPARATOR == '\\'){
system('rmdir '.$dir.' /s /q');
}
$dir = G:\\www\\a\\にしたときは、削除できませんでした。(エラーなし)
phpとかもろもろはCドライブにインストールしているのですが
それが原因でしょうか?
widows2000 php5.2.6
$dir = C:\\www\\a\\ 文法上おかしくない?
""でくくらなきゃ
253 :
nobodyさん :2009/02/05(木) 20:26:47 ID:r201bcdx
>>251 >>252 すみませんでした。ここへ書くときに忘れてました。
正しくは、
$dir = "C:\\www\\a\\";
なのですが、やはりGドライプで操作したときは、
消したいディレクトリがその場に残ったままなんです。
DIRECTORY_SEPARATORが\\なの?
>>253 そもそもプロンプトで
rmdir G:\www\a\ /s /q
は通るの?
256 :
nobodyさん :2009/02/05(木) 20:43:59 ID:r201bcdx
>>254 どこかのサイトに書いてあったのをやったらできたのです。
>>255 すみません、よくみたらまた間違ってました><;
$dir = "C:\\www\\a";
でした。
これで、aはきえました。
ほうほうそれで?
258 :
nobodyさん :2009/02/05(木) 20:50:25 ID:3zIJ+Mqp
pearで一番簡単な入門的なパッケージってどれでしょうか?
259 :
nobodyさん :2009/02/05(木) 20:51:00 ID:r201bcdx
それで、さきほど
>>255 さんを参考に
コマンドプロンプトで
rmdir G:\www\a /s /q
をしたら、消えてくれました。
>>259 × rmdir G:\www\a\ /s /q
○ rmdir G:\www\a /s /q
ってことか?
262 :
nobodyさん :2009/02/05(木) 21:15:47 ID:r201bcdx
>>261 試しにさっき、
rmdir G:\www\a\ /s /q
やってみたら、これも消えてくれました。
でも、なぜあphpで書くと処理してくれませんね。
権限とかopen_basedirとか? 結果を取得するなりログを見るなりすればなんかでるでしょ
264 :
nobodyさん :2009/02/05(木) 21:55:05 ID:r201bcdx
いろいろやっていくいうちに、原因がわかりました。 ものすごくくだらないですが・・ まず、CをGと変更しているのに、削除しようとしているのは Cの方だったことがわかりました。 そこでもう一度視野を広げてみてみると、 原因はphpの編集ツールにありました。 CからGへapacheのルート?wwwディレクトリをコピーで移動させてからも、 そのツールの編集画面を開いたまま編集していました。 つまり、Gの方のphpを編集している気でいたら、Cの方のphpを編集しており Gの方のC:\\www\\aがそのままになっていただけでした。 ありがとうございました。
265 :
nobodyさん :2009/02/05(木) 21:56:40 ID:r201bcdx
訂正 すみません。原因はツールより、私の方にありました。
266 :
nobodyさん :2009/02/05(木) 22:48:44 ID:Gj5tVrB7
超くだ質ですが、お願いします。 [1.htmlの内容] <form name="form" action="./1.php" method="GET"> <input name="name" type="text"> <input name="name2" type="text"> <input type="submit" value="送信"></form> [1.phpの内容] <?php $name1 = $_REQUEST["name"]; ?> 値は<?php print $name1;?> 1.htmlのnameに山田、name2に太郎と入れてsubmitした時に1.phpのprintに 値は山田太郎 と出力させるようには出来ないのでしょうか?
$_REQUEST["name"] . ' ' . $_REQUEST["name2"]
269 :
nobodyさん :2009/02/05(木) 23:04:00 ID:Gj5tVrB7
270 :
nobodyさん :2009/02/05(木) 23:08:37 ID:ApJraLWL
永続接続を使った場合apacheの待機プロセスorスレッドの分だけデータベースにスレッドが立ったままになっちゃいますけど そういうものなんですか psコマンドで出すとズラーっと並んでいて気になります
つまり気にしなくておk?
OKかどうかは、運用と鯖のパワーバランス
わかりました ありがとう
275 :
nobodyさん :2009/02/06(金) 01:07:33 ID:Zd9hNyvT
20090206 を書式化して 2009年02月06日 としたいのですが、やはり一度分割して配列に入れる方法しかないのでしょうか?
echo date( "Y年m月d日", strtotime( "20090206" ) );
278 :
nobodyさん :2009/02/06(金) 01:37:39 ID:3pSilmD2
一般的になコーディング方法について教えてください。 私は以下のようにしてコーディングしているのですが、 このスタイルは間違っていますか? <?php class Test{ // 送信ボタン名 private $_submitButtonName = "test_submit"; // フォームを出力する public function print_form(){ print "<form action=\"{$_SERVER["PHP_SELF"]}\" method=\"POST\">\n"; print "<input type=\"text\" name=\"textarea0\">\n"; print "<input name=\"{$this->get_submitButtonName()}\" type=\"submit\" value=\"送信\">\n"; print "</form>"; } // 送信ボタン名を返す public function get_submitButtonName(){ return $this->_submitButtonName; } // 送信されたかチェックする public function determineSubmit(){ if( isset($_POST[$this->get_submitButtonName()]) ){ return true; } else{ false; } } } // END class Test
279 :
278 :2009/02/06(金) 01:38:02 ID:3pSilmD2
$obj = new Test; $obj->print_form(); if($_SERVER["REQUEST_METHOD"]=="POST"){ if($this->determineSubmit()){ 〜 } } ?>
コーディングスタイルに正解も間違いもないよ
>>278 普通はHTMLタグはページ用のファイルに書くんじゃないかな
submitボタンのname属性も可変にする必要ないと思うけどするなら、
<form action="test.php" method="POST">
<input type="text" name="textarea0">
<input name="<?=MyConst::SUBMIT_BUTTON_NAME?>" type="submit" value="送信">
</form>
set_submitButtonNameしたいときもあるかもしんねぇだろwww
>278 クラス名が具体性を欠く。$obj = new Test; の1行からは、何をしたいのかという意図が全く伝わってこない。 そもそもそのクラスは、「何を」表したクラスなんだ?アプリケーションか?ユーザーからのリクエストか?今から生成するフォームか? クラス内の処理が実質的に全てstatic。こんなクラスはインスタンス化する意味が無い。 ボタン名をconstにして全てstaticメソッドにする、あるいはクラス自体を取っ払って単なるグローバル関数にする。 ボタン名を定数ではなく変数にする意味は? 変数を使うというのは「この値はスクリプトの実行中に変化する可能性がある」という意思の表明でもある。だから「変わる数」なんだよ。 動的に変わるならばそのままでもいいが、もし仮に実行中に変わらないならば定数にすべきだ。 determineSubmitという関数名。回りくどい上に、意味がおかしい。サブミットされたかは、このメソッドが決めるわけじゃない。 百歩譲ってもcheckSubmitted()。 俺ならisSubmitted()もしくはsubmitted()。boolを返す事が自明になるし、どっちの場合にtrueが返るのかも分かりやすい。 それとアプリケーション構造として、処理に必要になる値の存在だけをチェックすべきだ。 textarea0に文字が入ってさえいれば、サブミットボタンが押されてようが爆発してようが別にどうでもいいだろ? サブミットされたかは関数なのに、POSTかどうかの判定は変数を直接見ている。記述のレベルが揃っていない。 「好きな食べ物は辛いものと糖質を75%以上含むものです」なんて言わないだろ?同じレベルの記述では抽象度を揃えろ。 「辛いものと」なら「甘いもの」だし、「糖質を75%含む」ならば「カプサイシンを10mg含む」だ。その時興味のあるレベルに揃えるんだ。 つまりif( isPosted() && isSubmitted() ) か、if( $_SERVER["REQUEST_METHOD"]=="POST" && isset($_POST[[$key]) 。
284 :
283 :2009/02/06(金) 02:34:31 ID:???
クラスは、クラスが必要なところでだけ使えばいいんだよ。
クラスを使う事が偉いのではない。クラスを使うことで分かりやすい/保守しやすいコードを書く事が偉いんだ。
「なんでクラス使ってるの?」と聞かれて、答えられるか?説得する必要はないが、自分なりの回答が存在するか?
ttp://d.hatena.ne.jp/masayang/20081211/1229033163 その程度の処理にクラスを持ち出すのは、このコードと同じ事をしている。
クラスや関数などの中間層は、増やせば増やすほど何をやっているか分かりにくくなる。
$this->determineSubmit()
より
isset($_POST['test_submit'])
の方が分かりやすい。具体的に何をやってるか、メソッドの定義部を読みに行く手間も省ける。
ま、練習中なら、過剰なまでに抽象化するのもひとつの経験だけどな。
285 :
nobodyさん :2009/02/06(金) 02:38:16 ID:y9gQg+aR
PDO の質問です。 $id = 1; $sth = $pdo->prepare('select * from hoge where id = ?'); $sth->execute($id); で、実行したバインド済みのSQL(select * from hoge where id = '1') を取得したいんですが、方法はありますでしょうか。
>>284 そりゃそうだ
時給制や残業制とは無能であればあるほど金がもらえる仕組みなんだよ
これくらいなら僕でもできるもん!
>>285 間違ってるかも・・・
詳しくは先輩から聞いてください><
$id = $_GET["id"];
$sth = $pdo->prepare('select * from hoge where id = ?');
$sth->blindParam(1,$_GET["id"])
$sth->execute();
>>288 まず日本語学んだら?
>で、実行したバインド済みのSQL(select * from hoge where id = '1')
>を取得したいんですが、方法はありますでしょうか。
290 :
288 :2009/02/06(金) 03:53:28 ID:???
すまんね。書き直します。
PDO の質問です。
$id = 1;
$sth = $pdo->prepare('select * from hoge where id = ?');
$sth->execute($id);
以上のコードの後に、パラメーターがバインドされた形の
実際に実行されたSQL文を取得したいのですが、方法は
ありますでしょうか。
* 上記の例では "select * from hoge where id = '1' " を得たい。
. 簡単にいうと getLastQuery() 的なもの。
>>287 , 288, 289
日本語スマソ
お分かりの方お願いします。
はい?285=288なの?
292 :
285 != 288 :2009/02/06(金) 04:01:32 ID:y9gQg+aR
まちがえt
295 :
291 :2009/02/06(金) 04:16:12 ID:???
わからねーよ 蛸
296 :
285 ◆Oto8cICx9k :2009/02/06(金) 04:23:43 ID:y9gQg+aR
めんどくさいから鳥つけた
>>293 結構読んだはずなんだけど分からんかった。
user noteまでは読み切ってないので、どのへん〜だけでも
ヒントくれたら助かります。
結構ではなく全部読め
自作自演ですか?
299 :
298 :2009/02/06(金) 04:33:07 ID:???
そうです俺馬鹿なもんで
きもい〜★
なんかエッチな気分
表現が稚拙だな
304 :
nobodyさん :2009/02/06(金) 06:29:21 ID:IlUhJl+1
スレ違いかな…
phpと.htaccessの質問なのですが…
.htaccess中のRewriteEngineを使用して拡張子の書き換えを行い、
htmlへアクセスした際、phpへリライトするということをしたいです。
[例]
http://www.***.com/cgi/sample.html ↓
http://www.***.com/cgi/sample.php で、
RewriteRule ^(.*)sample.html(\?.*)?$ $1sample.php$2
と、設定するとうまく動作してくれるのですが、
RewriteRule ^(.*)/cgi/sample.html(\?.*)?$ $1/cgi/sample.php$2
と、設定すると404(not found)となってしまいます。恐らく、リライトのルールに合致しない為
書き換えが行われていないのだと思います。
なんで…なんでなのぉ〜(号泣)
phpは全く関係ないな。こじつけにもほどがある。 このスレ、そんなに頼りになると思ってんの??ありえん。 # mod_rewriteスレがあるよ
>>304 こんな感じじゃない?
RewriteRule ^([^\/].*)/cgi/sample.html(\?.*)?$ $1/cgi/sample.php$2
308 :
278 :2009/02/06(金) 11:46:08 ID:3pSilmD2
返信遅くなりました。 私としては、”意味のまとまり”をクラスとする、 というつもりです。 先のTestクラスは意味を表していないので例として間違っていました。 申し訳ありません。 例えば、先日私は「郵便物の配達履歴」のプログラムを組みました。 そこでは、 (1)郵便物を登録するクラス ・登録フォームを出力 ・ユーザの入力が間違っていないか(番地は数字と-のみとか)チェック ・過去の履歴を検索してユーザの入力を助ける ・郵便番号からDB中の住所を検索する etc (2)過去に登録した郵便物を検索するクラス ・フォームを出力する ・ユーザが入力した情報から過去の郵便物を検索する ・検索したものを編集/削除する etc (3)ログイン時の認証をするクラス を用意しました。
309 :
278 :2009/02/06(金) 11:46:44 ID:3pSilmD2
続・308
意味のまとまりをクラス化し、
そのクラスに関係する情報はそのクラスで全て管理する、
という気持ちでやっていたので、
>>278 のような感じになりました。
(確かに、
>>283 さんのいうようにボタン名はconstにしたり、
if( isPosted() && isSubmitted() ) を用いるべきでした。)
私はJava、C++メインなためどうしてもクラスありき、
(といってもJavaもC++も大した力はありませんが・・・)
で考えてしまうのですが、
PHPは必ずしもそうではない、ということでしょうか?
PHPはクラスありきではない。 PHPはスクリプト言語、スクリプトからクラスを使う。 しかし、実質的にクラスベースっ"ぽい"開発もできる。 あとは好みの問題。
Javaのスキルも程度が知れるな
クラスってなにかくんですか?
MVC
MDD
TDD
MVC意識してるのにうまく分離できない VとCがくっついたりVとMがくっついたり・・・
やまだくんです
まだやくんです
>>308-309 基本的にどの言語だろうとクラスの本質は変わらないはず。
オブジェクト指向で書けるようになると戻りたくないというのも解る。
…が、その設計は果たしてどうだろう?
クラスはその名の通り型(intやstring、ひいては構造体等の)であって、
(そのような側面もあるが)名前空間が本領ではない。
クラスの本質は「データとメソッドを結びつける」ことによって、
自身の振る舞いを知っている型として纏まって独立し、
型・コードの再利用は勿論、カプセル化やポリモーフィズムなど様々な恩恵を生み出す…。
そこで話を戻すとその内容はクラス、というよりも
デザインパターンの話になってしまうのではないか。
まずはパータンの前に郵便物情報のクラスを作ってから、
それをActiveRecord/MVCのModelとかにして、
そいつに郵便物情報の処理を適切にスタティック/インスタンスメソッドなり追加して
その外側からViewやControllerで操作する…というのが私見。
# Javaや.NETのクラスライブラリの中から処理形態として類似したものを真似てみるのもいいかと。
>>319 そんなクラスの一般論なら、クラスでググればいいだけだろ。
うざいからほどほどにしてくれ。
「デザパタの前に実装してPHPのくせを先に学ぶのを先にした方がいい」
って私見ぐらいは語ってもいいけど、デザインパターンが通じない開発者の方が少数派だろ。
321 :
nobodyさん :2009/02/06(金) 14:46:21 ID:iuyfFTeY
いまのPHP三大フレームワークは以下のものと認識してもよろしいでしょうか? cakePHP シンフォニー zendフレームワーク
=>フレームワークスレ いけ
CI yii Framework
JavaはPHPより難しい 2日で諦めた 俺低脳だし
PHPを諦めたの?それとも人生?
329 :
327 :2009/02/06(金) 14:59:27 ID:???
はい 馬鹿です^^
ここにいる人 きもっ〜>_<
何むしゃくしゃしてるの?悔しいの?
くだらんケンカはよそでやれ
[PHP]IDを出さずにくだらないケンカをするスレ[質問]
自演で長文投下してるやつ、キモイな
キモ
336 :
nobodyさん :2009/02/06(金) 18:02:25 ID:Iyeu5pU3
pearでこれは覚えろっていうパッケージを教えてください
ない
>質問スレで運悪く、ろくな答えもよこさないくせに態度のでかいヘボ回答者 >にあたってしまったが、他への心象を気にして強く出れなかったお方 ロクな回答者に絡まれると大変ね
ロクな回答者に絡まれたら良いじゃん
つうか、ここで質問してまともな回答を期待する方が、頭オカシイだろ 腐った回答でも、それ全部食っていいのをチョイスできる勇者だけが生き残る
助けてもらって当然、与えてもらって当然、他人に右往左往してもらって当然、って考えてる子が多い
そんなこと言っててもエサを投げればすぐ食いついてくるくせに( ´∀`)σ)Д`)
XREAスレが静かになったと思ったらこっちでファビョってたのかqqq
このての分野ってキモイ人間多いよな
お前が一番だから心配すんな
キモイ人間てすぐ反応するよね 典型的に態度に出るからフイタわ
お前が一番そうだから心配すんな
キモイ人間にとって、このスレは快適なのさ
キモヲタに「キモイ」って言うと ものすごい反応するよね。
お前が一番そうだから心配すんな
344 :nobodyさん:2009/02/06(金) 23:05:54 ID:??? このての分野ってキモイ人間多いよな 345 :nobodyさん:2009/02/06(金) 23:06:38 ID:??? お前が一番だから心配すんな 346 :nobodyさん:2009/02/06(金) 23:13:40 ID:??? キモイ人間てすぐ反応するよね 典型的に態度に出るからフイタわ 347 :nobodyさん:2009/02/06(金) 23:14:08 ID:??? お前が一番そうだから心配すんな 348 :nobodyさん:2009/02/06(金) 23:14:18 ID:??? キモイ人間にとって、このスレは快適なのさ 349 :nobodyさん:2009/02/06(金) 23:14:20 ID:??? キモヲタに「キモイ」って言うと ものすごい反応するよね。 350 :nobodyさん:2009/02/06(金) 23:14:41 ID:??? お前が一番そうだから心配すんな
344の必死さにワロタw
この流れをみれば必死なのは反応の早い彼だと思うがあえてスルーしとこう
いつもの基地外君はさっさと潰しとかんと迷惑だからなぁ
>>355 2ちゃんねるは自己紹介をする場所ではないのです。。。
お前が一番そうだから心配すんな
PHP→Javaはベース→ギターに似てるな。逆は割と簡単
361 :
266 :2009/02/07(土) 01:21:58 ID:nwjNO9JF
先日はお世話になりました。性懲りもなく本日もかなりのくだ質ですが、ちょっと 行き詰まり気味なのでお願いします。 00.htmlの内容 <html><head> <script language="JavaScript" type="text/javascript"> <!-- function send (url){ document.form_orz.action=url; document.form_orz.submit();} //--></script></head> <body> <form name="form_orz" action="./01.php" method="GET"><td> <input type="text" name="xxx"> <input type="submit" value="送信x"> <input type="text" name="yyy"> <input type="button" value="送信y" onClick="send('./02.php')"></td> </form></body></html> 01.phpの内容 <?php $xxx=$_REQUEST["xxx"]; echo "値は$xxx です"; ?> 02.phpの内容 <?php $yyy=$_REQUEST["yyy"]; echo "値は$yyy です"; ?>
362 :
266 :2009/02/07(土) 01:22:41 ID:nwjNO9JF
つづき
同じform内では複数のsubmitを使うのはちょっとコツが要るっぽいので
ぐぐってあちこちを調べた結果、javascriptを使ってこのように書きました。
結果としては普通に動きますけど"送信y"をクリックした時に別窓で結果の値を
表示させたいのです。そこでjavascriptのwindow.openなるものを知りまして
00.htmlの<script>〜に次のように書きました。(
>>361 で書いたものは//で消して追記しました)
window.open(url);
document.form_orz.target = "yyy";
document.form_orz.method = "post";
document.form_orz.action = "url";
document.form_orz.submit();
これだと確かに新しく別窓が開くのですが「値は です」という表示でうまく受け渡しが
出来ていない様子です・・・。このように別窓で結果の値を表示させるようにするには
どのようにすれば良いでしょう?多分、window.open周りだと思うので本来ならばこのスレ
ではなくてjavaのくだ質スレが見つからなかったのでこちらに書かせて頂きました。
window.open(url, "yyy"); targetの"yyy"とウインドウの識別名を一致させないとダメ
というか、どう考えてもPHPの話題じゃねえだろ。
今年中にはPHP覚えまくって稼ぎまくろうかと思う
11ヶ月もかけるのか・・・
PHPで情報サイトを作ろうと思います。 さあ大変だ
しかし、ある一握りの子達は、大変指導に時間と手間がか かりました。彼らは「なぜ」という問いを持つことを面倒がり、 早く答えの出せる技術だけにこだわり続ける子供達だったか らです。決まった解き方に当てはめて、早く答えを出すこと。 「じゃあ、なんでこれで答えが出るんだい?。君はどういう考え 方をしてこの式を立てたの」と、正解の並んだ算数の文章題 のプリントを前に聞き返すと、彼らはみんなとても嫌な顔をし たり、あるいは質問の意味が分からないと言うようにきょとん としたものです。
営業中
371 :
nobodyさん :2009/02/08(日) 01:17:06 ID:DxNfF4Ma
$html = '<strong>{$text}</strong>}'; と言うように変数の中に文字列で変数が入っているとします。 $textの箇所に文字を入れて太字にしたいので $text = "あああ"; echo $html; としたのですが、反映されません。 どのようにして変数内の変数に値を渡すことが出来るのでしょうか?
$html = "<strong>{$text}</strong>";
さて、原因はどっちでしょう @$htmlの宣言の時点で$textの中身が空っぽだから A$html宣言のときに「"」じゃなく「'」で囲ってるから
374 :
371 :2009/02/08(日) 01:24:19 ID:DxNfF4Ma
>>372-373 'にしないと文字列として変数が扱われないのではないですか?
Smartyの簡易版のようなことがしたくて、
タグやファイルを変数で読み込んで、その中の{$test}と言う箇所に
予め指定していた値を渡したいのです。
str_replaceなどで置換すれば出来ますが、ちょっとやり方が違うような気がして・・・
>374 無理。プログラムは上から順に実行されるから、 $html = "<strong>{$text}</strong>}"; と書いたら、その時点での$textの中身が反映されて$htmlに入る。 (シングルクォートはダメでダブルクォートが正解な。これはマニュアル読んで来い) つまり、 $text = 'うんこ'; $html = "<strong>{$text}</strong>"; $text = 'ぬるぽ'; echo $html; だと、<strong>ぬるぽ</strong>が出力されてガッされる。
377 :
371 :2009/02/08(日) 01:30:08 ID:DxNfF4Ma
もちろん試しました が、中身は消えます
378 :
376 :2009/02/08(日) 01:31:08 ID:???
何を大嘘書いてるんだ俺は。 うんこが出力されてガッされない、が正解。
>>374 自分でテンプレエンジンも作れない雑魚レベルなら素直にsmarty使え
>>371 eval() や include() を使って評価する
function replace($template, array $params = array()) {
extract($params);
return eval('return "' . preg_replace('/"/', '\\\\"', $template) . '";');
}
echo replace('私は{$name}です。', array('name' => '371'));
381 :
nobodyさん :2009/02/08(日) 11:20:52 ID:DarObAIw
定義したhello関数を$testに格納して、呼び出したいところでecho $testを書いたのですが $test = hello();の時点で出力されてしまいます hello関数を$testに格納して、自分が呼び出したいところで使うにはどうしたらよろしいでしょうか? function hello() { return "<p>こんにちは</p>"; } $test = hello(); #このあたりに別の処理をおいてます echo $test;
>>381 それはない。
helloでreturnしないでechoしてんじゃないの?
>>381 もしくは勘違い。html見てみるがよろし
384 :
nobodyさん :2009/02/08(日) 12:43:55 ID:WhrhZbLr
秒数を、 "時間:分数:秒数" のフォーマットにしたいのですが、そういう関数があれば教えて下さい
>>382 どういうこと?381のreturnをechoにすると$test=hello();が実行されるの?
echo $testしないと出力されるわけないじゃん
>>384 string date ( string $format [, int $timestamp ] )
>>385 >>381 のソースならhello()の段階で出力されたりしない。
出力されてるとしたらfunction hello のコードか、
もしくは別の場所が間違ってるという風にエスパーした
function hello(){echo"こんにちは"} #ここまではなにも表示されない $hensu=hello(); #ここで表示される echo $hensu; #ここも表示される あれ?なんで? 変数に関数を格納しただけで関数って実行されたっけ?
391 :
nobodyさん :2009/02/08(日) 15:46:17 ID:mhFiPpin
>>389 別の言語を知っているのをひけらかすために下らない質問をするっていうのも
このスレの趣旨にはあってるのかもな。
まさに、下らない
cなら格納しただけで実行はされないのにPHPってクソだな
w
echoしてくれたほうがいい
普通関数内でechoしても関数を実行されない限りは動かないはずなのにな 関数を変数に格納するだけで動作するとか変な仕様だな
配列の最後の添字を得たいのですが、簡単な方法ありますでしょうか? 自分なりに考えてみたのですが、回りくどいような気がするので $i=1; foreach($icarr as $key => $val) { $hai[$i]=$key; $i++; } echo $hai[$i-1];
てか、変数にしなくても、 hello(); だけで表示されるくね
>>395 $x = hello();
PHPではこれは実行なんだよ。
$x = function hello() {}
なら、格納だが。
Cでカスだったやつは、PHPに来てもカスだな
400 :
nobodyさん :2009/02/08(日) 16:47:42 ID:F6PnIVyb
変数$a,$b〜$zまであって、 とりあえず、初期値を$a = 0,$b=0,・・・$z=0 にしたいんですけど できる限りすっきり書く方法ってありますか? あれば掲示おねがいします
PHPの言語は何の言語で作られてますか?
愛
>>401 phpの72%は勢いで出来ています
phpの17%は波動で出来ています
phpの6%は言葉で出来ています
phpの3%は理論で出来ています
phpの2%は成功の鍵で出来ています
[php] 攻撃:89 素早さ:21 防御:77 命中:86 運:45 HP:139 [c] 攻撃:36 素早さ:29 防御:59 命中:13 運:95 HP:223 php vs c 戦闘開始!! [c]の攻撃 MISS [php]は攻撃を回避した。 [php]の攻撃 HIT [c]は120のダメージを受けた。 [c]の攻撃 HIT [php]は1のダメージを受けた。 [php]の攻撃 HIT [c]は92のダメージを受けた。 [c]の攻撃 MISS [php]は攻撃を回避した。 [php]の攻撃 HIT [c]は128のダメージを受けた。 [php]が[c]を倒しました(ラウンド数:3)。
>>400 $a = $b = $c = $d = $e = $f = 0;
>>400 無理やりやってみた
foreach (get_defined_vars() as $varName => $varValue) {
if (ctype_lower($varName)) $$varName = 0;
}
というか初めから $var['a'] $var['b'] $var['c'] という風に
連想配列でやった方がいいんじゃないの?
>395 クロージャを格納するのと関数の実行結果を格納するのは別の操作だ。JavaScriptで言うと var hoge = hogeFunc(); var hoge = hogeFunc; Cで言えば、関数ポインタを渡すのと関数の戻り値を渡す事の違い。 >400 for($loop=ord('a'); $loop <= ord('z'); $loop++){ ${chr($loop)} = 0; } うっかりループ変数に$iを使っちまったぜ…9番目の変数が$iなのを忘れていた。 まとめて初期化したいという事は、何らかのかかわりを持った変数群だろうから、配列にしておく事をお勧めする。 変数名に意味を持たせるのは地獄の始まりだしな。そもそも、この処理(可変変数)は禁呪に近い。地獄への直行便だ。 $aが実は「アルファベットaの登場頻度」とかだったとしても、俺なら連想配列を使う。 変数をその後どう使うつもりか、ちょっとだけ話してみ?誰かがもう少しマシなデータ構造を考えてくれると思うぞ。
409 :
408 :2009/02/08(日) 18:45:37 ID:???
ちなみに for($loop='a'; $loop <= 'z'; $loop++){ $$loop = 0; } も動く。どうせ黒魔術ならこれでもいいかもな。
$$loopの$が2つつくのってどういう意味ですか?
じゃそんなの教えんなよ
仕様で語りたいんなら、言語仕様の闘技場でもいってくれ。 いくらブログを呼んでもらえないからって、こんなところで、下らない持論を ひけらかさなくてもいいだろ。 みんなわかってて使ってるんだ。 たとえば、JavaScriptだって、関数言語ライクにかっこいいコーディングもできれば グローバル使いまくりで糞なプログラムだって書ける。 要は使う奴のセンスの問題。気に入らない言語仕様があるなら使わなきゃいいだけ
PHPがどうこうという問題ではなく、可変変数の類がタブー視されていない言語なんぞそうそう存在しないと思うが。 (その割に、類似機能を実装してる言語は多いけどな) ActiveRecordパターンとかSimpleXMLみたいな動的に構造が変わるものを実装しようとした場合には便利だが、基本的に悪手だろ。 「$a - $zまでを初期化したい」なんていうのは、>407-408で既出の通り、そもそも質問が(質問が前提としているデータ構造が)おかしい。
わからないから使ったことない俺の立場も考えて教えてくれよ!
いらっしゃいませ いっぱい echoしていってね!
初心者だからってバカにするなよ!!!!!
418 :
396 :2009/02/08(日) 23:48:11 ID:lPL/MCOf
>>405 両方とも要素が出てしまって、添字が出てきません
array_keysかければいいじゃん
count
$array = array('yahoo' => 'www.yahoo.com', '2ch' => 'www.2ch.net', 'google' => 'www.google.com'); $keys = array_keys($array); echo $keys[count($keys)-1]; // 'google'
422 :
nobodyさん :2009/02/09(月) 01:00:26 ID:3WrJzpwr
$aに含まれる連想配列の数は不定です。 この$aのキーを元に、2つの配列に分けたいと思います キーの先頭文字aとbを元に2つの配列に分けたいのですが どなたかご教示お願いいたします $a['a1']=1; $a['b201']=2; $a['b31']=2; $a['a23']=0; $a['b1']=2; $a['a300']=1; $a['b42']=1; $a['b3']=2;
423 :
nobodyさん :2009/02/09(月) 01:06:58 ID:FohDFk4k
【OS名】Windows XP Pro x64 【PHPのバージョン】php5.2.6 【連携ソフトウェア】EXCEL 【質問内容】 PHPからEXCELファイルをCOM経由で操作したいのですが、 何か良いマニュアルもしくはサンプルはありませんでしょうか?
>>422 PHPのバージョンぐらいは提示しといた方がいいぞ
比較的新しいバージョンなら
$aa = array();
$ab = array();
foreach ($a as $key => $val) {
if ($key[0] = 'a') {
$aa[$key] = $val;
}
else if ($key[0] = 'b') {
$ab[$key] = $val;
}
else {
}
}
>>423 php excelで検索すれば、いっぱい引っかかるから、良さそうなの適当につまんでみて
426 :
nobodyさん :2009/02/09(月) 03:00:22 ID:1doMXVgO
セキュリティのことでお聞きしたいんですが (板違いならすいません test.php?num=○○ というのがあって ○○にSQL文をうたれる場合があるんですよね? ○○は整数なので、is_numericを使えば完璧ですか?
ctype_digit()のがベター
いや適切にエスケープすりゃ整数だの数値だのどうのと考える必要ないだろ
じゃどんなのがスマートなんだ
php5ならarray_intersect_ukey使えばおk
>>424 新しいバージョンとか明示しといて新しい技術が使われてない件
433 :
nobodyさん :2009/02/09(月) 11:53:59 ID:3Lbj9zQQ
配列のキーと要素をarray_walkでくっつけたいのですが うまく動作しません どなたかアドバイスお願いします $ary=array("a"=>"001","b"=>"002","c"=>"003); function test($value,$key) { $s= $key.$value; } $a = array_walk($ary,"test")); echo $a;
434 :
nobodyさん :2009/02/09(月) 12:05:26 ID:zB3vQynG
phpで簡単に日付計算してくれる関数ないの? mysqlみたいにintervalみたいなやつあったら便利なのに
shitsumonnha gutaitekini
>>433 すまんreturnはarray_mapだった
array_walkは第一引数を参照で指定みたいね
438 :
nobodyさん :2009/02/09(月) 12:36:49 ID:zB3vQynG
439 :
nobodyさん :2009/02/09(月) 12:55:30 ID:3Lbj9zQQ
ありがとうございます 値を引き継げないのでarray_walkは諦めます
>>439 ヒント:要素に要素とキーをくっ付けて入れて戻して連結
443 :
nobodyさん :2009/02/09(月) 16:48:36 ID:7eq/MQEm
mb_substitute_character()で何も指定しない状態で echoすると設定されているものが表示されるとマニュアルに あるのですが、実際にechoすると63という数字が 表示され、これがいったい何を意味してるのか分りません 63の意味と他にはどんなものが用意されているのか 知りたいので関連したページでも結構です教えてください
444 :
nobodyさん :2009/02/09(月) 16:51:17 ID:9eTCLU3p
分からんから教えて hoge.incというファイルに<?php ?> でくくらないfunctionを入れて別のファイルから呼び出して evalでPHPにして使いたいんだけど includeと組み合わせてできないの? eval(include("hoge.inc"));ってやってみたけどそのままソースが表示された。 <?php ?>でくくればいいだけの話なんだけど、evalも使ってみたいと思って。 外部ファイルと組み合わせる時、evalってどうやって使えばいいの?教えてYO!
>>444 returnして変数にいれるか、obで取得
file_get_contentsで十分だろ
449 :
nobodyさん :2009/02/09(月) 17:17:12 ID:9eTCLU3p
>>447 お前天才。一発解決だわ。
あとさー、file_get_contentsでwikipediaのソースを取得したいんだけど
なぜか403になるんだよ。なんで?
他のサイトはソースが取得できるのにwikipediaだけは無理なの。
なんで?
>>450 damare kono chimpo yarou
>>449 具体的なURL貼ってくれ
試してみるから
>>451 kutabare kusare manko babaa
454 :
nobodyさん :2009/02/09(月) 18:58:53 ID:9eTCLU3p
おれがやってみたらあれだその・・ Hostヘッダ出さないとアクセス拒否る方式だったよ。。2chも同じ感じ
456 :
nobodyさん :2009/02/09(月) 19:15:51 ID:9eTCLU3p
あれれ こっちではそれで取って来れるな
458 :
nobodyさん :2009/02/09(月) 19:25:26 ID:9eTCLU3p
>>455 発見した!!
mankoの部分をURLエンコードした日本語にすると問題なくいける
%E5%B0%8F%E6%B3%89%E7%B4%94%E4%B8%80%E9%83%8E
アルファベットなら本来URLエンコードする必要ないのにな。
なんで?
教えれ!
459 :
nobodyさん :2009/02/09(月) 19:27:25 ID:dUyWPnKH
php5+ImageMagick6でsetCompressionQuality()を使いたいんだけど、 まったく画質が変わりません。 何をインストールすればいいのでしょう?
症状の出るソースをわざわざ改変しないでそのまま出せって どうせ、アルファベットといってもスペースとかが入ってたんだろ?
463 :
nobodyさん :2009/02/09(月) 20:49:31 ID:9eTCLU3p
>>460 フォームに入れてそれを次のページで出したいんだよ。
ソース全部だすからな。
おそらくpostで受信した文字が文字化けしてるんだと思うが全く分からん。
test.php
<form action="test2.php" method="post">
<input type="text" name="url" size=10><br>
<input type="submit" value="送信" name=post>
</form>
test2.php
<?php
if($_POST["post"]){
$URL = $_POST["url"];
$URL = "
http://ja.wikipedia.org/wiki/ ".$URL;
if ($stream = fopen($URL, 'r')) {
$a = stream_get_contents($stream, -1);
fclose($stream);
}
print $a;
}
?>
両方ともファイルはunicodeで書いているぞ。
464 :
nobodyさん :2009/02/09(月) 20:51:14 ID:9eTCLU3p
mb_convert_encodingもやってみたけど無理だった。 だれか〜、知ってる人教えて。
if($_POST["post"]){ ↑これって何をしている?
>>463 $URL = rawurlencode($_POST["url"]);
とでもしとけばいけるだろ
468 :
nobodyさん :2009/02/09(月) 22:01:42 ID:Qs8URjyA
>>465 何してるっていうか、それなかったらブラウザのURL欄にそのページのURL入れて開いただけで、スクリプトが全部動作しちゃうだろ。
前のページからそのpostが送られてきた時にだけその動作するようにしてるんだよ。
>>467 いけたー!!お前は神。urlencode()でやってたわ。
こんな関数知らなかったし。
いや、マジで今日半日粘ったが、こんなにあっさり解決できるとは。
ありがとなー。
469 :
nobodyさん :2009/02/09(月) 22:06:54 ID:FtaflIUs
内部エンコードと出力エンコードが違う場合は 文字列出力部分だけmb_convert_encoding使うか、 obの出力バッファ使って全部まとめて変換するか、 あるいはそれ以外の方法か、どれがいいですか?
470 :
nobodyさん :2009/02/09(月) 22:19:00 ID:WXM1ENAJ
preg_replaceで正規表現に一致したら指定の文字列を置き換えられますが、 置き換え後の文字列が空欄の場合、置き換えないようにするには どうすればいいのでしょうか?
置き換え後の文字列が空欄なら置き換えない? じゃ最初からpreg_replaceかけなきゃいいんじゃね?
>469 ob_を使ってまとめてエンコードを変換するとスッキリまとめやすい。 いちいちmb_*を使ってると、エンコードをいじる場所がコード内のあちこちに散りやすいからな。 個人的には出力内容を最初から文字列として保持しておく(コード内にechoは最後の一箇所のみ)のが好みだが、処理の流れはob_*と大差ない。 ビューとロジックが完全に分離してるとこういうのは凄く楽なので、余裕があるなら勉強するといい。
まとめてエンコードすると無駄なオーバヘッドかかるし余計なとこまでエンコードして 思わぬトラブルになったりしない? ビューとロジック分離っていうかロジックの出力を頭使わずに丸ごと変換してビューって言ってる感じじゃない? 凄く楽っていうか楽だけ追求してね?
楽だけ追求ワラタ
476 :
nobodyさん :2009/02/10(火) 01:40:45 ID:JZ5c+5nE
関数の呼び出しを変数で指定したいと思います。 $func = "TEST"; echo $func."()"; でecho TEST();が実行されるようなイメージなのですが無理です。 $funcの値を指定せずに、存在する関数を実行したいのですが どのような書き方をすればいいのでしょうか?
$func = "TEST"; echo $func();
__autoload() について質問させてください。
ttp://www.doyouphp.jp/php5/php5_autoload.shtml 上記urlを参考に同じ階層にあるクラスのオートロードは出来たのですが、
深い階層のクラスをオートロードすることが出来ません。
__autoload()では同一階層しかサポートされてないのでしょうか。
■ファイル構成
test.php
Class/Testclass.php
■test.phpの中
function __autoload($className) {
include_once $className . ".php";
}
$test = New Class_TestCass();
■TestClass.php
の中
class Class_Testclass{
public function Cass_Testclass(){
}
}
479 :
nobodyさん :2009/02/10(火) 05:24:11 ID:Y5D0wRGj
478です すいません、ID出すの忘れてました。
include_once "dirname/" . $className . ".php";
481 :
nobodyさん :2009/02/10(火) 12:30:18 ID:Y5D0wRGj
>>480 ありがとうございます。
確かにその方法なら深い階層も対応できますね。
しかし階層決め打ちということは、
下記のように用途によってディレクトリ分類された場合に対応できなさそうな感じですね。
Class/Mail/MailUtils.php
Class/Http/HttpUtils.php
__autoload()を使わず素直に include_once したほうが良いでしょうか。
ZendFrameworkみたいな感じにしたら?
484 :
nobodyさん :2009/02/10(火) 16:01:26 ID:SQlQ1ExK
表示に0.001秒ぐらいかかるけど、速いほうかな?
処理内容による
486 :
nobodyさん :2009/02/10(火) 22:09:13 ID:/0S9pNKD
PDOの永続的接続(PDO::ATTR_PERSISTENT)を有効にした際のことで質問させてください。 この接続で、クエリ発行時のフェッチモードにPDO::FETCH_CLASSを指定すると $sth = $dbh->query($sql, PDO::FETCH_CLASS, "classname"); 次の警告が出ました。(抜粋) PHP might crash if you don't call $stmt->setFetchMode() to reset to defaults on this persistent statement. 警告には"将来のバージョンで改善される"とあり、最新版ではなおっているようなのですが、PHP5.2.0ではこうなります。 このまま続けると、間もなくデータベース(MySQL)接続数の上限を越え、アクセスできなくなりました。 この警告の意味がよくわからないのですが、これは (1)「永続的接続が有効の場合、フェッチモードはデフォルトにしとけ」という意味でいいんでしょうか? (2)「使い終わった後デフォルトに戻しとけ」のような気もするし・・・ で、いくつかテストしてみると、 永続的接続無効ならPDO::FETCH_CLASSでいける、 有効のまま後で戻しても警告は同じ(警告が示すスクリプト中の行番号はクエリ発行(上記)の行) ということで、(1)の意味だろうと思ってるのですが、いまいち確信もてないというか、情報も見つけられませんでした。 回避策などありましたらお願いします。
最新版でそのバグが直っている可能性が高いわけで、とりあえず、バージョンをあげるってのが解ではないかな。 エラーメッセージの意味は、 永続的接続を使う時、後からfetchModeを変えるなよ。さもなければPHPはクラッシュするよ。(現バージョンでは) っていう意味だと思うので、 永続的接続を使うなら、最初っからfetchMode込みでPDOを有効にするとかで回避できないかな。(想像だけど)
488 :
486 :2009/02/10(火) 23:12:03 ID:???
>>487 ありがとうございます。
確かに"後から変えるな"でしたらツジツマがあいます。
レン鯖環境なのでPHPのバージョンアップは無理でして、
先に複数のスクリプトが動作している都合もあるため、
今回はPDO::FETCH_CLASSの使用を断念する方向で考えたいと思います。
尚、確認できた範囲では、この現象はPHP5.2.6では修正されていました。
<?php $filename = './sample.txt'; $fp = fopen($filename,'r') or die("ファイル({$filename})のオープンに失敗しました"); while ($i<10) { $line = fgets($fp,1024); print $line."<br>"; $i++; } fclose($fp); ?> この処理ってファイル全部読みこんでから1行ずつ参照してるの? それとも1行ずつ読み込んでるの?
490 :
nobodyさん :2009/02/10(火) 23:44:19 ID:zLX+VTwA
上げ忘れ
いや後者だろ
fopenで開いてるんだから一度全部ファイルを読み込んでますよね
494 :
nobodyさん :2009/02/11(水) 00:11:52 ID:ZREnIZbz
え?
495 :
489 :2009/02/11(水) 00:25:22 ID:ad9tMb4N
全部読みこんでるんすね
fopenってのは、ファイルハンドルを取得するだけ。 開いたり読んだりはしません。名前に騙されないように。
膨大な行数のテキストファイルを作って、 変数に追記しながら、memory_get_usageを出力したらわかるよ。
fopenって詐欺だよね。 なんもオープンしてないやん、っていう。
開いてるだろ。読んでないだけで。
>>498 おまえはサンプル動画ファイル開いた瞬間に全部把握できるんか?
>fopenで開いてるんだから一度全部ファイルを読み込んでますよね これはひどい
もしかしたらphpのfopenの実装は全部ファイルを読み込む実装になってるんじゃないか?
なんで?
505 :
nobodyさん :2009/02/11(水) 06:16:18 ID:fA4Wiagl
SJISで作ってるサイトで、mb_send_mailを使ってメール送信してるんですが メールタイトルだけが化けてしまいます。 化けるときと化けないときがあって、 「質問 山田」みたいなタイトルのとき、質問の後の空白部分に 半角スペースを何個入れるか、全角スペースを何個入れるかみたいな微妙な違いで それ以降の名前部分が化けるわけです (質問A みたいに、他の文字を追加しても化けます) どういうことなんでしょうか? タイトル全体のバイト数がカギかと思ったのですがそうでもなくまるで見当がつきません どうしたら化けないようにできるでしょうか、ご意見御願いします。 本文にもタイトルにも mb_convert_encoding(mb_convert_kana($title), "ISO-2022-JP", "SJIS"); といった処理はしてあります
phpのバージョンによってはバグがある mb周りの設定がわからないとエスパーするにも限界があるかと。 あとは、化ける場合と、化けない場合で、 mb_encode_mimeheader した結果がどうなるか試してみるとか。
507 :
nobodyさん :2009/02/11(水) 06:56:22 ID:2yeXD9TR
お願いします、POSTデータをtxtファイルに書き出してるんですが、htmlタグを 含んだ文字は出力できないんでしょうか? OSはXP、apache2.23でphpは5.28です。 $hen01 = $_POST["namae"]; $fp = fopen('x.txt', 'a'); flock($fp, LOCK_EX); $return = fputs($fp, "$hen01\n"); flock($fp, LOCK_UN); fclose($fp); このように書くと普通に改行つきでx.txtが生成されるんですが4行目を $return = fputs($fp, "<input value= "$hen01\n" onFocus="this.select();">"); なんて書くとエラーになって書き出してくれません。 微妙に"の位置を色々変えたりしたけどだめでした。
そりゃそんなダブルクオーテーションの使い方したらおかしい
""の中の"は\"にする
510 :
nobodyさん :2009/02/11(水) 07:13:20 ID:2yeXD9TR
>>508 >>509 ありがとうございます。
やっぱそうでしたか、、""が不適切なのは解りました。
仕様的にはhtmlタグも使えるって認識でいいんですよね?
\ は別の部分(カラータグ)で使ったのを思い出しました、エスケープ文字って言うんでしたっけ。
早速再挑戦してきます。
あとエラー出るならそれをちゃんと読まなきゃだめだよ
512 :
nobodyさん :2009/02/11(水) 10:25:50 ID:mmguShEj
すいません。Windows版のPHPで、 # PHP 5.2.8 installer [17,662Kb] - 08 December 2008 # PHP 5.2.8 Non-thread-safe installer [17,489Kb] - 08 December 2008 ↑ノンスレッドセーフって、どう違うんですか?
>>512 ノンスレッドセーフ版はスレッドセーフ版に比べてかかるコストが少ないため
スレッドセーフである必要がない場面でパフォーマンスを出すために使われる
Non-thread-safe の方をスレッドセーフなApacheやIISで動かすと死ぬ
スレッドについてはOS寄りの話だからググってくれ
fopenは全部読み込んでるだろzk $fpに代入してvar_dump($fp)してみろksg
>>513 あー「スレッドセーフじゃない」 って事じゃなくて、
「スレッド無しでもセーフ」って事ですかw
じゃぁNTS版でいいわけですね。りょうーかい&さんきゅ
>>515 困った子だねぇ、
<?php
$fp = fopen("test.txt", "r");
var_dump($fp);
結果:
resource(2) of type (stream)
てs
519 :
nobodyさん :2009/02/11(水) 21:31:55 ID:lrcGAYKJ
PHP_EOLで改行されない PHP Version 5.2.8
520 :
nobodyさん :2009/02/11(水) 21:44:11 ID:bJ9hTr4x
PHP Version 5.2.6です。
以下のソースみたいにCURL関数を使ってgifとかjpegとかにつなぐと文字化けしちゃうのはどうしてなんでしょうか?
ちゃんと画像を表示するにはどうしたらいいのでしょうか?
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,"
http://img.2ch.net/img/php_a.gif ");
curl_setopt($ch,CURLOPT_HTTPHEADER,array(
"Accept: image/gif, image/x-bitmap, image/jpeg, image/pjpeg",
"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)",
));
$output = curl_exec($ch);
curl_close($ch);
echo $output;
>>519 echo ord(PHP_EOL);
で何がでるかチェック。
文字化け?
よくDL制限付きのアップローダーを見るけど、 あれって、一度のダウンロードで、ファイルのフルパス取得してから 次からはそのフルパスでアクセスすれば、DL回数に反映されないんじゃない、 と思ってやってみたら、今のところ有名なアップローダーで全部成功した。
DL回数が反映されなくて何が嬉しいんだ
まぁそれはそうなんだけど、DL回数なのに?的な意味で。 でもDL回数に反映されなきゃ、そのフルパスからダウンロードすれば ファイル削除されることなくみんなダウンロードできちゃうけど、 でも、そうなったらアップロード主が消すと思うけど。
はい?DL回数に応じて削除されるもんなの?
>519 HTML中で改行してもブラウザ上の表示は改行されない。 header('Content-Type: text/plain'); としておくか、<br>を出力しろ。
>>528 DL制限を例えば10回な感じで設定して、アップロード。
↓
ファイルのダウンロードページにアクセスしたときに、DL回数がカウントされていく
↓
そのカウントが、設定した10回に達したら削除される
みたいな感じのアップローダー
そんなの簡易実装で充分だろ
>>529 <?php
header('Content-Type: text/plain');
print "aaa\n";
print "bbb";
?>
ほー
これだと改行されるんだ?
それだと改行されるって・・・
534 :
nobodyさん :2009/02/11(水) 23:35:24 ID:lrcGAYKJ
>>534 ん、Macか?、まぁ、いいや納得したんなら
falseのときも0返してくるのがイライラする 0をpostしたときと区別つかん
>>520 $ch = curl_init();
$timeout = 0;
curl_setopt ($ch, CURLOPT_URL, "
http://img.2ch.net/img/php_a.gif "l);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
$image = curl_exec($ch);
curl_close($ch);
header("Content-type: image/gif");
echo $image;
>>536 ===
知らんでPHPやってたんかw
>>535 確かにCRを返すところは納得してない@win
541 :
nobodyさん :2009/02/12(木) 00:31:48 ID:uAz9Jv0X
eclipseの環境の作り方を教えてくれたまえ
スレ違いだ
作り方も糞も、PleiadesあたりからAll-in-oneパッケージのPHPの奴落とせば一発だろ。
なんて素敵な言語なんだろう。 感動した。
>>540 すまん、ord出した人だけど、ordは最初の1文字だけだって後から気付いた
13 10 なら13が返るので正解っぽい。
546 :
nobodyさん :2009/02/12(木) 09:44:20 ID:YRRhxMXp
クッキーが消えません。PHP5です。 クッキーに上書きはできるのですが setcookie ("TestCookie", "テスト"); クッキーを削除したいのに消えないんです ↓ setcookie ("TestCookie"); 再度 $_COOKIE["TestCookie"];とすると テスト と表示されてしまいます。 過去の時間指定してもダメでした。なんとかなりませんか?
setcookieをしても$_COOKIEは新しくならない。$_COOKIEの値は、「リクエスト開始時のクッキーの値」だからな。 再度リクエストするとクッキーが消えているのが確認できるはず。 つうか開発者なら、HTTPヘッダーを確認できる状態にして、Set-Cookieヘッダを読め。
×ヘッダー ○ヘッダ
一ヶ月位前かな、このスレに「データー」と言ってる奴がいた。もちろんデータの事ね。 誰も指摘しなかったことに笑ったけど。
そんなことを一ヶ月前から引きづッテルおまえはA型
552 :
nobodyさん :2009/02/12(木) 10:40:44 ID:sBTdXhh1
整数0以上の値をチェックしたいのですがis_numericですと負の数もtrueになります 正の数のみ受け付ける処理をしたいのですがif(0 > $i)のようなやり方以外で 方法ご存知の方いらっしゃいましたらご教示お願いします
それ、文字列なんでしょ? 0-9だけで構成されてるかどうかを確認したいっていうエスパーであってる?
is_numeric($n) && $n > 0 でいいじゃん 比較演算子でできることをわざわざ関数で実装するとかありえん
>>550 してた記憶があるが?
仮にお前の言うとおりだとしてもお前もしてないんじゃんw
>>552 if($i > 0 and is_numeric($i)){
}
これでいいじゃないか
$iが0以上の数字で 数値の場合
しーたいぷ_でじっと()
>>555 ごめん。わざわざ書き込むのめんどかったし。
data そもそも英語でも語尾は伸ばさないのだから日本語になっても伸ばさないはずなんだけど
なぜかそいつは伸ばしてたんだよ。
でもレスしてるみんなもそれで理解してたみたいだし、まぁいいかなってw
559 :
556 :2009/02/12(木) 11:08:54 ID:???
かぶってたわ。
>>557 わざわざわかりにくく書かんでも
ctype_digit
数字で構成された文字列かどうかを比較。ただし、数値型だとfalseになる
>>558 うん、つまりそういうことだよ。一つ勉強になったね
正規表現使うとオーバーヘッドでダメになるような糞システムならハードをまず見直せ
>>552 例えば、一度floorなどのmath関数に通して数字にしてみる
とか
ifと演算子を使うやつは入門者レベル
嘘こけ低脳
PGならもっとスマートに書けるんだがな
>>554 よ16時までにもっともらしい回答がなかったら俺が答えてやる
>>564 スケーラビリティ気にする必要のない弱小システムさんにはもってこいですよね分かりますw
>>566 おいおい、floor通したら、バリデートにならんでしょ。
mod_match組み込んでるから大規模システムでも余裕な俺の会社は勝ち組
>>569 に期待
ctype_digitよりスマートな回答ってなんだろうな。
mod_macho組み込んでる俺は男前
ctype_digitだと0で始まっても真だろ
ctype_digitは完ぺきじゃないだろ
別にいいじゃん。(おれのシステムじゃないし)
だから君は三流のままなんだよ
css
^[1-9][\d]*$ これは、しょぼいよね。うーん。
[\d]の[]は要らんだろ 末尾の$は改行にもマッチする
ベクター画像をそのまま表示させてるサイトがどっかにあった あれどうやってんだろう
>>562 ,,..-----;-----、_
,r'''´ ;;、ミ ,)
;;:::::: 彡 i'  ̄ヽ
;;:::::::: 彡ノ |
;;::::::::: / ^|_ ィ'ミ,彡ミ 、
;;::::: / ヽ | U |_・) ミf_、 ,_ヾ彡 < 読解力ないのか
i;;;;;; ,i( `.| J | .ミ L、 t彡
>>552 は正の数のみ受け付ける処理をしたいそうだ
\;;/' ヽ_ヽ / ,> ヽ∀ ノ マイナスを通さなければいいんだろ?
∧ヽ、 i > /<V>ヽ
';;;;;;`、 \ \___」 || | |
;;;;;;;;;;;;\ `ーイ (L,_O
;;;;;;;;;;;;;;;; \ /7 | | |
;;;;;;;;;;;;;;;;;;; `'`i;;l _L」L」
;;;
>>562 ;;;;;;;; i';;i  ̄
>>565 、z=ニ三三ニヽ、
,,{{彡ニ三ニ三ニミヽ
/ ̄ ̄\ }仆ソ'`´''ーー'''""`ヾミi
/ \ lミ{ ニ == 二 lミ|
|:::::: | {ミ| , =、、 ,.=-、 ljハ
|::::::::::: | {t! ィ・= r・=, !3l お前が一番初心者なんだろ?
.|:::::::::::::: | `!、 , イ_ _ヘ l‐'
|:::::::::::::: } Y {.┬=、__` j ハ ̄"''─-、
ヽ:::::::::::::: } ,. -‐ へ、`ニ´ .イ / / ,, -‐‐ヽ
ヽ:::::::::: ノ /、 |l`ー‐´ / / -‐ {
/:::::::::: く / l l |/__|// /  ̄ /
_____ |:::::::::::::::: \ / l l l/ |/ / /
|:::::::::::::::::::::::\ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
>>567 、z=ニ三三ニヽ、
,,{{彡ニ三ニ三ニミヽ
/ ̄ ̄\ }仆ソ'`´''ーー'''""`ヾミi
/ \ lミ{ ニ == 二 lミ|
|:::::: | {ミ| , =、、 ,.=-、 ljハ
|::::::::::: | {t! ィ・= r・=, !3l 基本に徹するのがが一番いいんだぞ
.|:::::::::::::: | `!、 , イ_ _ヘ l‐' バカは正規表現なんかを使いたがるが
|:::::::::::::: } Y {.┬=、__` j ハ ̄"''─-、 速度が遅くなるんだぞ
ヽ:::::::::::::: } ,. -‐ へ、`ニ´ .イ / / ,, -‐‐ヽ
ヽ:::::::::: ノ /、 |l`ー‐´ / / -‐ {
/:::::::::: く / l l |/__|// /  ̄ /
_____ |:::::::::::::::: \ / l l l/ |/ / /
|:::::::::::::::::::::::\ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ifに複数の処理をさせるほうが遅いだろksg
if(($i - ($j = floor($i))) == 0 and $i > 0 and is_numeric($i)){ print "test"; } できた。整数だけ通して正の数で数字。 俺って天才じゃね?
>>588 、z=ニ三三ニヽ、
,,{{彡ニ三ニ三ニミヽ
/ ̄ ̄\ }仆ソ'`´''ーー'''""`ヾミi
/ \ lミ{ ニ == 二 lミ|
|:::::: | {ミ| , =、、 ,.=-、 ljハ
|::::::::::: | {t! ィ・= r・=, !3l 関数だって内部でifの処理してるんだぞ
.|:::::::::::::: | `!、 , イ_ _ヘ l‐'
|:::::::::::::: } Y {.┬=、__` j ハ ̄"''─-、
ヽ:::::::::::::: } ,. -‐ へ、`ニ´ .イ / / ,, -‐‐ヽ
ヽ:::::::::: ノ /、 |l`ー‐´ / / -‐ {
/:::::::::: く / l l |/__|// /  ̄ /
_____ |:::::::::::::::: \ / l l l/ |/ / /
|:::::::::::::::::::::::\ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
なんで$jに代入してんの?w
>>552 > 整数0以上の値
自然数もわからんのかここのPHPerども
>>589 $i = "+01e1";
if(($i - ($j = floor($i))) == 0 and $i > 0 and is_numeric($i)){
print "test";
}
結果:test
16進数も数字であることには違いない
16進数の話がどこででてきたの?
preg_match("/^[1-9]\d*$/D", $i); Dなんてあったんだね
>>599 16進数はダメだとも言っていない
整数であればいいんだろ?
603 :
569 :2009/02/12(木) 13:29:32 ID:???
じゃあそろそろ正解だしちゃうぞ if (ereg("^[0-9]+$",$i)) { print "test"; }
おまえ、569じゃないだろ。 そんな釣り餌にかかるのは俺だけw
>>603 if (ereg("^[0-9]+$",$i) and $i != 0) {
print "test";
}
>>604 なぜならお前が569だからな
はやくPG的な回答を求む。
1-9でいいし
>>608 それじゃ、-8になっっちやうじゃないか。
正の数が知りたいんだぞ。
条件式にandって書く奴、なんかスゲーひさしぶり
んなこたぁない
&&が主なプログラムってperlとかパイソンとかweb系に多いよな c++とかjavaとかのアプリ開発はandが一般的だし、
しまむらがいいかユニクロがいいか程度の違い
いや、 var_dump($x += 0 && 3); var_dump($x += 1 and 3); 結果の型すら変わる
それを書くなら var_dump(false || false && true); var_dump(false || true and true); こっちのほうがいいだろ。上がfalseで下がtrue
たかが自然数ごときでスマートな書き方もしらない自称上級者(笑
お前がキレイに書け
っていうか&とかめんどくさくね? shiftおしながら&とかキーも離れてるし。 andなら即入力できるわ。
と、初心者がお怒りのようです
if(
>>621 == "初心者"){
print "true";
}
と、初心者がお怒りのようです
と、初心者がお怒りのようです
と、初心者がお怒りのようです
と、初心者がお怒りのようです
なぁなぁ、俺をほっといて進行するなよ
635 :
nobodyさん :2009/02/12(木) 14:34:56 ID:lqdvRsSw
PHPでURLから変数を渡す場合、GETを使用して下記の通り入力しています www.nobody.jp/?id=20090212 これを、例えば2chのように www.nobody.jp/20090212/ としたい場合は、PHPの中身をどうしたらよいでしょうか? よろしくお願いいたします
コンパイルしなおすか?って話? ないない
mod_rewrite
ctype_digit((string)$i) これが一番
$i = "0123"; $i = $i*1; if (ereg("^[0-9]+$",$i) and $i != 0) { print "test"; }
>>641 0123でfalseにならないといけないわけでしょ。本末転倒
643 :
nobodyさん :2009/02/12(木) 15:07:28 ID:lqdvRsSw
>>638 ありがとうございます
家に帰ったら試してみます
そもそも10進数かどうかを判断する関数が無いPHPが悪い
$i = "0123"; if(ereg('^0+',$i)){ $i = "error"; } if (ereg("^[0-9]+$",$i) and $i != 0) { print "test"; }
君たちのレベルの低さに吐き気がする
煽りにいちいち反応するなよ。 言わせとけ。
$i*1 これ地味に使えるな
おまえらエディタは何つかってるの おれはphpエディタってやつ。 乗り換えようかな
今年のバレンタインデーはすごいヴぉ! 2/14 8:31:30 にUNIXtimeが「1234567890」になるんだっちょ。 チョコが貰えないorz、とかいって拗ねてる場合じゃないぜベイベー
654 :
nobodyさん :2009/02/12(木) 17:19:43 ID:aZX0AV9v
serializeしたデータの中にHtml要素の文字列があるとunserializeで失敗してしまうんですが、 これは回避できないんでしょうか
>>651 PwwwHwwwwwPwwwwエwwディwwwタwwwwwwwwwwwwwwwww
>>654 何がどう失敗で、どんなエラーメッセージが出るの?
658 :
nobodyさん :2009/02/12(木) 17:54:09 ID:aZX0AV9v
falseが帰ってくるだけでエラーは出てないようです。 調べてみたら ' があると駄目みたいです。¥を使っても駄目みたいです。
>>658 それは、serializeしたデータの保存&読みだしでデータが欠損してるんじゃないの?
serializeしてその場でunserializeしたらどう?
試してみたけどfalseなんて返ってこないで正常に実行できるけど
あたりまえだ
PHPエディタはCotEditorが一番だと思います
663 :
nobodyさん :2009/02/12(木) 18:21:26 ID:yggi4kx9
unixタイムから日数だけを得る方法を教えて下さい できるだけシンプルなのがいいです。 例えば去年の10月1日のタイムスタンプがあって、今年の2月2日のタイムスタンプがあった場合 その間は何日なのかが知りたいです
664 :
nobodyさん :2009/02/12(木) 18:24:59 ID:Xw2bfIqD
665 :
nobodyさん :2009/02/12(木) 18:29:43 ID:nDyTrHL0
ホームページにコメント機能を付けたいと思ってます 教えてください
666 :
nobodyさん :2009/02/12(木) 18:37:15 ID:aZX0AV9v
DBへ入れたものが駄目なようでした。 何かが違ってるようにも見えないんですが・・・・
>>666 addslashes()
これ使おうな
>>666 エスケープしてなかったら、保存もエラーになるでしょ。
エスケープを2重にやってるとかじゃない?
669 :
nobodyさん :2009/02/12(木) 20:53:37 ID:V/w7K2RO
404ページをオリジナリティかつ、トップページに戻れるようなデザインにするのって なんかデメリットある? デフォルトの404ページの方が良いみたいなことって特にないよね?
404に限らず全てのエラーページをオリジナルにしてる俺に謝れ!
404枚のオリジナルページを作るってこと? ん、デフォルトページも404枚あるの? そんなにバリエーション作ってたら管理しきれなくね?
>>669 サイトのブランドイメージとかそういうのもあると思うよ
しかもphp関係ないしweb制作板いけよ
HP制作会社なら404もしっかり作ってほしいね 趣味でやるなら別だけど
>>671 いや、べつに1〜404まであるわけじゃないよ。
大抵403,404,500だけあれば事足りる。
>>665 PHPでできるけど、
何も知らないところから勉強はじめたら、
3ヶ月はかかるよ?
> PHP ディレクティブ magic_quotes_gpc はデフォルトでは on で、 > 全ての GET、POST、COOKIE データについて基本的に addslashes() を実行します。 こんな数年前の情報が残ってるぐらいマニュアルがメンテされてないな どっちにしろ addslashes() が出てくる場面じゃない
>>678 お返事ありがとうです。
メールフォームが作れるくらいです。
データベースを使うことになるんでしょうか?
>>679 ブログも良さそうですね
>>680 おれ去年最新版入れたときまだデフォルトONだったよ
数年前とかいいかげんなこと言うな
>>682 未だに php.ini-dist を元にして使ってるいい加減な奴に言われたかないねぇ
php,iniのauto_prepend_file に複数のファイルを指定したいとおもっています auto_prepend_file = "HTML.php" は動作しましたが auto_prepend_file = "HTML.php:Debug.php" と書いたところエラーになってしまったのですが、 複数の場合どう記述すべきなんでしょうか? それともうひとつ質問があります 先にあげたauto_prepend_file と似たような要望なのですが、 指定したディレクトリのphpファイルすべてを あらかじめ読み込ませるのは php.iniで可能でしょうか?
>>684 今、win版5.2.8落としてみたら
php.ini-distはON
php.ini-recommendedはOFF
php.iniを作らずにコマンドプロンプトからphpinfo()したらON
デフォルトはONっていうのが正しそうだね。
php.iniのdistとreの違いって何ですか?
689 :
688 :2009/02/12(木) 22:55:07 ID:dX5bqrmp
あげわすれました
>>688 ,689
php.ini-dist は既存環境との互換性を重視した設定
古いスクリプトがうごかねぇぞと言ってくる、理解してない人でも動かせるように用意されている
php.ini-recommended はPHPの設計者が推奨する設定
新規開発はこれを基にする
magic quotes についてはデフォルトがOFFと考えるのが普通
今のところデフォルトはONだが、まともなやつはOFFで設計するっつうことだ。
693 :
680 :2009/02/12(木) 23:17:16 ID:???
マジッククォートの件は俺が間違っていたな、悪かった
>683 echo (phpversion() . "\n"; print_r(get_class_methods('DateTime')); 5.2.5 Array ( [0] => __construct [1] => format [2] => modify [3] => getTimezone [4] => setTimezone [5] => getOffset [6] => setTime [7] => setDate [8] => setISODate ) マニュアルが無いのは、かなり新しい関数だから。
695 :
nobodyさん :2009/02/13(金) 00:29:51 ID:D5WxhWPp
while($row = mysql_fetch_array($result)){ ・・・ } で、mysql_num_rows($result)=10のとき、 whileが0〜5回繰り返しまでは$aの操作を、 6〜10回までは$bの操作を、 という風に一気に10回繰り返えさずに 分けて繰り返す方法がありましたら教えてください よろしくお願いします。
696 :
nobodyさん :2009/02/13(金) 00:35:03 ID:yq9DBS5q
このような構造の20個のデータをmysqlで保存したとします このときピンポイントで1ってところのデータのみ取り出すにはどのようにしたらよろしいのでしょうか? ■■■■■ ■■■■■ ■■■1 ■ ■■■■■
■は全部同じ値??
table a b c d e ■■■■■ ■■■■■ ■■■1 ■ ■■■■■ なら、 $sql = "select * from table limit 3,1"; で、dを配列で取り出す
→$sql = "select * from table limit 2,1";
>695 ループ回数を数えておく変数をひとつ定義すれば好きなようにできるだろ。 $i = 0; while($row = mysql_fetch_array($result)){ if($i < 5){ a($row); } }
途中で送信しちった。$i++をどっかでインクリメントな。 つうかmysql_関数は時代遅れだから使うな。mysqli_系の関数、もしくはPDOを使え。
つうか++$iのがいいだろ
706 :
nobodyさん :2009/02/13(金) 02:44:16 ID:vhWCyXdF
>>635 ですが
>>638 さんに教えていただいたことを調べて見たんですが
よく分かりませんでした
どなたか具体的に教えていただいてよろしいでしょうか
何が分からなかったんでしょうか?
phpでムーバブルタイプのブログを作ってみたんですが phpとmysqlが動くレンタルサーバーを探すのが大変なので、 レンタルサーバー上にphpファイルをおかずに済ませようと考えています そこでローカルでphpを動作させ、ブログの記事であるhtmlファイル作成 ftp関数でアップロードする方法を考えました しかし気になることがあるのですが、 リモート上でスクリプトを作動させ、htmlファイルを作るより ftpでhtmlファイルをアップロードするほうが、 負荷がかかってしまうんじゃないかと心配しています 実際どうなんでしょうか?
>>710 とりあえず>>1
なんか知ってる単語すべて並べてみました的な内容だな(ry
と蛇足は良いとして
逆に質問するがそんなにアクセスがあるサイトなのか?
一日の総アクセス数は?
同時アクセスは最大いつなんだ?
そもそもサイトは秒単位で更新しなきゃならないサイトなのか?
> phpとmysqlが動くレンタルサーバーを探すのが大変なので、 めっちゃありふれてるのでは?
>>704 dが重複のデータを持ってたらダメっぽくない?
元質問者の意図が曖昧すぎるから答えようが無い
716 :
nobodyさん :2009/02/13(金) 10:34:56 ID:X27qI4tl
【OS名】CentOS 5.2 【PHPのバージョン】php5.2.5 【他の設定】 ルータに80番ポートだけ開けてローカルのサーバを公開してます。 DNSはレジストラ提供のDNSサービス 【質問内容】 mb_send_mailにてメールを送信した場合hotmailや特定の企業に届きません。 $sender = "テスト@xxxxx.jp"; $from = mb_encode_mimeheader(SENDER_NAME,"SJIS","UTF-8")." <".$sender.">"; $to = "テスト@hotmail.co.jp"; $bcc = ""; $subject = "テスト"; $body = "テスト"; mb_language("Japanese"); mb_internal_encoding("UTF-8"); $body = mb_convert_encoding($body,"ISO-2022-JP","UTF-8"); $headers .= "From: ".$from."\n"; $headers .= "Bcc: ".$bcc."\n"; mb_send_mail($to,$subject,$body,$headers); とりあえず自分の使っているプロバイダのSMTPを利用してメールを送信している状況です。 ウェブサーバからメールを送信したいのですが、どのようにすればよいのでしょうか?
hotmailや特定の企業に届かないとして、 gmailやyahooメールには届くんでしょうか? 自鯖だけに届くとかいう落ちではないですよね。 届かないというとき、バウンスメールは返っているのでしょうか。 OP25の関係のような気もするけど。 相手先固有の問題だとすると、80番を開けているサーバからはメールを受け取らないとか そういう相手方のフィルターかもしれないですよ。 まぁ、mb_send_mailの問題じゃないから、板違いかもよ
718 :
716 :2009/02/13(金) 11:00:14 ID:???
>>717 ありがとうございます。
SPFなども影響してそうなので他の板で質問してみます。
>>706 おまえw
$_SERVER['PATH_INFO']でググレksg
何が?
722 :
nobodyさん :2009/02/13(金) 20:26:14 ID:z8n3Lehc
php 5.2.6ですが、 こっちは表示されるのに、 <?php phpinfo(); ?> こっちは表示されません <? phpinfo(); ?> この書き方では動作しなくなったのだと思いますが、いつからでしょうか? 何というキーワードで調べたら良いのか分かりませんでした。
723 :
nobodyさん :2009/02/13(金) 20:30:15 ID:/1Tm7nmx
short_open_tag
short_open_tag設定次第 設定に依存しない<?phpを使うようにすればいいだけ
どういたしまして また何かあったらお気軽にどうぞ
727 :
722 :2009/02/13(金) 22:34:12 ID:???
>>727 なんて態度
お前なんかさっさとし・ね ハート
729 :
nobodyさん :2009/02/13(金) 23:45:17 ID:D5WxhWPp
pdoでfetchAll()で、試しに返り値が空(行数0)のセレクトしたら、 エラーで Fatal error: Call to a member function fetchAll() on a non-object in って言われた。 これは単に、データがありませんってことではない? false返してくれるのかとおもい、if($row = $result->fetchAll()){・・・}else{・・・}ってやってみたけど elseしてくれずに上のエラー。 どないしたらええんや。お助けください。
>>700 インクリメントでできました
ありがとうございます
731 :
nobodyさん :2009/02/13(金) 23:47:03 ID:D5WxhWPp
>>700 インクリメントでできました
ありがとうございます
プレースホルダ使ってるならプリペア段階で処理を分岐してみたら?
733 :
nobodyさん :2009/02/13(金) 23:59:02 ID:D5WxhWPp
>>732 わかりました、ちょっと調べてやってみます
734 :
nobodyさん :2009/02/14(土) 00:11:46 ID:3Pie4ZQq
php6の新機能について解説してたサイトをブックマークしたのですがなくしてしまいました どなたかご存知の方おりましたらおしえてください
>729 それ以前、prepareが失敗してる。SQL文がおかしい。 prepareの返り値はPDOStatement型だが、失敗するとfalseが返る。 で、falseに対しfetchAll()メソッドを呼んでるからそういうエラーになるわけだ。 (接続失敗時は例外を投げる、とドキュメントにあるんだが、実際にそういう挙動をする。ドキュメントが古いのかバグなのかは知らん)
736 :
nobodyさん :2009/02/14(土) 00:35:09 ID:KQ2Mn8Wx
テキストの空行を削除したいのだけどどうすればいいですか?
>>736 file_put_contents("output.txt", preg_replace("/(?:\x0d\x0a|[\x0a\x0d]){2,}/", "\n", file_get_contents("input.txt")));
739 :
nobodyさん :2009/02/14(土) 00:56:22 ID:t4r/C+ZK
>>732 始めは、prepareとか使わずにqueryで、sql文の中にも直接変数を入れていたのですが
そのprepareを見よう見まねでbindしてみたところ、
今のところエラーもなく思い通りの結果がでてきました。
>>735 なるほど、prepare自体をしてなかったのがエラーの原因ということでしたか。
phpにもmysqlにもまだ慣れておらずpdoもよくわかってないのでもうちょい調べて
みることにします。
ありがとうございました。
下質スレで語る人って(ry
>>738 たかが空行削除するだけで、
こんなにたくさん書かないといけないんだ?
確かに誰でも一度は $data = sort($list); なんてのをやったはず
変数の頭に$付けるのウザ杉。 何の意味があるのかさっぱり分かんねえ。 誰だよこんな糞言語作ったの。
$じゃなくて、£ならよかったのか?
>>749 そうか?
見やすくていいと思うけど
それより関数名がださすぎる、一貫性がない、引数の順番で混乱する
それでも楽だからPHPで書いてるが
スレチだ
そうそうなんでもかんでも$とかアホかと、 もっと、配列は@、ハッシュは%とかわかりやすくしれ
perl厨房はうせろ
どっかのpe言語みたいで嫌だ
>753 >749は尤もだが、お前の言い分はPHPの言語特性を理解してないの丸分かりで格好悪いぞ。
758 :
nobodyさん :2009/02/14(土) 15:31:28 ID:mQ2YcNed
session_regenerate_id(true)とするとセッションが切れることがおおいけど 何か対策はあるのかな?trueを入れない以外で。 ゆっくりページ移動するとかリロードを連打しなければ切れないけど。
Ajaxとか使いまくって重いページ表示にすればそういうこともある罠
>>758 なんか、思いこみで書いてない?
F5アタックで切れても問題がないところで、regenerateするだろ普通、
古いページを無効にするためのID更新なのに、古いIDのまま連打したらこけますって言われてもなぁ。 そうですかとしか。
ScanDirでディレクトリのファイル 一覧を取得するとファイル名 '.'と'..'というファイル名が混じっているのですが、 これは何でしょうか?
>>762 .ドット
.. ドットドット
でググレ
無名関数なんていらねー 難読になるだけだから実装しないでいいわ
767 :
nobodyさん :2009/02/14(土) 17:41:51 ID:CGIm9AbT
上でも出てきましたがf5アタックをphpで防ぐにはどのようにしたらよろしいでしょうか?
記録した以前のipと時間が、時間内に一致したらアクセスできないようにする
>>767 apacheで対策したほうがいいって話ではなくて?
>>770 スクリプト仕込まれた画像だから閲覧禁止
おもちゃの画像だからどうしても見たけりゃ見ればいい
$ ↓ (^ω^;) これでいいお
>>770 チグリスユーフラテスはおらぬか、チグリスユーフラテスは・・
774 :
nobodyさん :2009/02/14(土) 19:23:11 ID:brjzsDYF
セキュリティテストのために画像にPHPスクリプトを埋め込む方法を教えてください
,php → .jpg
776 :
nobodyさん :2009/02/14(土) 19:44:41 ID:brjzsDYF
できましたら正式な画像(バイナリ)への埋め込み方を教えてください
正式なって何?
画像にPHPスクリプトを埋め込んでもうれしくないだろ 普通はJavaScriptを埋め込むもんだ。そっちで調べてみ?
779 :
nobodyさん :2009/02/14(土) 20:50:35 ID:VuUyjgB9
どうもはじめまして こんなのってありなんですか? $name = htmlspecialchars(mysql_real_escape_string($_POST['name']));
ありって何が?
二重にエスケープされるんじゃないですか?
htmlspecialcharsがエスケープ...?
>>779 データーベースにつっこみたいなら、mysql_real_escape_stringだけをつかう。
画面に表示したいなら、htmlspecialcharsだけを使う。
これが基本
画面(笑)
785 :
706 :2009/02/14(土) 21:34:45 ID:sjJzqBh5
>>785 おれが示したpath_infoは華麗にスルーですね
(1)苦手な事や興味の無い事にはとことん文句をつけ避けたがる (2)思い通りにならないと泣き出す。 (3)自分がつまらない事はみんなもつまらないと思っていると勘違いするらしく みんなの同意を得ているかのような発言。 (4)たしなめられると裏切られたと傷つく。 (5)自分の知っている事は世界認識だと勘違いしていて知らない人を見下す。 上司や取引先は自分の(偏った)知識以上の知識があって当然 無いなら無能。 (6)自分のやり方が一番合理的だと勘違いしているのでみんなに俺流を押し付けて引っ掻き回す。 (7)仲良くしてくれる人は自分を崇拝していると勘違いして無理を押し付けたり平気で傷つける。 (8)少し欠点を指摘されると消えたくなる。 (9)いつも主役の自分しか演じられない。
全部お前のことじゃないか
ばれたか
>>753 そう?
perlみたいだとどれが変数でどれが配列かを見分けやすいけど
使いわけるのめんどいし。
かといってjavascriptみたいに$さえないとどれが変数なのかさえ分からない。
自分で書いたソースでもjavascriptは久々に見ると分かりづらいよ。
txtName, intWidth, blnDelete とかがわかりやすい
>>790 > 自分で書いたソースでもjavascriptは久々に見ると分かりづらいよ。
そ、それ、$がついたら見やすくなるんですか。
793 :
706 :2009/02/14(土) 23:00:51 ID:sjJzqBh5
>>786 これから返信する予定でした(*‘ω‘ *)
とりあえず$_SERVER['PATH_INFO']よりmod_rewriteの方が
スマートな気がしますので、まずはそちらを試してみます。
ありがとうございます。
スマートw
俺はRubyのルールが好き。 ・小文字、アンダースコアで始まる場合は一時変数 ・大文字で始まる場合は定数(グローバル定数/クラス定数) ・@で始まる場合はインスタンス変数(PHPでいうクラスのプロパティ) ・@@で始まる場合はクラス変数(PHPでいうクラスのstatic変数) ・$で始まる場合はグローバル Perlの命名規則もあれはあれでいいのだが、PHPとは相性が悪いしな。 >793 path_infoの方がオススメ。 mod_rewriteは、サーバーにmod_rewriteをインストールする必要がある。自分でいじれないサーバーだとお手上げ。 あと、書き方が結構難しいので初心者にはお勧めできない。
じゃあperl使えばよろし
797 :
706 :2009/02/14(土) 23:32:34 ID:sjJzqBh5
>>795 インストール?はされてるみたいです(ロリポップ)
難しいっていうのはどういうところがでしょうか?
アホには使えない。 実際お前は使えてないだろ。
アホでも使えるよ。 実際お前は使えてるんだろ。
「ワンワンどれ?」と聞かれてるのに「僕は車が好きなんだ」と返答するのは コミニュケーションとしてなりたってないからね。
>>798 はXOOPS CUBE
こないだ警察に呼び出されて注意された
(女性に対するストーカー行為で)
803 :
795 :2009/02/15(日) 00:03:46 ID:???
>797 単純に、mod_rewriteのルールの書き方が難しい。
あなたのおつむが足りないだけという発想はないのでしょうか
仕方ないね
806 :
706 :2009/02/15(日) 00:39:27 ID:eLN8IqbH
>>803 単純な正規表現での置換ですよね。
う〜ん……
>>806 ほれ
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?id=$1 [QSA,L]
808 :
706 :2009/02/15(日) 01:58:27 ID:eLN8IqbH
>>807 出来ました。ありがとうございます。
^/の/が悪さをしていたみたいです。
あと、Baseも
あの誰か居ますか?
いるよ
812 :
810 :2009/02/15(日) 03:23:28 ID:Y9ylJZck
呼び出してすいません 解決しました。 PHPとMYSQLで一言掲示板を作ってるんですよ、でっ 文字数を制限させたいと思ったんですけど <input name="post" type="text" value="" size="40" maxlength="100" /> これで制限されました 失礼しました
>>812 それだと偽装できちゃうから
サーバサイドでもmb_strlenとか使って、調べた方がいい
>>812 セキュリティ関係はちゃんと人に聞いたほうがいい。
あなたが思いついた方法は、画面の見た目を変えるだけ。
なんら制限になっていない。
詳しくは関連キーワードでググりまくるといい。
815 :
nobodyさん :2009/02/15(日) 03:36:46 ID:Y9ylJZck
>>813-814 お返事ありがとうございます
なるほど。
mb_strlenですね。調べてきます
mysqlならvarchar(100)とかにしとけば勝手に切れるでしょ
817 :
nobodyさん :2009/02/15(日) 08:29:52 ID:DOB4o/WN
メタデータ(microformat)のクローラーを作りたいんだが,検討がつかないので質問.
使える言語は,C/C++,php
phpでの(簡単な)スクレイピング処理ならやったことがある.
やっぱり
ttp://sourceforge.net/projects/phpcrawl/ みたいなの使って,コンテンツGETした後に解析をかけるんだろうかね.
(phpcawlはアクセス間隔の制御がないので叩かれていたが)
質問になってない
_____ /::::::::::::::::::::::::::\ _ /::::::::::::::::::::::::::::::::::::::\ /  ̄  ̄ \ |:::::::::::::::::|_|_|_|_| /、 ヽ はぁ?黙ってろデブw |;;;;;;;;;;ノ \,, ,,/ ヽ |・ |―-、 | |::( 6 ー─◎─◎ ) q -´ 二 ヽ | |ノ (∵∴ ( o o)∴) ノ_ ー | | /| < ∵ 3 ∵> \. ̄` | / ::::::\ ヽ ノ\ O===== | :::::::::::::\_____ノ:::::::::::\ / |
820 :
nobodyさん :2009/02/15(日) 08:44:43 ID:DOB4o/WN
>>818 スマンコ
作るための指標やら知識へのポインタをいただければと存じます.
以下のコード、セキュリティ対策?で、 $file = htmlspecialchars($file); を使いたいのですが、 そうするとリンクが無効になってしまいます。 他に方法ありませんか? また、$url は正規表現の判定だけでは不十分ですか? $url = $_GET['url']; if (preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $url)) { $file = file_get_contents($url); $file = strip_tags($file, "<a><br>"); echo $file ; }
$url = $_GET['url']; if (preg_match('!^(?:https?|ftp)://[\-\.~\w/\?&=\+%]+$!', $url)) { $file= file_get_contents($url); $file= mb_convert_encoding($file, "SJIS", "UTF-8,JIS,EUC,SJIS"); $file= preg_replace("!<img\b[^>]*alt=\"?([^\"\s]+).*?>!is", "$1", $file); $file= strip_tags($file, "<a>"); $file= preg_replace("!</a>\s*!i", "</a><br>\n", $file); echo <<<HTML <html><head> <meta http-equiv="Content-type" content="text/html; charset=Shift_JIS"> </head><body> {$file} </body></html> HTML; こんな感じでどうよ
823 :
nobodyさん :2009/02/15(日) 10:31:56 ID:Ky9cwee/
デザインとロジックを分ける練習をしてます 【ロジック】 $bunshou = "ここは文章です"; 【デザイン】 <div id="bunshou"> <p>{bunshou}</p> </div> 上のようなテンプレートで{bunshou}を書き換えるには file_get_contents使って正デザインを$dezainに読み込み規表現で{bunshou}を見つけて$bunshouに置換し デザインをすべて置換し終わったら、$dezainを出力という処理でよろしいでしょうか?
>【ロジック】 > $bunshou = "ここは文章です"; それは、ロジックじゃなくてモデルな。 モデルは、モデルオブジェクトを作っておく。 読み込んだあと、DOMパーサーにかけて、DOM毎に適切なクラスを割り当て、 そのクラスにモデルを注入。 それぞれに適切なビューハンドラーも作成して注入したうえで、 次にビジネスロジックを適用。 最終的な結果を出力する
ロジックが記述してある部分をモデル層と呼ぶのだから、間違いとは言い切れない。
置換が入ると重くなるのであまりお勧めはしない。
Smartyなどのテンプレートエンジンは、テンプレートを実行可能なPHPコードに変換したものをファイルとして保存して変換を最初の一回だけにしている。
PHPだけで処理するなら、OOPが良く分からない初心者にも手の届く簡単な方法はこんな感じ。
●1.グローバル変数を使う
---model.php---
$bunsyou = 'ここは文章です';
require_once'view.php';;
---view.php---
<div id="bunshou">
<p><?php echo $bunsyou ?></p>
</div>
●2.特定の名前空間に変数をextractする
60行で作るPHP用テンプレートエンジン
ttp://anond.hatelabo.jp/20071030034313
826 :
nobodyさん :2009/02/15(日) 14:21:42 ID:X/0BOQfC
>>825-826 様、ありがとうございます
テンプレートエンジンはpreg_replaceで置換する処理が入ってるのでしょうか?
827 :
823 :2009/02/15(日) 14:22:29 ID:X/0BOQfC
IDが変わってるのは電話回線を使用のためです
テンプレートエンジンっていっても、全部一緒じゃないからね。 ただ、単純にpreg_replaceを使ってるのは見たことない。
829 :
nobodyさん :2009/02/15(日) 15:16:40 ID:U3AeQpvt
質問よろしくお願いします。 PHPでuuidを生成したいのですが、 どうすればよいのでしょうか?
>>829 初期値を入れてインクリメントしていけばいい
831 :
829 :2009/02/15(日) 15:32:54 ID:U3AeQpvt
>>831 マニュアルのuniqidを見て。
その中のコメント欄に書いてあるから
833 :
829 :2009/02/15(日) 16:14:44 ID:U3AeQpvt
>>832 エクステンションがあったんですね!
知りませんでした。
ありがとうございました!
>826 入ってるか入っていないかで言えば、入っている事が多い。実際Smartyの実装を見たが、preg系の関数を使っている。 だが、単純な正規表現置換処理以上の事を行なっている事が多い。 テンプレートエンジンを使った事があれば分かると思うが、ループとか変数代入とかマクロの機能を備えたテンプレートエンジンが多い。 最低でもforeach/while/for相当のループ処理と外部ファイル埋め込み辺りは使えないと使い勝手が悪すぎるからな。 これらは当然単純な置換だけでは実現できないわけで。 ただ、>823の仕様で作るなら正規表現による置換でいいと思う。
ってことはそこらのテンプレートエンジンより
>>823 のコードのほうが高速ってことだ
使い勝手は最悪だがな
マイクロフォームってすごーい
838 :
nobodyさん :2009/02/16(月) 03:52:06 ID:auGQVbhI
SQL文うたれたかログ取ることできますか?
できるよ
840 :
nobodyさん :2009/02/16(月) 04:01:20 ID:auGQVbhI
どうすればいいのでしょうか? ヒントだけでもお願いします
841 :
nobodyさん :2009/02/16(月) 05:22:10 ID:JCetDnNo
PDOでMySQLにデータを書き込んでいるんですが 1行のみのINSERTならトランザクションをかける必要はないんでしょうか?
>>840 $qu = mysql_query("select ...");
if($qu == true){
fwrite
}
843 :
nobodyさん :2009/02/16(月) 07:28:07 ID:ketESsJg
php4のattributs()関数って php5のDOMElementsでのどれに当たる? getAttributeだと指定しなきゃいけないから,困ってる.
845 :
nobodyさん :2009/02/16(月) 11:19:22 ID:bKWxUOrT
$array = array("name"=>"あああ"); という連想配列を echo "name=あああ"; として出力したいのですが、foreachで出力する方法以外で 良い方法やかんすうはありませんでしょうか?
846 :
841 :2009/02/16(月) 11:21:53 ID:t9SYRsc5
>>845 まぁ、foreachが適切だけどな。
foreachに感謝しないやつってなんなんだろうな。
Do While
each
ArrayIterator
array_shift
array_reduce
素直にforeachを使います
>>845 配列名が分かってるなら
print $array["name"];
で。
だいたい何でもforeachばっかり使うやつってなんなんだろうな。
forより速いとか都市伝説だし。
質問の内容を把握できてなさすぎだろ 挙句にハッシュでforの話題が出てくる始末
>>850 foreachよりクリーンな処理を書いてから言えよ
_____ /::::::::::::::::::::::::::\ _ /::::::::::::::::::::::::::::::::::::::\ /  ̄  ̄ \ |:::::::::::::::::|_|_|_|_| /、 ヽ はぁ?黙ってろデブw |;;;;;;;;;;ノ \,, ,,/ ヽ |・ |―-、 | |::( 6 ー─◎─◎ ) q -´ 二 ヽ | |ノ (∵∴ ( o o)∴) ノ_ ー | | /| < ∵ 3 ∵> \. ̄` | / ::::::\ ヽ ノ\ O===== | :::::::::::::\_____ノ:::::::::::\ / |
敗北宣言乙
AA張ったり難癖付けたり忙しい奴だな
_____ /::::::::::::::::::::::::::\ _ /::::::::::::::::::::::::::::::::::::::\ /  ̄  ̄ \ |:::::::::::::::::|_|_|_|_| /、 ヽ はぁ?黙ってろデブw |;;;;;;;;;;ノ \,, ,,/ ヽ |・ |―-、 | |::( 6 ー─◎─◎ ) q -´ 二 ヽ | |ノ (∵∴ ( o o)∴) ノ_ ー | | /| < ∵ 3 ∵> \. ̄` | / ::::::\ ヽ ノ\ O===== | :::::::::::::\_____ノ:::::::::::\ / |
858 :
やまは :2009/02/16(月) 17:00:23 ID:9drq1RmM
質問です。 name.datには 0<>山田 1<>鈴木 2<>山口 3<>小笠原 と書いています。 この中に会員がいるとして、会員ファイルには次のように書いています 0<>山口 1<>小笠原 この時、名前ファイルをループさせて、会員のみ、名前に★を付けたいのですがどうしたらよいでしょうか? これが考えてみたソースです。 【続きへ】
859 :
やまは :2009/02/16(月) 17:01:03 ID:9drq1RmM
【続き】 <?php $file1 = file("./name.dat"); $file2 = file("./member.dat"); foreach($file1 as $value1){ list($no,$name) = explode("<>",$value1); foreach($file2 as $value2){ list($no2,$name2) = explode("<>",$value2); if($name == $name2){ $memberflag = 1; }else{ $memberflag = 0; } } echo "名前:".$name; if($memberflag) echo "★"; } ?> これではなぜダメなのでしょうか?
if($name == $name2){ $memberflag = 1; break; }else{ $memberflag = 0; } breakしなければflagに1たったあともループ続くから0に上書きされる
同じ名字の人がいたらどうすんだ・・・?
データファイルのをこのようにしてみることをすすめる id,name,user 1,高橋,1 2,斎藤,0 3,田中,1 そしてuser項目の1と0だけ判別して会員かどうか判別すればおk
863 :
nobodyさん :2009/02/16(月) 19:07:34 ID:icGEckGX
$_GETした数字をそのままPDOで、sql文のbindしたparamの変数に 入れると、思ったような結果が得られません。 〜省略 $sql = "select a from table where a = :P"; $result = $pdosetuzoku->prepare($sql); 〜 $result->bindParam(":P",$p,PDO::PARAM_INT); $result->execute(); $p = $_GET["p"]; で例えば、select a from table where a = 1、には、 確かにデータがあるし、$pも確かに1になってるんですが、 この$pを上のpdoにとおしてそのデータを取得しようとすると、 dumpするとarray(0) { } と返ってくるんです。 なので適当に$p = $p*1など、$pの値を数字型にすると、dumpの結果がarray(20) {〜〜〜 }みたいにずらっと 出てくるのですが、いろいろ調べてみるとosなんかの環境次第でそうなるみたいなんです。(当方windows2000 php5.2.6) そこで、$pを確実に数字型で返せればいいと思ったのですが、どうすればいいのでしょうか。 できればgetが文字型であった場合は、任意の数字型の数字で返すようにしてみたいです。 よろしくおねがいします。
数字型・・・ $_GETはいつだって文字列だよ だから、PDO::PARAM_STR にしてみたら? PDO::PARAM_INTがいいんならキャストしたっていいけどさ。
866 :
nobodyさん :2009/02/16(月) 19:42:19 ID:icGEckGX
>>864 そうなんです
たしかにそうなんですが、
PDO::PARAM_STRにしても、array(0) { } と返ってくるんです。
で、どうしようもなくて、param_intでしようとしたんです。
キャスト調べてみました。
$p = (int) $p;
とすることでうまくいきました。
こんな基本的なことだったんですね
もしもgetしたのがabcdとか文字だった場合の$pも0になってくれてました。
ありがとうございました
このintは、数字以外のものも、必ず数字(0)にしてくれるのでしょうか
何か例外などなければ、もうこれをつかおうと思うのですが。
よろしくおねがいします。
配列やオブジェクト、booleanなどからキャストすると0ではなく1になることもある キャストの一覧がマニュアルにあったけど・・
868 :
nobodyさん :2009/02/16(月) 20:24:11 ID:7/DgmfYM
window vistaにapache2.2、php5.28をインストールしました そのあとにmysql5.1をインストールしたのですがphp5.2.8では使えないのか動きません 諦めてmysql4.1にしたところphp5.2.8で使うことができました mysql5.1はphp5.2.8では使えないのでしょうか?
869 :
やまは ◆2ch.net/cU :2009/02/16(月) 20:34:44 ID:9drq1RmM
_____ /::::::::::::::::::::::::::\ _ /::::::::::::::::::::::::::::::::::::::\ /  ̄  ̄ \ |:::::::::::::::::|_|_|_|_| /、 ヽ はぁ?黙ってろデブw |;;;;;;;;;;ノ \,, ,,/ ヽ |・ |―-、 | |::( 6 ー─◎─◎ ) q -´ 二 ヽ | |ノ (∵∴ ( o o)∴) ノ_ ー | | /| < ∵ 3 ∵> \. ̄` | / ::::::\ ヽ ノ\ O===== | :::::::::::::\_____ノ:::::::::::\ / |
やヴぇえええええええええええ sqlite使うのに成功したぁああああああああ おめでとう自分 ありがとう自分^^v
874 :
nobodyさん :2009/02/16(月) 21:30:14 ID:eMAPxKGb
windowsでphp5.2.6を使ってます 今回xdebugをインストールしたいのですがどれをダウンロードしてきたらいいのかわかりません スレッドセーフ、非スレッドセーフというのは翻訳して調べたのですが このスレッドセーフかどうかを調べる方法も合わせてご教示お願いします Windows binariesの欄に以下の6つのdllがあります 5.2 VC6 Non-thread-safe 5.2 VC6 5.3 VC6 Non-thread-safe 5.3 VC6 5.3 VC9 Non-thread-safe 5.3 VC9
意味がわからない
878 :
nobodyさん :2009/02/16(月) 21:44:38 ID:eMAPxKGb
すいません、5.2の非スレッドーセーフのdllでいいみたいでした
ただphpinfoにxdebugが表示されなくて困ってます
php.iniの[PHP]の項目のところに以下の記述をしました
dllはD:\php5\ext\php_xdebug.dllにあります
zend_extension_ts ="D:\php5\ext\php_xdebug.dll"
xdebug.manual_url = "
http://jp2.php.net "
xdebug.collect_params = On
xdebug.dump.GET = *
xdebug.dump.POST = *
どなたか解決策ご教示おねがいします
なんでそんなにxdebug使いたいの?
>>877 数量のフォームに0.1+0.1って入れても通るらしいんだ。
フォームに入れた文字列を計算してるみたい。
phpならそういう現象がおこせるんじゃないかという話。
javaサーブレットは無理だから。
アホかお前は
eval知ってるぐらいでいばるなよ
Fatal error: Call to intolerant joke in
>>883
885 :
 ̄ ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄ :2009/02/16(月) 22:28:07 ID:1ERhBs+i
_____ /::::::::::::::::::::::::::\ _ /::::::::::::::::::::::::::::::::::::::\ /  ̄  ̄ \ |:::::::::::::::::|_|_|_|_| /、 ヽ はぁ?黙ってろデブw |;;;;;;;;;;ノ \,, ,,/ ヽ |・ |―-、 | |::( 6 ー─◎─◎ ) q -´ 二 ヽ | |ノ (∵∴ ( o o)∴) ノ_ ー | | /| < ∵ 3 ∵> \. ̄` | / ::::::\ ヽ ノ\ O===== | :::::::::::::\_____ノ:::::::::::\ / |
残念ながら俺はもやしの方だ
887 :
 ̄ ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄ :2009/02/16(月) 23:40:22 ID:1ERhBs+i
_____ /::::::::::::::::::::::::::\ _ /::::::::::::::::::::::::::::::::::::::\ /  ̄  ̄ \ |:::::::::::::::::|_|_|_|_| /、 ヽ はぁ?黙ってろデブw |;;;;;;;;;;ノ \,, ,,/ ヽ |・ |―-、 | |::( 6 ー─3─-3- ) q -´ 二 ヽ | |ノ (∵∴ ( o o)∴) ノ_ ー | | /| < ∵ 3 ∵> \. ̄` | / ::::::\ ヽ ノ\ O===== | :::::::::::::\_____ノ:::::::::::\ / |
>>878 違う php.ini を読み込んでるとかApacheを再起動してないとかはないよな
php.ini の書き方はそれであってるが、コマンドラインからでもモジュールを確認できる
> C:\PHPへのパス\php.exe -m
とやって結果に次の項目が含まれていれば認識している
> [Zend Modules]
> Xdebug
890 :
nobodyさん :2009/02/17(火) 02:19:33 ID:fqQje7br
禁止ワードチェックしたいんでけど 氏ね と入力すると ”NGワード!!”と表示されるのは嬉しいんですけど 書き込みが出来てしまいます>_< //NGワード指定 $ng = array('氏ね','おい','えい'); foreach ($ng as $word) { if (strpos($_POST["comment"], $word) !== false) { echo "NGワード!!"; } }
>>890 headerなんとかで
別ページに飛ばすようにして、
「禁止ワードが含まれています」
って表示したら?
そんで、セッションでそのワードを
持ちまわしして、表示とか。
>>890 なんか他人のスクリプト改造してるのかな?
別に書き込みを行ってるロジックがあるだろうから
その箇所に組み込まないとだめ
893 :
nobodyさん :2009/02/17(火) 02:38:31 ID:fqQje7br
>>891-892 ありがとうございます。
他人のスクリプトを改造してるのです
頑張ってみます
一番楽なのはechoの部分でexit
895 :
nobodyさん :2009/02/17(火) 03:23:36 ID:1nyp4+4+
以前PHP5.0か5.1で、foreachの中でreturnしたらメモリリークするというバグがありましたが switchの中でreturnしても大丈夫ですか?
ok
897 :
nobodyさん :2009/02/17(火) 04:54:43 ID:fqQje7br
>>897 とりあえず暇だから、そのソースの配布元のURL貼ってみ
まぁ自力で解決するつもりなら、メールアドレスが不正だとか本文が空だとか、 そういうエラー処理のロジック辺りに組み込んでおくべし
900 :
nobodyさん :2009/02/17(火) 05:24:33 ID:fqQje7br
902 :
nobodyさん :2009/02/17(火) 06:12:54 ID:fqQje7br
>>901 お手数おかけして申し訳なかったです
無事動きました!
本当にありがとうございました。
903 :
nobodyさん :2009/02/17(火) 10:35:37 ID:FQkcexzn
/ ー -\ . / ( ●) (●) 申し訳ありません。 | (__人__) i . \__ _ `⌒´_/ ,r´:::::::::\ゝ▼ノノ::ヽ、 i:::::::::,::::::::ヽ¶|/::::,,:::| |::::::::|::::::::::::::::I:::::::i:::::| |::::::::|::::::::::::::::I:::::::|::::| |::::::::|;;;;;;;;;;;;;;人;;;;;|;;ノ (_) つ /ノ | . ω / | / / | / / | / / | / / L”つ、つ
904 :
nobodyさん :2009/02/17(火) 11:43:13 ID:eYIUjnMG
phpのエクステンションについて説明が書かれたサイトってございませんか?
エクステンションのどんな説明ですか?
簡単な一行書き程度の説明程度で構いません
ttp://dspt.blog59.fc2.com/blog-entry-56.html このphpを使って、header.phpに呼び出してして更に<?php include("./include/header.php"); ?>としてindex.php等から呼び出してるんですが、
Fatal error: Cannot redeclare user_agent_docomo()といったようなエラーが出ます
ちなみに、同URLにあるテストプログラムでは問題ありません
解決方法がありましたらご指南願います
909 :
908 :2009/02/17(火) 17:46:41 ID:???
すいません、自己解決しました 超単純なミスでした
910 :
nobodyさん :2009/02/17(火) 18:37:31 ID:KMCXszmR
>>868 vista 64bit ultima
Apache 2.2.9
PHP Version 5.2.8
MySQL version5.1.3
問題なく動作してる
>>911 すいません、書き忘れたのですがphp.iniでextへのパスを設定とOSのほうでphpディレクトリへのpathを指定したら治りました
913 :
emi :2009/02/18(水) 03:21:35 ID:AG6GBpIj
プログラミングど素人です。すみませんが教えてください。
GPSのデータを自分のHP上にgooglemapで表示させたいんです。
HP URL
http://khepresh.toyama-cmt.ac.jp/~d04233 GPSデータ
$GPGGA,025207.561,3645.5161,N,13709.5192,E,0,0,,-10.0,M,35.7,M,,*5A
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,3,1,09,05,69,141,,12,64,095,17,22,59,271,24,18,51,192,21*7D
$GPGSV,3,2,09,30,50,182,18,09,42,048,,14,38,313,24,15,11,112,16*7E
$GPGSV,3,3,09,31,05,252,23*43
$GPRMC,025207.561,V,3645.5161,N,13709.5192,E,0.00,0.00,160708,,,N*7A
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,025208.561,3645.5161,N,13709.5192,E,0,0,,-10.0,M,35.7,M,,*55
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,3,1,09,05,69,141,,12,64,095,17,22,59,271,17,18,51,192,20*7C
$GPGSV,3,2,09,30,50,182,17,09,42,048,,14,38,313,23,15,11,112,15*75
$GPGSV,3,3,09,31,05,252,22*42
↑毎秒データが追加される。
このデータの必要な部分のみをPHPで抽出し、javascriptに組み込み
グーグルマップにリアルタイムでピンを立てていきたいんです。
流れはわかるのですが、プログラミングしろとなると本当にわからなくて…m(_ _)m
すみません。どうかよろしくお願いします。
914 :
913 :2009/02/18(水) 03:26:27 ID:AG6GBpIj
それに関する本を購入して学習してから出直せと言われそうですが、 まさにその通りです。 しかしながらこれらを今週中までにと言われたもので、一から勉強していては 到底間に合うものではないかと… あつかましくて申し訳ないですm(_ _)m $remove_row_list = array( 2, 3, 4, 5, 6, 7); while ($data = fgetcsv($fp, 10000)) { $today = date("Y/m/d l H:i:s"); print($today)."<br>\n"; if (!in_array($count, $remove_row_list)) { echo $data[1] ."<br>\n"; echo $data[2] ."<br>\n"; echo $data[3] ."<br>\n"; echo $data[4] ."<br>\n"; echo $data[5] ."<br><br>\n"; } { $count++; } } fclose($fp); ?> 緯度や経度などの必要な部分だけを抽出してみたつもりです。 何かおかしいような気もするのですが これをjavascriptに組み込むことは可能なのでしょうか。
自分で勉強して実現することを今週までと言われたのでは?
しかもマルチですか。ありえんわ。
素人でも昼寝しながら3〜4日あれば出来るだろ!? 本なんて購入せんで良いから駄目と思う前に勉強しろ
富山商船高等専門学校
919 :
nobodyさん :2009/02/18(水) 11:59:37 ID:HJmSPuYo
初歩的な質問で恐縮です。 変数名の前に、(integer)のように記すのは、 どういう意味ですか。 $id = (integer)($Id); $date = (string)$dc->date;
はるな愛 = (女)大西賢示;
それだとただはるな愛に代入してだけだから はるな愛 == (女)大西賢示 がtrueになると言わないとだめだろう
926 :
nobodyさん :2009/02/18(水) 12:43:52 ID:2ixgJBqF
アクセス解析の記録方法について質問です 1日10000ユニークのサイトでは ログをファイルに記録するのとデータベースに記録するのはどちらが妥当でしょうか?
鯖によるが、基本はファイルにログをとってcronで回収 DBでのアクセス解析は余程DBサーバが強くて金が余って手を抜きたいときだけ。
10000ユニーク/日をDBでやるとしんどいかもw
1000ユニークもあるとcron使ってもさ ファイルの容量が1M軽く超えないか? そうなるとログ書き込みの時に重くならない?
追加書き込み知らないのか?
あはーん
追加で書いてもファイルを全部読み込むから重いだろ?
解析をどこでやるかだと思う
>>932 ファイルを全部読みこむとか、奇想天外だな
fopen($filename,"a")こういうことだろ これは一度全部ファイルを読むんじゃないのか
解析するときの話だろ・・・
書き込み先の話だろ。 普通はApacheに任せる でなくてもsyslogを経由する。 fopenとかあほかと
>>935 それはファイルを開くだけで中身は読み込まない
追記を全部読み込んで最後に書き足すだと思ってたってこと?
1KBのファイルと1GBのファイルをfopenするのじゃどっちが重いか分かるだろ
memory_get_usage()で試して確認してみたらいい。 100MBのファイルだって、fopenして追記するだけならメモリ食わんから
この流れ前も見た気がする 全部読み込んでるだろって言ってるやつ同一人物か?
「ファイルポインタ」とはでぐぐって来い。
シークとかランダムアクセスとか使ったことない人なんだろ
ファイルのアップロードについての質問 ブラウザのフォームのファイルで選択しsubmitしたら、 tempフォルダにアップロードしてスクリプトが走る。 スクリプトが終了したらファイルは自動削除。 この認識に間違いないですか? で、もし仮にphpが不正終了した場合はファイルは残ってしまうのかな?
949 :
nobodyさん :2009/02/18(水) 15:11:56 ID:sMdatC3/
いいって何を基準に?
そこを聞いてどうする どれだけ、個性的なエスパーを展開できるかが回答者の力量ってもんだろう。
何を持っていいとするのか分からないのでメリットとデメリットを考えてみた。 即興で考えたので抜けがあるかも知れないが参考までに。 あと、プログラムの早い遅いは作り方にもよるのでご注意を。 1.ログ記録時に解析してサマリーを作成 メリット:解析結果のページが簡単で処理が少ない デメリット:記録時に処理が遅くなるため、アクセスの多いサイトでは致命傷になることもある 2.サマリーを作らず、表示するときに解析 メリット:記録処理が早いため、多アクセスでも デメリット:解析結果のページを表示するたびに処理をするので、遅くなる。解析するデータが日々増えていく。 3.cron等で定期処理で解析してサマリーを作成 メリット:記録も表示も速い デメリット:リアルタイム処理ではなくなる。
953 :
nobodyさん :2009/02/18(水) 15:34:01 ID:sMdatC3/
今日の日付に関しては2を 過去の日付については3で作ってみたいと思います 丁寧に教えていただきまして助かりました ありがとうございます
954 :
nobodyさん :2009/02/18(水) 17:17:28 ID:1zPw3GNN
MySQLのBLOB型にバイナリデータを入れるとき、 単にfile_get_contents()したものを挿入するのは SQLインジェクションなどの問題があるのでしょうか? あるならば、対処法を教えてください。 よろしくお願いします。
バイナリデータに限らずfile_get_conetntsに限らずSQLインジェクションの危険はあるかと 対処法は解説サイトか解説本に必ず書いてあると思います
956 :
nobodyさん :2009/02/18(水) 17:45:31 ID:gDGkuwNe
20020916という年月日を元に作られた数字が無数にあります これらの数字をを2002/09/16という書式に直したいのですが ヒントだけでも頂けないでしょうか?
おもいっきり、頻出だなぁ sprintfでどうだ
958 :
954 :2009/02/18(水) 17:54:01 ID:1zPw3GNN
>>955 レスありがとうございます。
対処法というか、エスケープするというのはわかっているのですが、
そうすると、バイナリの内容が変わってしまうのではないかと思いまして・・・。
たとえば、格納するときにbase64_encode()して
出すときにbase64_decode()とかではダメなのでしょうか?
959 :
946 :2009/02/18(水) 18:02:40 ID:g2FBvF84
>>948 おっと失礼。
PHPのバージョンは問わず全般的なことでの質問です。
960 :
nobodyさん :2009/02/18(水) 18:09:26 ID:gDGkuwNe
>>957 レスありがとうございます
教えていただいた関数を元に試行錯誤してみたのですが
どうしても思い通りになりません
よろしければアドバイスお願いいたします
$n = 20020916;
echo sprintf($n,"%4d%/%02d/%02d");
substr
>>958 ちげーよ
バイナリの内容が変わらないようにエスケープするんだよ。
エンコードするコスト払う気があるんならそれはそれでいいけどな。
963 :
nobodyさん :2009/02/18(水) 18:35:50 ID:p2G3+rpE
アクセス解析のログについて質問です logというディレクトリに20090218.logという風に日付別でログを作るのですが ディレクトリは年別または月別などに分けた方がよろしいでしょうか? 長期的に見てディレクトリ内に一年分以上の大量のログファイルをためるとサーバーに負担がかかるのでしょうか?
なんか全部一緒の人が質問してるみたいに内容がつながってるなw
966 :
nobodyさん :2009/02/18(水) 18:58:58 ID:ysrsaPD6
参考にして制作してみます、ありがとうございました 今日初めての質問でございます 気分を害されてしまったようですね、すみませんでした
967 :
958 :2009/02/18(水) 19:04:18 ID:1zPw3GNN
>>962 何度もすみません。
もう少し詳しく教えていただけないでしょうか?
単純な文字列の場合の対処法は参考書やネット上で見つかるのですが、
バイナリの場合がなかなか見当たらなくて・・・
エンコードするコストというのは、base64エンコードによるデータの肥大化のことでしょうか?
>>954 バイナリのヘッダなどにスクリプトを仕込まれるケース
DBにバイナリを保存する意味がわからない プライベートディレクトリに入れればいいじゃん バイナリなんてDBの得意分野じゃないんだから無理してやるのはただのカッコツケマン
>>967 あなたはエスケープの意味が分かっていない。
即ち、SQLインジェクションがなぜ起きるのかも分かっていないと思う。
エスケープの意味を調べなおした方が良いのでは。
>>967 バイナリたって、所詮はテキストだからな。
データの肥大化もあるけど、エンコードとデコードにかかるCPU負荷ってのもある。
971 名前: nobodyさん [sage] 投稿日: 2009/02/18(水) 19:17:48 ID:???
>>967 バイナリたって、所詮はテキストだからな。
>>967 バイナリたって、所詮はテキストだからな。
データの肥大化もあるけど、エンコードとデコードにかかるCPU負荷ってのもある。
いや、似たようなもんだよ。バイナリにもテキストを含められるし
ない
>>967 バイナリたって、所詮はテキストだからな。
データの肥大化もあるけど、エンコードとデコードにかかるCPU負荷ってのもある。
980 :
nobodyさん :2009/02/18(水) 20:56:15 ID:xNLzAD7T
レンタルサーバ(レンタルスペース?)を探してます PHP5ならPDO_SQLite(SQLite3)は確実に使えるんでしょうか
981 :
nobodyさん :2009/02/18(水) 20:56:38 ID:wTQrBPsG
【OS名】CentOS 5.0 【PHPのバージョン】php5.2 【連携ソフトウェア】IE6.0, MySQL 【質問内容】 JavaScriptの非同期通信を使ってHTMLのフォームから ユーザIDとパスワードをPHPに送り、PHPでMySQLに検索かけた結果を $user_data = array('user_num'=>$user_num, 'birthday'=>$birthday); のように連想配列に格納してブラウザにレスポンスデータとして送り そのデータを連想配列としてJavaScriptに参照させたいんですけど 何か良い方法はありますでしょうか?
982 :
980 :2009/02/18(水) 21:06:49 ID:xNLzAD7T
ああ踏んでいたようで 試してみますが上の方まるまるコピペでいいんでしょうか
xmlにでもすれば?
>>982 前スレのとことスレタイの番号だけ変更してください
985 :
981 :2009/02/18(水) 21:21:09 ID:wTQrBPsG
>>983 XMLですか・・・Ajaxをやる上では避けられないとは思ってましたけども・・・。
ありがとうございます。これから勉強してみます。
>>985 形式はjsonとかjsonpとかxmlとかtextとか好きなのでやればいいじゃない
>>985 への返信
XML難しくねって。
prototype.jsのxmlパーサだったかな?あれ使えばめちゃちょりーよ。
おいおい、せっかく981が勉強する気になったんだから水を差すなよ
991 :
987 :2009/02/18(水) 22:24:06 ID:wTQrBPsG
>>987 ,988,989
将来性汎用性でXMLの方が良いという記事がいくつかったので、XMLを勉強しようとおもいます。
どうもありがとうございましたm(_ _)m
992 :
981 :2009/02/18(水) 22:24:47 ID:wTQrBPsG
>>991 すいません名前間違えました。
スレ汚し申し訳ありません。
1000なら3日で作るPHPアプリケーション 2日目午後クリアできるう♪
その程度のなら半日もかからない件
if構文ってややこしいですね・・ どのifでクローズしてるのかわけ分からなくなる><
インデントしろw
>>995 ぶら下がり構文は止めといた方がいいと、エスパーしてみる
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。