トップページphp
1001コメント298KB

【PHP】下らねぇ質問はID出して書き込みやがれ 83

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/04/06(月) 04:14:58ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、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等)・フレームワークは各該当スレへ
0750nobodyさん2009/04/23(木) 11:41:26ID:???
>>743>>749はPHP歴一か月未満とみた
0751nobodyさん2009/04/23(木) 11:51:44ID:???
>>749
いや、逆だろ
Onの方が余計混乱するって
07527452009/04/23(木) 12:03:37ID:ai/dLDOC
>>747
ありがとうございます。
たしかにこれでテキスト間を調べることは出来ますが、
やっぱり、ファイル名を調べるには、
ディレクトリ一覧を取得する方法しかないのでしょうか?
0753nobodyさん2009/04/23(木) 12:03:58ID:aSD7OG+w
ドコモでサイトを閲覧したとき、戻るボタンで前のページの戻ったとき、
キャッシュがなくて再読み込みされるらしいのですが、何が原因なのでしょうか
auでテストしてみたところ、キャッシュが残っていてすぐに表示されました
0754nobodyさん2009/04/23(木) 12:27:15ID:???
>>745
その例だと曖昧検索じゃなくてただの部分一致だと思うけど、
単なる部分一致なら
http://jp.php.net/manual/ja/function.glob.php
で出来るよ。
0755nobodyさん2009/04/23(木) 12:37:06ID:???
>>752
そういうことになりますね
0756nobodyさん2009/04/23(木) 13:19:05ID:???
ドコモ?w
あのクッキーは使えねーどこも?w
あんなキャリア無視していいよ。
0757nobodyさん2009/04/23(木) 13:21:52ID:aSD7OG+w
>>756
流石にお客さんの要望となると無視できないです・・・
0758nobodyさん2009/04/23(木) 13:21:58ID:???
こんなことで嘆いているks野郎が働いてて
全キャリア対応できるノウハウを持ってる優秀な俺が無職でいる日本
0759nobodyさん2009/04/23(木) 13:45:30ID:???
実際働いたら優秀でもなんでもない口だけニートか
0760nobodyさん2009/04/23(木) 13:47:34ID:???
新米社員必死だな
07617452009/04/23(木) 14:02:10ID:???
>>754,755
globもファイル内一覧を検索する関数ですし、
やっぱりそうするしかないんですね。
勉強になりました。ありがとうございました。
0762nobodyさん2009/04/23(木) 14:04:59ID:???
>>753
DoCoMoの試験機無いの?
0763nobodyさん2009/04/23(木) 14:05:35ID:???
ない
0764nobodyさん2009/04/23(木) 15:02:49ID:???
>>763
調べてみたらあるじゃん
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:???
>>753
というか、仕事なのにこんなとこで聞く程度のスキルでお金もらえるの?
どこの会社だろう。
いいな。うらやましい。2chで情報もらって金儲けか。
0767nobodyさん2009/04/23(木) 15:18:36ID:???
>>753みたいな教えて君が俺たちを人力検索ボランティアに利用して金もらってて
俺みたいな何でも一人でこなせる優秀な人材が無職な日本
0768nobodyさん2009/04/23(木) 15:20:25ID:???
横槍すまんが

>>766-767
だったら働けよと・・・
0769nobodyさん2009/04/23(木) 15:23:34ID:???
誰か無職な日本のガイドラインをガイドライン板に立てて
0770nobodyさん2009/04/23(木) 15:30:10ID:???
こんな優秀な俺が無職なのは社会のせいだ!
ですか?()笑
0771nobodyさん2009/04/23(木) 15:40:27ID:???
>>768
心配すんな。いつでも判子押せるように横においてあるから
0772nobodyさん2009/04/23(木) 15:40:50ID:???
履歴書ですねわかります
0773nobodyさん2009/04/23(木) 16:22:08ID:???
この流れならうpできる!
昨日買ったメガネ
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:???
UTF8で書いたPHPファイルをレンタルサーバにアップして見てみると
日本語が全部?になってしまいます。ソースも?になっています。
XAMMPでみると正常に表示されるんですが、これはレンタルサーバの
設定によるものなのでしょうか?
だとするとPHPファイルの文字コードを合わせるしかないのでしょうか?
0776nobodyさん2009/04/23(木) 23:15:32ID:???
>>775
(1)エディタで保存するときにUTF-8になっているか
(2)メタタグでutf-8を強制しても直らないか
0777nobodyさん2009/04/23(木) 23:28:39ID:Slt+HzGf
波ダッシュ/全角チルダ問題についてですが

UTF-8のDBに対しUTF8のスクリプトからSET NAMES UTF-8を行った上でUTF-8のエンコードの文字列を書き込んでいるのですが「〜」(全角チルダ)のみ?と化けて書き込めません。
書き込む直前に波ダッシュに変換したりした場合は問題有りません。

原因は何が考えられますか?
0778nobodyさん2009/04/23(木) 23:32:31ID:???
>>777
これが絶対っていう対処法は今のところない
ググると1ページめに対処法が2つあるからそれを読め
0779nobodyさん2009/04/23(木) 23:35:03ID:???
>775
まずそのまま、ブラウザのエンコーディングをUTF-8にしてみろ。
これで直るようなら、スクリプトに
header('Content-Type: text/html; charset=UTF-8');
で解決。
適切なヘッダーを吐き出さないと脆弱性の元になるので、文字化けの有無に限らず常にヘッダは吐く癖をつけろ。

>776
自分でヘッダをいじれる環境で、メタタグを使う意味が分からない。
0780nobodyさん2009/04/23(木) 23:36:26ID:???
>>777
まずその問題の知識はあるのかね?
ttp://www.informe.co.jp/useful/character/character14.html
0781nobodyさん2009/04/23(木) 23:37:36ID:???
>>778
ありがとうございます。
波ダッシュ問題については認識しているのですが、全く同一仕様のサーバーに同一プログラムを置いているのですがそちらでは全角チルダをDBに書き込めています。
またphpの設定、DBの設定(phpMyAdminから見える範囲)も同一です。

phpMyAdminから見えないところでMySQLに設定しなければいけないものはありますか?
0782nobodyさん2009/04/23(木) 23:37:42ID:???
>>779
こんな方法あるのか。
0783nobodyさん2009/04/23(木) 23:38:32ID:???
>>779
ちなみにメタタグでの指定は
「utf-7攻撃」
を防ぐために必要です
07847772009/04/23(木) 23:41:28ID:???

$qry .= "str=〜(波ダッシュ)";
$result = mysql_query($qry, $sql_connect);

OK

$qry .= "str=〜(全角チルダ)";
$result = mysql_query($qry, $sql_connect);

NG(記録されるのが”?”)

化けるのは全角チルダONLYです。
0785nobodyさん2009/04/23(木) 23:41:57ID:???
>>783
kwsk
0786nobodyさん2009/04/23(木) 23:42:48ID:???
>>784
昔作った掲示板でそれ対処したがもう寝るので回答がなければ明日のこの時間までにまたくるわ
0787nobodyさん2009/04/23(木) 23:44:12ID:???
>>786
ありがとうございます。
その時間までがんばりやす。
0788nobodyさん2009/04/23(木) 23:46:57ID:???
>>776,779 ありがとう
メタタグは入れてテストしていた・・・つもりだったのですが、再度やってみると
あっさり直りました。もやもやしますが、再現できないのでOKとします。
>>779
スクリプトからのヘッダ指定は知りませんでした。ちょっと教えて欲しいのですが
メタタグもスクリプトもPHPの中の人が同じファイル内を読んでその指示に
沿っているという点では同じかと思うのですが、意味が分からないということは
スクリプトで書いた方が良いことがあるのでしょうか?
07897752009/04/23(木) 23:47:44ID:???
>>788
偽物乙
0790nobodyさん2009/04/23(木) 23:48:41ID:???
>>788
とりあえずそのファイルをここに晒せ
検証してやる
0791nobodyさん2009/04/23(木) 23:55:56ID:???
>>779は勝ち誇りながら上げ足をとったのに、
逆に上げ足を取られてクソフイタwwwwwwww
0792nobodyさん2009/04/24(金) 00:11:15ID:???
>788
メタタグを読んでいるのはブラウザの中の人。

headerを使うのとmetaを使うのとどう違うのか、と言われると実は実際問題たいした差は無い。
けど、http-equivのequivってのは「代替品」って意味。文字通り、ヘッダーを生成できない場合の代替が目的。
本物と代替品を両方使えるなら、本物を使うのが自然だと俺は思う。
まあ、RFCや歴史的経緯や由来なんぞ知った事か!って意見もあるだろうし、両方使う、ってのがベストではあるけどな。
(Apacheの設定でヘンなヘッダを吐かれるケースの対策でもあったんだが、そういうケースは最近はあんま見ない)
0793nobodyさん2009/04/24(金) 00:14:29ID:???
字義は「等価」だろ。歴史的経緯を考えると「代替」って解釈も妥当だが。
知らないってのは流石にダセぇとは思うが、どっちかを強制するような事じゃない。
0794nobodyさん2009/04/24(金) 00:22:28ID:???
>>790
最初メタタグなしで?だったのでメタタグを入れてダメで、間違いに
気づいてメタタグを正確に直したけど表示されないなぁと思って
聞いてみたんですけど、改めて見てみると正確に直してるファイルは
普通に表示され、記述間違いはダメ、という当然の結果なのです。

直したつもりだったてことかと。

>>792
>メタタグを読んでいるのはブラウザの中の人。
そうでした。
>ヘンなヘッダを吐かれるケースの対策でもあった
メタタグは通用しないことがあるって記述をどこかで見てバシッと
指示できる方法がないものかと思ってたんですが当にこれですね。
メタタグがブラウザ対象ならPHPに通用しないのは当然か。
SQLも文字化けしてたんですけど
mysql_query("SET NAMES utf8");として解決したので
同様の指示方法を探してました。
0795nobodyさん2009/04/24(金) 01:41:32ID:oXgFhkjs
@header('Content-Type: text/html; charset=UTF-8');
こんなん常識じゃね?
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
しかしhtmlの表示必死でhttpの基本しらない人大杉だよな
自分でサーバ運用したこと無いのかねぇ?
0799nobodyさん2009/04/24(金) 01:50:09ID:???
@つけてる人に言われたかないわ
0800nobodyさん2009/04/24(金) 01:52:13ID:oXgFhkjs
ははは、そりゃ悪かったw
意味わかってしてるんだから許せw
0801nobodyさん2009/04/24(金) 01:59:00ID:???
>>777
偶然にも全く同じ問題に直面していたんだが、phpMyAdminで設定した照合順序は
各テーブル、フィールドに個別に設定出来てる?

UTF-8で全部やっているならとりあえず照合順序を全てutf8_general_ciにしてみると良いよ。
0802nobodyさん2009/04/24(金) 02:14:21ID:???
>自分でサーバ運用したこと無いのかねぇ?
このスレ見てる人間はプログラマーではあってもおそらく鯖屋ではありません
Webプログラマーならhttpの知識知ってて当然
ようするに知らないのは初心者
そしてここはそういうスレ
0803nobodyさん2009/04/24(金) 02:28:31ID:???
実業務に携わってたら、PHPerにはド素人が多いなんてのは常識(キリッ

>797
普通、画面出力は一箇所にまとめるだろjk。
echoが2箇所以上に存在するスクリプトは、構成にそもそも難がある。
あと、適当なテキストファイルに文字列を書き出す関数は常に用意しておいたほうが便利だぞ。
0804nobodyさん2009/04/24(金) 02:32:14ID:???
文字コード設定してんのに自動的にcontent-type吐かないPHPが悪い
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:???
>806
例えば画面出力を突然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:???
横槍スマンが、>>807で言われているようなことが必要ないからエコーデバッグという
原始的手法をとってるんだと思うよ。俺もたまにやるし。
あと、出力エンコーディングのごっそりな変換はiniで指定したほうがラクだよ。

個人的にはこのご時世コード的に小さいWebアプリなんてのがまずなくなってるから
FWのロガーとIDEのデバッガを適切に使うのがよいと思う。
ウニットテスト云々言ってるが、アサーションに漏れたらその変数とコールスタックのダンプなどをやってくれるので
初心者にもオススメだ。
0810nobodyさん2009/04/24(金) 04:04:03ID:???
エコーが散らばってるのとレンダー関数が散らばってるのは大差ないかも分からんが出力はプリティーなほうが絶対いい
0811nobodyさん2009/04/24(金) 04:12:50ID:???
>>809
どうだろう…抑止なると使ってるくらいだしな…
エコー → 自作関数 → FWスタンダード って感じでステップアップしていけばいいんじゃないか?
だいたい皆そうだろ
0812nobodyさん2009/04/24(金) 04:22:16ID:???
header()に@貼り付けてるってことはヘッダー送れてないわけじゃんw
そうやってエラー無視してバグの元を作ってしまうことが問題だと思うんだが
素のechoだろうが自作フォーマットだろうがそっちは好きにしなさい
0813nobodyさん2009/04/24(金) 04:29:44ID:???
>>812 はネタ?
0814nobodyさん2009/04/24(金) 09:15:12ID:???
>>807
php.ini全否定か
0815nobodyさん2009/04/24(金) 09:26:01ID:???
PHP_INI_ALLだからスクリプトや.htaccessからでも制御できるね
0816nobodyさん2009/04/24(金) 09:36:54ID:???
マジレスするとxhtmlの最新版はmetaタグで文字コードを指定しないでheaderで文字コードを送信するようにしろとなっている
0817nobodyさん2009/04/24(金) 09:38:38ID:???
それはXML宣言があるからw
0818nobodyさん2009/04/24(金) 11:46:30ID:NYw9Sn8U
shift_jisでハングル文字を使う方法を教えてください
0819nobodyさん2009/04/24(金) 11:48:01ID:???
その「使う」の真意によって可能かどうか分かれる
0820nobodyさん2009/04/24(金) 11:51:26ID:NYw9Sn8U
sjisでハングル文字を表示させたいのです
0821nobodyさん2009/04/24(金) 11:52:20ID:NYw9Sn8U
ユーザーから投稿されたハングル文字をsjisでログに保存して
それを表示したいです
0822nobodyさん2009/04/24(金) 11:54:10ID:???
>>821
画像にすればいいじゃない。
0823nobodyさん2009/04/24(金) 12:42:44ID:???
色んなソース見てるけど今だに
for ($i = 0 ; $i < count($array) ; $i++)
みたいな書き方のソース多いな
どこのオープンソースもこんなもん?
0824nobodyさん2009/04/24(金) 12:42:53ID:NYw9Sn8U
あくまでも文字として使用するにはどうしたらいいでしょうか?
0825nobodyさん2009/04/24(金) 12:43:34ID:???
>>823
有名所上げるとしたらどこのソース?
0826nobodyさん2009/04/24(金) 12:45:26ID:???
E○-○U○Eとか
0827nobodyさん2009/04/24(金) 12:52:53ID:???
別に伏字にしなくてもいいんじゃね
まあどれかわかるけど
0828nobodyさん2009/04/24(金) 13:11:39ID:???
Smartyって便利みたいだけど
余計ややこしいとね^^;
0829nobodyさん2009/04/24(金) 13:12:31ID:???
素のほうがややこしいやん
0830nobodyさん2009/04/24(金) 13:15:35ID:???
>>829
そうか?
PHP自体がテンプレートエンジンのようなもんだし、わざわざ入れるまでもないと思うが
0831nobodyさん2009/04/24(金) 13:16:11ID:???
そういうレベルの人は無理に使わなくて良いよ
0832nobodyさん2009/04/24(金) 13:17:46ID:???
>>830
きっと君にはライブラリとかフレームワークは使うだけ無駄だよ
08338182009/04/24(金) 13:18:26ID:NYw9Sn8U
自分で考えてみましたが解決策がみつかりません
0834nobodyさん2009/04/24(金) 13:19:22ID:???
google先生に考えてもらえばいいんじゃないでしょうか
0835nobodyさん2009/04/24(金) 13:20:30ID:???
>>834
素人が頑張って回答しました(笑)
0836nobodyさん2009/04/24(金) 13:21:02ID:???
まぁいきりは使わなくていいお
0837nobodyさん2009/04/24(金) 13:26:28ID:???
>>834
×google先生に考えてもらえばいいんじゃないでしょうか
○私の知識ではわかりません
0838nobodyさん2009/04/24(金) 13:31:55ID:???
for ($i=0;$i<count($a);$i++) $r[] = $a[$i];
0839nobodyさん2009/04/24(金) 14:08:57ID:???
for($i = 0, $cnt = count($a); $i < $cnt; $i++) echo $a[$i];

こういう書き方すると怒られる?
0840nobodyさん2009/04/24(金) 14:09:36ID:???
誰に?
0841nobodyさん2009/04/24(金) 14:10:19ID:???
原則として,検索すれば分かるようなことを「聞くな」
0842nobodyさん2009/04/24(金) 14:17:13ID:???
>>839
添字が連続していることを前提にしていいのか不安になるから嫌。
0843nobodyさん2009/04/24(金) 14:23:04ID:???
>>839
個人で作るなら問題ないけど
他の人に見せる可能性があるなら可視性も大事

あと適度なコメント表示もお願いねほしみ
0844nobodyさん2009/04/24(金) 14:38:48ID:???
>>823
別にそれでいいだろ
0845nobodyさん2009/04/24(金) 14:39:05ID:???
>>844
>>844
>>844
>>844
>>844
>>844
08468392009/04/24(金) 14:52:01ID:???
>>841
コーディングの慣習として、どのような感じ方をされるのか気になったので、質問してしまいました。すいません。
0847nobodyさん2009/04/24(金) 14:59:09ID:???
>>844の書いたコードはksそうだな
0848nobodyさん2009/04/24(金) 15:01:18ID:???
君宛じゃなくてその上の連中宛だから気にすんな。
でも君の質問も言葉足らずで良くないけど。
何を問題にしてるの?スペースを空けること?条件部でcount使ってること?1ラインのfor使ってること?
0849nobodyさん2009/04/24(金) 15:06:20ID:???
動けば何でもいいんだよ!

っていうのが今のゆとり
■ このスレッドは過去ログ倉庫に格納されています