【PHP】下らねぇ質問はID出して書き込みやがれ 83
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/04/06(月) 04:14:58ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 82
http://pc11.2ch.net/test/read.cgi/php/1236532468/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0792nobodyさん
2009/04/24(金) 00:11:15ID:???メタタグを読んでいるのはブラウザの中の人。
headerを使うのとmetaを使うのとどう違うのか、と言われると実は実際問題たいした差は無い。
けど、http-equivのequivってのは「代替品」って意味。文字通り、ヘッダーを生成できない場合の代替が目的。
本物と代替品を両方使えるなら、本物を使うのが自然だと俺は思う。
まあ、RFCや歴史的経緯や由来なんぞ知った事か!って意見もあるだろうし、両方使う、ってのがベストではあるけどな。
(Apacheの設定でヘンなヘッダを吐かれるケースの対策でもあったんだが、そういうケースは最近はあんま見ない)
0793nobodyさん
2009/04/24(金) 00:14:29ID:???知らないってのは流石にダセぇとは思うが、どっちかを強制するような事じゃない。
0794nobodyさん
2009/04/24(金) 00:22:28ID:???最初メタタグなしで?だったのでメタタグを入れてダメで、間違いに
気づいてメタタグを正確に直したけど表示されないなぁと思って
聞いてみたんですけど、改めて見てみると正確に直してるファイルは
普通に表示され、記述間違いはダメ、という当然の結果なのです。
直したつもりだったてことかと。
>>792
>メタタグを読んでいるのはブラウザの中の人。
そうでした。
>ヘンなヘッダを吐かれるケースの対策でもあった
メタタグは通用しないことがあるって記述をどこかで見てバシッと
指示できる方法がないものかと思ってたんですが当にこれですね。
メタタグがブラウザ対象ならPHPに通用しないのは当然か。
SQLも文字化けしてたんですけど
mysql_query("SET NAMES utf8");として解決したので
同様の指示方法を探してました。
0795nobodyさん
2009/04/24(金) 01:41:32ID:oXgFhkjsこんなん常識じゃね?
0796nobodyさん
2009/04/24(金) 01:43:15ID:???Content-Typeだしてねーサイト多すぎだよな。
Safariで見るとソースが化けるからすぐ分かる。
0797nobodyさん
2009/04/24(金) 01:45:39ID:oXgFhkjs配列やオブジェクトを書き出してテストしたりすんべ
httpヘッダーくらいでエラーすんのもむかつくので
@必修にしてたよ俺orz
0798nobodyさん
2009/04/24(金) 01:49:16ID:oXgFhkjs自分でサーバ運用したこと無いのかねぇ?
0799nobodyさん
2009/04/24(金) 01:50:09ID:???0800nobodyさん
2009/04/24(金) 01:52:13ID:oXgFhkjs意味わかってしてるんだから許せw
0801nobodyさん
2009/04/24(金) 01:59:00ID:???偶然にも全く同じ問題に直面していたんだが、phpMyAdminで設定した照合順序は
各テーブル、フィールドに個別に設定出来てる?
UTF-8で全部やっているならとりあえず照合順序を全てutf8_general_ciにしてみると良いよ。
0802nobodyさん
2009/04/24(金) 02:14:21ID:???このスレ見てる人間はプログラマーではあってもおそらく鯖屋ではありません
Webプログラマーならhttpの知識知ってて当然
ようするに知らないのは初心者
そしてここはそういうスレ
0803nobodyさん
2009/04/24(金) 02:28:31ID:???>797
普通、画面出力は一箇所にまとめるだろjk。
echoが2箇所以上に存在するスクリプトは、構成にそもそも難がある。
あと、適当なテキストファイルに文字列を書き出す関数は常に用意しておいたほうが便利だぞ。
0804nobodyさん
2009/04/24(金) 02:32:14ID:???0805nobodyさん
2009/04/24(金) 02:35:25ID:???大体、render用の関数作って、変数をextractとかしてアサインするとかしてるんだけど、
あんまりやらないのかな?
function render($path, $array){
extract($array, EXTR_SKIP);
include "/view/".$path.".html";
}
とかといったような。
0806nobodyさん
2009/04/24(金) 02:43:16ID:???0807nobodyさん
2009/04/24(金) 03:33:28ID:???例えば画面出力を突然Shift_JISにしたくなったとしよう。
お前のコードの場合、全ての出力部にmb_convert_encodingを入れる必要がある。
>850なら、render()の冒頭でob_start()とかやって、出力内容を変数に格納してからShift_JISに変換して出力する、とかいう改変がラクにできる。
同じように、render()を文字列を返す関数にして、ファイルに書き出す事も容易。
また、>805のようなパターンでスクリプトを構成していると、デザイン変更の際にview/*.htmlをいじるだけでよくなる。
逆にロジックだけを変えたい場合、view/*.html(つまり画面デザイン)には一切手をつけなくてよくなる。
最後に、$arrayが正しいかテストするほうが、画面出力結果が正しいかテストするよりも楽な事が多い。
この辺はPHPUnitを使ってみないとピンと来ないポイントかもな。
0808nobodyさん
2009/04/24(金) 03:41:24ID:???つかテンプレートエンジンかフレームワーク使わないのはなんで?
0809nobodyさん
2009/04/24(金) 03:58:49ID:???原始的手法をとってるんだと思うよ。俺もたまにやるし。
あと、出力エンコーディングのごっそりな変換はiniで指定したほうがラクだよ。
個人的にはこのご時世コード的に小さいWebアプリなんてのがまずなくなってるから
FWのロガーとIDEのデバッガを適切に使うのがよいと思う。
ウニットテスト云々言ってるが、アサーションに漏れたらその変数とコールスタックのダンプなどをやってくれるので
初心者にもオススメだ。
0810nobodyさん
2009/04/24(金) 04:04:03ID:???0811nobodyさん
2009/04/24(金) 04:12:50ID:???どうだろう…抑止なると使ってるくらいだしな…
エコー → 自作関数 → FWスタンダード って感じでステップアップしていけばいいんじゃないか?
だいたい皆そうだろ
0812nobodyさん
2009/04/24(金) 04:22:16ID:???そうやってエラー無視してバグの元を作ってしまうことが問題だと思うんだが
素のechoだろうが自作フォーマットだろうがそっちは好きにしなさい
0815nobodyさん
2009/04/24(金) 09:26:01ID:???0816nobodyさん
2009/04/24(金) 09:36:54ID:???0817nobodyさん
2009/04/24(金) 09:38:38ID:???0818nobodyさん
2009/04/24(金) 11:46:30ID:NYw9Sn8U0819nobodyさん
2009/04/24(金) 11:48:01ID:???0820nobodyさん
2009/04/24(金) 11:51:26ID:NYw9Sn8U0821nobodyさん
2009/04/24(金) 11:52:20ID:NYw9Sn8Uそれを表示したいです
0823nobodyさん
2009/04/24(金) 12:42:44ID:???for ($i = 0 ; $i < count($array) ; $i++)
みたいな書き方のソース多いな
どこのオープンソースもこんなもん?
0824nobodyさん
2009/04/24(金) 12:42:53ID:NYw9Sn8U0826nobodyさん
2009/04/24(金) 12:45:26ID:???0827nobodyさん
2009/04/24(金) 12:52:53ID:???まあどれかわかるけど
0828nobodyさん
2009/04/24(金) 13:11:39ID:???余計ややこしいとね^^;
0829nobodyさん
2009/04/24(金) 13:12:31ID:???0831nobodyさん
2009/04/24(金) 13:16:11ID:???0833818
2009/04/24(金) 13:18:26ID:NYw9Sn8U0834nobodyさん
2009/04/24(金) 13:19:22ID:???0836nobodyさん
2009/04/24(金) 13:21:02ID:???0838nobodyさん
2009/04/24(金) 13:31:55ID:???0839nobodyさん
2009/04/24(金) 14:08:57ID:???こういう書き方すると怒られる?
0840nobodyさん
2009/04/24(金) 14:09:36ID:???0841nobodyさん
2009/04/24(金) 14:10:19ID:???0843nobodyさん
2009/04/24(金) 14:23:04ID:???個人で作るなら問題ないけど
他の人に見せる可能性があるなら可視性も大事
あと適度なコメント表示もお願いねほしみ
0848nobodyさん
2009/04/24(金) 15:01:18ID:???でも君の質問も言葉足らずで良くないけど。
何を問題にしてるの?スペースを空けること?条件部でcount使ってること?1ラインのfor使ってること?
0849nobodyさん
2009/04/24(金) 15:06:20ID:???っていうのが今のゆとり
0850nobodyさん
2009/04/24(金) 15:09:50ID:aAv/eK7tREMOTE_ADDRの中身とかどうなるのでしょう?
普段見慣れない0000:0000:0000:0000:0000:0000とかになるのでしょうか?
DNS逆引きでリモホを得た場合
IPv4のとIPv6のホスト名に大きな差異はあるのでしょうか?
PHPの質問とはかけ離れてますがアクセス解析を作りたいのでよろしくお願いします
0855nobodyさん
2009/04/24(金) 15:22:40ID:???名前<div>名前
といったようにタグを挟んだり
ネ申
といったものを入れると\が付加されてメールで飛んできます。
文字コード自体はmb_convert_encodingで変換しているので問題はないと思うのですが
どういしたら出ないように出来るのでしょうか。
0856nobodyさん
2009/04/24(金) 15:24:54ID:???わざわざそんなこと気にしてるのはPHPユーザーぐらいだろ
他の言語板で聞いてみな
0858nobodyさん
2009/04/24(金) 15:32:50ID:???0860nobodyさん
2009/04/24(金) 15:36:08ID:???iがほしい場面じゃfor使わざるを得ないけど
使う必要がないならそのとおり
>>859
安心しな
JavaスレとJSスレぐらいしか見てないから
C系の人にきいてみな
0861nobodyさん
2009/04/24(金) 15:39:14ID:???添え字の数値が欲しいなら foreach($array as $key=>$val) 書式使うし、
確実に連続した数値としてほしいなら、これは使えないから、別途カウント用の変数を使う。
0862nobodyさん
2009/04/24(金) 15:44:25ID:???ベンチマークベンチマーク
0863839
2009/04/24(金) 15:47:56ID:???普通にかくと、
$cnt = count($a);
for(〜
となると思うのですが、
forの中だけで使いたい$cntがforの外に出るのがかっこ悪いかなぁと思ったためです。
foreach($a as $i => $item) echo $a[$i];
のような書き方もあるとおもいますが・・・
上記のような書き方の違いがコーディングスタイルの範囲なのか、プログラムの動き的に
別の問題が発生するのかという疑問を持ったという感じです。長文すいません。
0864nobodyさん
2009/04/24(金) 15:50:39ID:???0866nobodyさん
2009/04/24(金) 15:55:05ID:???それはわかってるけどそんなの意識するのPHPユーザぐらいじゃね?
劇的にかわるもんでもないでしょ?
もともと高速だし
0867850
2009/04/24(金) 15:56:24ID:aAv/eK7t0868850
2009/04/24(金) 15:58:40ID:aAv/eK7tやっぱ詳しい方教えてもらえないでしょうか?
スレ違いとは承知してますがこのスレならいると思うので
IPv6板で聞きなおそうと思ったのですがIPv6でしか書き込めないらしい・・・
0870nobodyさん
2009/04/24(金) 16:58:31ID:???ようするに下らんところで口を出すPHPユーザの質が低いってことだな
0874nobodyさん
2009/04/24(金) 17:04:38ID:???Webやってんのに全然セキュリティ意識がないのが多いね
そっちのほうがよほど問題
かくいう自分も100%安全なプログラムかけてるかというと自信はないけど
PHP選択してる時点でセキュリティ意識がないと言われたら終わりだが
0875nobodyさん
2009/04/24(金) 17:09:25ID:???コードが汚いし、>>839 の書き方じゃ
$a[0] = 'hoge';
$a[100] = 'hogehoge'
ってした時に期待した動きにならんでしょ。
あぶねーよ。
0876nobodyさん
2009/04/24(金) 17:09:55ID:???> ttp://pc12.2ch.net/test/read.cgi/tech/1239708057/360-362
javaは確か内部でsizeを持ってるんじゃないかな。
phpのcountとはオーバーヘッドが全然違うと思う。
0878876
2009/04/24(金) 17:16:30ID:???javaはlistオブジェクトが持ってるsizeメンバを返してるだけだが、
PHPはのcountはいちいち個数を調べてるってこと。
0879nobodyさん
2009/04/24(金) 17:16:47ID:???そんな書き方あるのか
for ($i = 0; $i < $cnt = count($a); $i++)
ってのはあるが
これとは意味違うのかね
これじゃ$i < count($a)と変わらない?
0880nobodyさん
2009/04/24(金) 17:18:13ID:???$a[100] = 'hogehoge'
$a[0] = 'hoge';
だと、foreachでも、ある意味、微妙な動きをするな。
それでも PHPの添え字はオフセット値とは扱いが違うんで、forとかは馴染まんなぁ。
>>878
それソースあったら教えて。
0881nobodyさん
2009/04/24(金) 17:19:49ID:???for($i = 0, $cnt = count($a); $i < $cnt; print($a[$i]), $i++);
0884nobodyさん
2009/04/24(金) 17:28:34ID:8/gQo6YyというURLで、
exec.phpにそれ以降の文字列を渡したいんだけどどうすりゃいいの
0887nobodyさん
2009/04/24(金) 17:32:16ID:???0888nobodyさん
2009/04/24(金) 17:35:56ID:???0889nobodyさん
2009/04/24(金) 17:37:09ID:???■ このスレッドは過去ログ倉庫に格納されています