【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等)・フレームワークは各該当スレへ
0752745
2009/04/23(木) 12:03:37ID:ai/dLDOCありがとうございます。
たしかにこれでテキスト間を調べることは出来ますが、
やっぱり、ファイル名を調べるには、
ディレクトリ一覧を取得する方法しかないのでしょうか?
0753nobodyさん
2009/04/23(木) 12:03:58ID:aSD7OG+wキャッシュがなくて再読み込みされるらしいのですが、何が原因なのでしょうか
auでテストしてみたところ、キャッシュが残っていてすぐに表示されました
0754nobodyさん
2009/04/23(木) 12:27:15ID:???その例だと曖昧検索じゃなくてただの部分一致だと思うけど、
単なる部分一致なら
http://jp.php.net/manual/ja/function.glob.php
で出来るよ。
0756nobodyさん
2009/04/23(木) 13:19:05ID:???あのクッキーは使えねーどこも?w
あんなキャリア無視していいよ。
0757nobodyさん
2009/04/23(木) 13:21:52ID:aSD7OG+w流石にお客さんの要望となると無視できないです・・・
0758nobodyさん
2009/04/23(木) 13:21:58ID:???全キャリア対応できるノウハウを持ってる優秀な俺が無職でいる日本
0759nobodyさん
2009/04/23(木) 13:45:30ID:???0760nobodyさん
2009/04/23(木) 13:47:34ID:???0761745
2009/04/23(木) 14:02:10ID:???globもファイル内一覧を検索する関数ですし、
やっぱりそうするしかないんですね。
勉強になりました。ありがとうございました。
0763nobodyさん
2009/04/23(木) 14:05:35ID:???0764nobodyさん
2009/04/23(木) 15:02:49ID:???調べてみたらあるじゃん
ttp://www.nttdocomo.co.jp/service/imode/make/content/html/tool2/
0765nobodyさん
2009/04/23(木) 15:03:37ID:???それってキャッシュの設定までできるの?
0766nobodyさん
2009/04/23(木) 15:13:18ID:???というか、仕事なのにこんなとこで聞く程度のスキルでお金もらえるの?
どこの会社だろう。
いいな。うらやましい。2chで情報もらって金儲けか。
0767nobodyさん
2009/04/23(木) 15:18:36ID:???俺みたいな何でも一人でこなせる優秀な人材が無職な日本
0769nobodyさん
2009/04/23(木) 15:23:34ID:???0770nobodyさん
2009/04/23(木) 15:30:10ID:???ですか?()笑
0772nobodyさん
2009/04/23(木) 15:40:50ID:???0773nobodyさん
2009/04/23(木) 16:22:08ID:???昨日買ったメガネ
http://www.dotup.org/uploda/www.dotup.org30260.jpg
0774nobodyさん
2009/04/23(木) 16:25:06ID:???http://pc11.2ch.net/test/read.cgi/hp/1238669869/908
0775nobodyさん
2009/04/23(木) 23:06:46ID:???日本語が全部?になってしまいます。ソースも?になっています。
XAMMPでみると正常に表示されるんですが、これはレンタルサーバの
設定によるものなのでしょうか?
だとするとPHPファイルの文字コードを合わせるしかないのでしょうか?
0777nobodyさん
2009/04/23(木) 23:28:39ID:Slt+HzGfUTF-8のDBに対しUTF8のスクリプトからSET NAMES UTF-8を行った上でUTF-8のエンコードの文字列を書き込んでいるのですが「〜」(全角チルダ)のみ?と化けて書き込めません。
書き込む直前に波ダッシュに変換したりした場合は問題有りません。
原因は何が考えられますか?
0779nobodyさん
2009/04/23(木) 23:35:03ID:???まずそのまま、ブラウザのエンコーディングをUTF-8にしてみろ。
これで直るようなら、スクリプトに
header('Content-Type: text/html; charset=UTF-8');
で解決。
適切なヘッダーを吐き出さないと脆弱性の元になるので、文字化けの有無に限らず常にヘッダは吐く癖をつけろ。
>776
自分でヘッダをいじれる環境で、メタタグを使う意味が分からない。
0780nobodyさん
2009/04/23(木) 23:36:26ID:???まずその問題の知識はあるのかね?
ttp://www.informe.co.jp/useful/character/character14.html
0781nobodyさん
2009/04/23(木) 23:37:36ID:???ありがとうございます。
波ダッシュ問題については認識しているのですが、全く同一仕様のサーバーに同一プログラムを置いているのですがそちらでは全角チルダをDBに書き込めています。
またphpの設定、DBの設定(phpMyAdminから見える範囲)も同一です。
phpMyAdminから見えないところでMySQLに設定しなければいけないものはありますか?
0784777
2009/04/23(木) 23:41:28ID:???$qry .= "str=〜(波ダッシュ)";
$result = mysql_query($qry, $sql_connect);
OK
$qry .= "str=〜(全角チルダ)";
$result = mysql_query($qry, $sql_connect);
NG(記録されるのが”?”)
化けるのは全角チルダONLYです。
0788nobodyさん
2009/04/23(木) 23:46:57ID:???メタタグは入れてテストしていた・・・つもりだったのですが、再度やってみると
あっさり直りました。もやもやしますが、再現できないのでOKとします。
>>779
スクリプトからのヘッダ指定は知りませんでした。ちょっと教えて欲しいのですが
メタタグもスクリプトもPHPの中の人が同じファイル内を読んでその指示に
沿っているという点では同じかと思うのですが、意味が分からないということは
スクリプトで書いた方が良いことがあるのでしょうか?
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:???っていうのが今のゆとり
■ このスレッドは過去ログ倉庫に格納されています