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

【PHP】下らねぇ質問はここに書き込みやがれ 24

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/07/07(金) 14:54:53ID:KnVubDvE
PHPに関するくだらねぇ質問用スレです。
ここならお前の下らない質問に回答があるかも知れません。

まず読め【PHP マニュアル】
http://www.php.net/manual/ja/

過去スレは>>2
0524nobodyさん2006/07/16(日) 18:33:30ID:???
>>506
>最近はやりのスクロールにあわせて上下するフロートメニュー

すっごく根本的なことを教えてあげよう。
そんなのは最近じゃなくて大昔からあるものだし、別に流行ってないし、
PHP関係ないし、っていうかウザいだけだから止めたほうがいいし。

初心者がサイト作るとすぐそういうウザい動きを付けたがるのは何故だろうね?
0525nobodyさん2006/07/16(日) 18:44:07ID:???
>>523
ちなみに >>522 の mbstring 設定値は
mbstring.detect_orderauto
mbstring.encoding_translationOff
mbstring.func_overload0
mbstring.http_inputauto
mbstring.http_outputSJIS
mbstring.internal_encodingEUC-JP
mbstring.languageneutral
mbstring.substitute_characterno value
でした。
0526nobodyさん2006/07/16(日) 18:45:21ID:???
>>525
うは、ごめん。タブは消えるのか。見辛くて申し訳ない。
0527nobodyさん2006/07/16(日) 19:22:30ID:???
>>525
ありがとうございます、今みてみたら化けていたサーバーは

mbstring.http_output SJIS SJIS
mbstring.internal_encoding SJIS SJIS

となってました。
525の人と同じ環境の他のサーバーで試してみたところ文字化けなしにいけました。
問題点がわかったので他のサーバーで動かすようにします、
ありがとうございました。
0528nobodyさん2006/07/16(日) 22:03:44ID:???
2つの文字列の先頭から何文字目までが同じか調べたいのですが、
どうもてっとり早い方法が見つからない。
C でいえば
for(i = 0; c1[i] == c2[i]; i++ );
ぐらいのものなわけですが、php だとどうしたものでしょう?
similar_text だと、先頭からという限定ができないようだし、
ord($str) でCライクに比較しようにも、
先頭のアスキーしか取れないようなので、一々 substr で先頭を切っていくことになる?
substr_compare で徐々に len を減らしていく、という方法だと
ほぼ同じ部分文字列を毎回一から比較していくわけで無駄が多い。
こういうときはどうするのがうまい方法なのでしょう?
0529nobodyさん2006/07/16(日) 22:26:57ID:???
いけんじゃないの?そのCと同じで

str1 = 'hogehoge';
str2 = 'hagehage';
for(i=0; str1[i]==str2[i], (i<strlen(str1) && i<strlen(str2)); i++);

これダメなんだっけ?
0530nobodyさん2006/07/16(日) 22:34:51ID:???
>>528
http://jp.php.net/manual/ja/language.types.string.php#language.types.string.substr
0531nobodyさん2006/07/16(日) 22:52:04ID:???
>>528
上手い方法を知っているわけではありませんがmb_substrで順番に見て行くほか無いような・・・

<?php
$str1 = "ABCD日本語wktk";
$str2 = "ABCD日本語kwsk";
$ln = min(mb_strlen($str1), mb_strlen($str2));
for ($i=0; $i<$ln; $i++) {
 if (mb_substr($str1, $i, 1) != mb_substr($str2, $i, 1)) {
  echo $i . mb_convert_encoding("文字目までは一緒", "SJIS");
  break;
 }
}
?>
0532nobodyさん2006/07/16(日) 23:03:32ID:???
>>531
何でそんなにマルチバイト文字列関数使いたがるの?
0533nobodyさん2006/07/16(日) 23:25:43ID:VEXOfJen
 を置換で削除しようと思って

$res=strtr($res," ","");

というふうにしたのですが、
全く置換できません。。
何が問題なんでしょ?
0534nobodyさん2006/07/16(日) 23:28:12ID:???
>>533
str_replace関数
0535nobodyさん2006/07/16(日) 23:30:10ID:???
サーバにインストールされているPEARの一覧表示の出し方ってどのようにするのでしょうか?
対象となるサーバはXREAです。
05365312006/07/16(日) 23:34:53ID:???
>>532
たぶん日本語を比較したいのだろうと思ったので。
ordで比較とか書いてたので。
0537nobodyさん2006/07/16(日) 23:45:01ID:???
>>535
pear list
05385332006/07/17(月) 00:58:07ID:???
>>534
thx!
あなた頭いいね。

0539nobodyさん2006/07/17(月) 03:42:05ID:???
>>538
単にお前が馬鹿なだけ。マニュアルぐらい嫁
0540nobodyさん2006/07/17(月) 10:02:03ID:???
echo $matches[0][0];

echoだと値が帰ってくるんだですが、

return $matches[0][0];

returnだと値が帰ってきません。
retuneは配列の値を表示することができないんでしょうか?
0541nobodyさん2006/07/17(月) 10:30:25ID:???
なんだかよく分からんが、
function hoge(){
 // $matches配列の生成
 return $matches[0][0]; // 値を返す
}
echo hoge(); // 値を表示する
なら表示されるはずだが。
0542nobodyさん2006/07/17(月) 10:36:03ID:???
PHPのIFで通常ありえないような挙動はするものでしょうか?
ちょっと意味不明かと思いますが、

具体的には以下のIFでループが発生しました。
(ただ、再現性が著しく低いです。というか再現できなかったと思います)

$temp = explode( "/" , $_SERVER['SCRIPT_NAME'] );
$start = count( $array ); // $arrayは配列です。
for( $i=$start; $i < (count($temp) -1); $i++ ) {
 // 変数 $i にアクセスしない処理
}
なんかやらかしてるでしょうか?
それともやっぱり環境なのかな?
0543nobodyさん2006/07/17(月) 10:45:33ID:???
日本語でおk
0544nobodyさん2006/07/17(月) 10:45:40ID:???
1.055e+006 こういう文字列を数字に直すにはどうしたらいいんでしょうk?
0545nobodyさん2006/07/17(月) 10:48:27ID:???
>>544
eの意味を調べましょう。
0546nobodyさん2006/07/17(月) 10:50:28ID:???
http://www.google.co.jp/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=%E5%9E%8B%E3%81%AE%E7%9B%B8%E4%BA%92%E5%A4%89%E6%8F%9B&num=50
0547nobodyさん2006/07/17(月) 10:57:33ID:???
echo 1.055e+006 + 0;
で、できました
0548nobodyさん2006/07/17(月) 10:58:04ID:???
>>543
意味がわからないって事かな?ごめん 2ch語?よくしらないので

>>542の IF の記述法に問題があるのか。という点と、
例えば $array 等に NULL や文字列、オブジェクトなどの予想外の要素を
代入した場合に素直に動くのか、それとも予想もできない動作をするのか
等の情報が知りたかったと言うことです。

何かのネタだったらごめん。
ちょっと解説してくれると助かる。よかったらだけど…
0549nobodyさん2006/07/17(月) 11:09:25ID:???


ウルトラマンが悩みを聞いてあげるスレッド


1 名前:('A`) 2005/05/20(金) 21:05:58
    /    ||    :ヽ
   ┌|(⌒ヽ :|| ..:⌒: |┐ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
   |::|::ヽ.__:):||(___ノ ::|::| │ 
    |:|: ..   :||    .. |:|  │ 
    :|: ..   ||    ..|| <   ジュワ!
     :\ [_ ̄] /::|   │ 
::     |\|_|_|_|_/:::|    \________


2 名前:('A`) 2005/05/20(金) 21:06:49
ジュワワワジュワワ、
ジュワジュワジュジュワワワワワ?


3 名前:('A`) 2005/05/20(金) 21:07:27
    /    ||    :ヽ
   ┌|(⌒ヽ :|| ..:⌒: |┐  / ̄ ̄ ̄ ̄ ̄ ̄ ̄
   |::|::ヽ.__:):||(___ノ ::|::|  │ 
    |:|: ..   :||    .. |:|  │ 
    :|: ..   ||    ..|| < >>2日本語でおk 
     :\ [_ ̄] /::|    │ 
::     |\|_|_|_|_/:::|     \_______
05505422006/07/17(月) 11:11:26ID:???
ごめん追記。
通常は素直に動く事は解っています。NULLを0と等価とみなし、
オブジェクトではフィールド数を返すなど。
ただ、たまーに変になる可能性がちょっとでもあるのかな?
と言うことが知りたかったというか、ごめんよ日本語下手で。

まずは日本語を勉強しろって事だな。正直スマンカッタ
0551nobodyさん2006/07/17(月) 11:13:54ID:???
>>549
サンクス! つまりは>>550って事だな。クソッ!!
0552nobodyさん2006/07/17(月) 11:14:12ID:???
そんな不安があるなら代入する前にNULLチェックなりなんなりすればいいのに
0553nobodyさん2006/07/17(月) 11:31:29ID:???
>>550
>>542の場合、$startに数字じゃなく文字が入ったりすると永久ループする可能性があるけどね。
これが本当に$startはcount()の結果以外は入らないようになってるのならちょっと分からんけど。
他にあるとしたらループの中で$tempを破壊してしまうケースくらいか。

ま、ifは変な挙動をしたりしない。
しかしPHPの変数が様々な型を自動変換するのをプログラマが忘れてることは多い。
変な挙動に見えても大抵はそれは「仕様」だ。
0554nobodyさん2006/07/17(月) 11:34:11ID:???
>>552
>>542では、終了の値が有限であり、(ファイル名がもの凄い長いとかじゃないです)
かつ、開始の値に関数 count() を利用する為、負の値は通常取らないはず。
この条件でどうして無限ループが発生したのかが疑問なんです。

Nullチェックなりなんなりしろってことは、count() は極稀に負の値を
返したりする事がある。って事かな?
その場合、IFの開始、終了値の制限範囲を予め定めるってチェックを
する必要があるけど、それって普通しないですよね?
ただの事故か、それとも潜在的に無限ループの可能性があるのかが知りたかっただけなんです。
0555nobodyさん2006/07/17(月) 11:39:13ID:???
>>549
それ何度見ても笑ってしまう
0556nobodyさん2006/07/17(月) 11:40:14ID:???
十中八九他の部分に原因があると思うなあ
0557nobodyさん2006/07/17(月) 11:50:47ID:???
>>553
あ、そうか。ありがとうございます。かなり参考になりました。
変数の型には留意しているつもりなんですが、やっぱり見えないところで
いろいろ変換されているかもしれません。
>>556
ループ処理はこれだけだったんです。
変数代入は IFの直前で他の値が入る隙はなかったんです。
一番可能性が高いのは、処理中に $temp に何かいれた。かな?
(無論、そんな事はしていないつもりですが)

再現性が殆ど皆無である為、ただの事故だったかも知れませんが
変数の型に常に留意しなければならないなど、いろいろ参考になりました。

ありがとうございました。
0558nobodyさん2006/07/17(月) 11:52:27ID:???
どっかに思い込みで見逃してるとこがあると思うね。
0559nobodyさん2006/07/17(月) 12:07:52ID:???
うーん、そう言われると一番それっぽいな。
スクリプトって寛大に受け入れてとりあえず動いてくれるけど、
それが難しく感じる事の方が個人的には多い。

現実的で有効な対処法は、ソースを第三者にみて評価してもらうかな。
愚問に付き合ってくれて、みなさんありがとうございました。
0560nobodyさん2006/07/17(月) 12:47:23ID:???
質問です。
<form method = "POST" action = "test.php">
<input type = "checkbox" name = "type" value = "a=4,b=7" checked>良かった<br>
<input type = "checkbox" name = "type" value = "b=2,c=3" >悪かった<br>
<input type = "checkbox" name = "type" value = "c=3" >その他
<input type ="submit" value="投稿する"><br>
</form>
フォームを作っているのですが
一つのチェックボックスに複数の数値を持たせたいのですが
どのようにしてPHPは処理すればいいでしょうか?
0561nobodyさん2006/07/17(月) 13:11:17ID:???
ありえねぇ・・・
0562nobodyさん2006/07/17(月) 13:18:46ID:???
>>560
$type = array();
foreach(explode(",", $_POST['type']) as $t) {
list($k, $v) = explode("=", $t);
$type[$k] = $v;
}

これでa=4,b=7を選択すると
$type['a'] = 4
$type['b'] = 7
の状態になると思う。

>>561
このくらいふつーだろ。
0563nobodyさん2006/07/17(月) 14:05:59ID:???
>>469
>>470
ありがとうございます
0564nobodyさん2006/07/17(月) 15:33:09ID:???
>>560
仮に処理できるとしても、そんなクソな設計は止めたほうがいい。
複数の値を持たせなきゃならん必要性があるのか?
05655602006/07/17(月) 16:19:00ID:ab1cz1rX
>>564
例えば良かったと悪かったが選択されていたら
a=4,b=9,c=3となるようにしたいです。
そして、それぞれのa,b,cの値によって次の処理をしたいのですが
考え方が間違っているのでしょうか?
05665602006/07/17(月) 16:24:35ID:ab1cz1rX
実際良かったと悪かったが同時にチェックされることは考えにくいですが、
これらは例ですので気にしないでください。
混乱させてしまったらごめんなさい。
0567nobodyさん2006/07/17(月) 16:25:43ID:???
>>565
<input type = "checkbox" name = "type" value = "1" checked>良かった<br>
<input type = "checkbox" name = "type" value = "2" >悪かった<br>
<input type = "checkbox" name = "type" value = "3" >その他

リンク先のページで、
if( $_POST['type']==1){
$a=4;
$b=9;
$c=3;
}elseif(なんたら)


ってかんじがいいと
0568nobodyさん2006/07/17(月) 16:30:20ID:???
もしくわ、
<input type = "checkbox" name = "type" value = "a=4,b=3,c=5" checked>良かった<br>

$tmp = explode( ',', $_POST['type']);
foreach( $tmp as $val){
$aaaa = explode( '=', $val);
print_r( $aaaa);
}
0569nobodyさん2006/07/17(月) 16:31:47ID:???
ていうか、どうでもいいことかもしれないけどさ、

$tmp を無意識に「ドル、ティムポ」って読んじゃうのもれだけ?
05705602006/07/17(月) 16:33:53ID:ab1cz1rX
>>567
速レスありがとうございます。
PHP初心者で、>>567が自分の作ろうとしているものに適しているのかどうか
よくわからないので、localhostで試してからまた来ます。
0571nobodyさん2006/07/17(月) 16:34:15ID:???
あらかじめ多数の指定を持たせたプログラムを、ユーザI/F変えるだけで自由に
再構成できるんだから>>560みたいなやり方も一概に悪いとは言えないと思う。
たとえばaとかbとかのキー自体がiniファイルで外部設定できるような仕組みになってれば、
いちいちプログラムを変えなくても様々なニーズに容易に対応できるようになるだろ?
0572nobodyさん2006/07/17(月) 16:35:17ID:???
>>568
>>562
0573nobodyさん2006/07/17(月) 16:47:57ID:???
なんとか診断みたいなやつかな? 設問がたくさんあるタイプのやつ。
name = "type[]"
にして複数のチェックボックスを配列にするといいかも。
05745602006/07/17(月) 16:59:52ID:ab1cz1rX
>>571
すいません。勉強不足で何のことやらさっぱりです。
>>573
>なんとか診断みたいなやつかな? 設問がたくさんあるタイプのやつ。
ズバリそれです。
>name = "type[]"
>にして複数のチェックボックスを配列にするといいかも。
これもよくわかりません。
0575nobodyさん2006/07/17(月) 17:02:26ID:???
おお・・・もう
0576nobodyさん2006/07/17(月) 17:03:28ID:???
>>574
…なんできみわ"a=4,b=7"みたいな変なパラメータを指定できるようにしたいなんて思ったのかね

チェックボックスで複数指定できるようにするならname="type[]"としとかないと
複数のパラメータを受け取れないぞ。最後の1個で上書きされてしまう。
name="type"にして選択できるのはどれか1つ、ってするならtype="radio"だろ。
05775602006/07/17(月) 17:05:47ID:ab1cz1rX
>>567
<?php
if( $_POST['type'] == 1 ){
$a=4;
$b=9;
$c=3;
}elseif( $_POST['type'] == 2 ){
$a=1;
$b=2;
$c=3;
}
echo "$a"
?>
これだと、$aはelseifの値をとってしまいます。
二つの数値を足したいのですが、どうすればいいでしょうか?
0578nobodyさん2006/07/17(月) 17:09:47ID:???
>>571
再構成がしたいならパラメータを設定したファイルからI/Fを生成すればHTMLすら弄らなくていいよ。
0579nobodyさん2006/07/17(月) 17:13:11ID:???
>>577
まず複数指定できるようにするなら
<input type = "checkbox" name = "type[]" value = "a=4,b=7" checked>良かった<br>
<input type = "checkbox" name = "type[]" value = "b=2,c=3" >悪かった<br>
<input type = "checkbox" name = "type[]" value = "c=3" >その他
とnameのとこに[]をつけてパラメータを配列で受け取れるようにせんと。
すると複数にチェックした場合
$_POST['type'][0] = "a=4,b=7"
$_POST['type'][1] = "b=2,c=3"
のようにセットされるようになる。

name="type"にしちゃうと2つ選択しても
$_POST['type'] = "a=4,b=7"
という値が、後ろに続いた
$_POST['type'] = "b=2,c=3"
で上書きされてしまって、結果として
$_POST['type'] = "b=2,c=3"
しかデータ自体が残らないんだから、プログラム上で足そうと思っても足しようがない。

あとは配列を順番に処理するだけだから、ちょっと考えてみれ。
0580nobodyさん2006/07/17(月) 17:13:35ID:???
>>574
たとえばhtmlのフォームのところで
<input type="checkbox" name="type[]" value="1">回答1<br>
<input type="checkbox" name="type[]" value="2">回答2<br>
<input type="checkbox" name="type[]" value="4">回答3<br>
<input type="checkbox" name="type[]" value="8">回答4<br>
ってやっておくと、submitで飛んだ先のphpで
foreach($_POST['type'] as $cb){
 echo "$cb<br>" ;
}
とか出来るので便利。
あとは>>562と組み合わせるといいよ。
0581nobodyさん2006/07/17(月) 17:15:08ID:???
>>577
そんな変な仕様は最初に説明しないと誰もわからんぞ
05825602006/07/17(月) 17:21:58ID:ab1cz1rX
>>579>>580
ありがとうございます。
読んだだけでは、なかなか理解できなかったので
じっくり考えて見ます。
>>581
すいません。
どうやって説明すればいいのかわからなくて。
0583nobodyさん2006/07/17(月) 17:28:32ID:???
設定ファイルまでいくとhtml以外をいぢるっていう意味では
phpでrequireするのと変わらない場合もあるけどな。

htmlだけを直す、っていう方がいい場合もある。
もちろん、そうじゃない場合もある。
0584nobodyさん2006/07/17(月) 17:50:56ID:???
人に説明できんもんを、プログラムに書くことはできんわな
0585nobodyさん2006/07/17(月) 18:13:21ID:???
>>581
お前が>>565を読んでないだけ
0586nobodyさん2006/07/17(月) 18:27:47ID:???
>>560よ、キミのやりたいことはだいたい分かった。
とりあえず複数の値をフォームで持たせるというやり方は
「間違っている」と言わざるを得ない。あるいは「良いやり方ではない」。

それでも出来るかもしれないけど、もっとシンプルでスマートで
応用の利くやり方は他にいくつかある。
「それを教えてよ」というのは無しだ。それを考えるのがプログラミングだ。
05875602006/07/17(月) 19:54:17ID:ab1cz1rX
errorが出て
なかなかうまくいきません。
まだ少しプログラムを組むのは早かったかもしれません。

>>596
聞こうと思ったら先に釘を刺されてしまいましたか。
でも頑張ってみます。
0588nobodyさん2006/07/17(月) 19:58:36ID:???
未来アンカーキタコレ!!
0589nobodyさん2006/07/17(月) 21:48:44ID:???
>>586
説得力ねーな
0590nobodyさん2006/07/17(月) 21:52:11ID:???
>>589
アルゴリズム考えられない馬鹿は黙ってろ
0591nobodyさん2006/07/17(月) 22:00:01ID:???
>>560
フォームからは1個の値を渡す。
それをphp側で複数に切り替える。
 if(answer=='1'){a=4;B=7;}
 elseif(answer=='2'){b=2;c=3;}・・・
という感じで。

一般化すると。
「本当にそこで処理しなければいけないかを考えろ。」
0592nobodyさん2006/07/17(月) 22:44:25ID:Vse0CV74
$_POST['msg']から空行を取り除くにはどうしたらよいでしょうか?
0593nobodyさん2006/07/17(月) 22:46:02ID:???
preg_replace使って空行を削除かなぁ
0594nobodyさん2006/07/17(月) 22:53:34ID:Vse0CV74
>>593
恐縮ですが、削除というのはどうすれば出来るのですか?

$_POST['msg'] = preg_replace ('^$', '', $_POST['msg']);
これじゃダメですよねぇ?
0595nobodyさん2006/07/17(月) 23:08:01ID:???
空行ってのは要するに改行文字が連続している部分のことだと思うので
連続した改行を1つの改行に置き換えれば空行=削除に値するんじゃない?
0596nobodyさん2006/07/17(月) 23:27:12ID:???
連続した改行というのは
「2個の改行」ではなく「2個以上連続した改行」な。
「空白+改行」を空行と扱うかを考える必要があるけどね。
0597nobodyさん2006/07/17(月) 23:39:42ID:???
>>589
別に説得してないし。
プログラミングの本質を教えてるだけだろ。
0598nobodyさん2006/07/18(火) 02:57:48ID:???
@ITのサイトのようにどのリンクをクリックしても
左のバーや上部を表示させるにはどのようにすればいいのでしょうか?
0599nobodyさん2006/07/18(火) 03:05:04ID:???
>>594
preg_replace (array(' ',' '),'', $_POST['msg']);
0600nobodyさん2006/07/18(火) 03:05:59ID:???
>>598
CSS
0601nobodyさん2006/07/18(火) 03:35:07ID:RAKThs0C
CGIでクッキーかきました。保存されてるのを確認したのですが、
$ENV{'HTTP_COOKIE'}で何も取得できません!
作成直後ではなくて、ブラウザでリクエストを再送しても取得できません。
どんな原因が考えられましょうか!
0602nobodyさん2006/07/18(火) 03:47:13ID:???
>>598
HTMLをテンプレとして別ファイルにしてinclude。
別ファイルにする際、左のバーだの上部だの、いつも同じ部分を
別個にすればよい。

ちなみにテンプレと言っても、いわゆる「テンプレート・エンジン」なんて使わなくても
自作テンプレで十分。
0603nobodyさん2006/07/18(火) 03:47:50ID:???
すいません、スレ違いでした
0604nobodyさん2006/07/18(火) 04:02:26ID:???
>>602
ありがとうございます。
それだと、同レベルのディレクトリ以外は難しくないですかね?
./../等として読みに行くとすると、ディレクトリ配置を変更するとなると
全てのファイルを書き直さなければいけなくなると思います。

また、include元のHTMLが<img src="./hoge.jpg">等とやっていた場合は
違うレベルのディレクトリのファイルから呼び出されたりすると
そのイメージのリンクは違うファイルを対象としてしまうと思うんですけど。

結構大きなサイトになると、同レベルのディレクトリに全て置くっていうのは
現実的じゃない気がするんですけど、そういうものなんですかね?
0605nobodyさん2006/07/18(火) 06:51:30ID:???
>>604
絶対パスにすればいいじゃん
0606nobodyさん2006/07/18(火) 07:20:13ID:???
>>597 「説得力」を辞書で引いてみるといいぞ
0607nobodyさん2006/07/18(火) 09:02:10ID:???
初心者を説得するスレじゃないからどうでもいい
0608nobodyさん2006/07/18(火) 09:28:49ID:???
「説得力」には説得するって意味は無いってことだろ。
この程度の日本語が通じないヤツは、ほんとにどうでもいい
0609nobodyさん2006/07/18(火) 09:29:55ID:WFdfnqCG
以前、ご質問させて頂いた
>>453です。
本日、文字化けが起きたマシンを調べてみた結果、php.iniは
;mbstring.language = Japanese
となっており、mbstring.language はコメントアウト(neutralでUTF-8?)
されていました。
ただ、文字化けが起きなかった他のPCも、mbstring.language はコメント
アウトされており、mbstring.language が文字化けの原因ではないような
気がします。
どなたか、この文字化けの原因はお分かりでしょうか?教えて頂ければ、
幸いです。
0610nobodyさん2006/07/18(火) 09:48:56ID:???
>>609
とりあえず、それがコメントアウトされてたら文字化けしない方がおかしいので直せ。
そこは通常、Japaneseで設定されてないといけない。
ただ、ここがJapaneseじゃなくてもdetect_orderに特定の文字コードが設定されてれば
文字化けは回避できるかもしれない。
通常、これはautoに設定されてて、autoはlanguageの設定に合わせて自動設定されるので。
0611nobodyさん2006/07/18(火) 10:03:09ID:???
>>609
だからまずアップロードされたファイル自体を目視確認し、
それが正常であれば、
処理ごとに
0612nobodyさん2006/07/18(火) 11:33:37ID:WFdfnqCG
>>609です。
>>610様。
先程、コメントを外し、mbstring.language = Japanese
にしてApacheを再起動しました。

>>611様。
アップロードされたファイル自体を目視確認しました。アップロード
されたファイル自体は、確かに文字化けしていないことを、目で確認
しました。
 けれども、文字化け(最初の文字だけが「??」になってしまう)は
変わりません。アップロードされたファイルを「system(nkf -w 〜);」
とやってもやらなくても、同じ文字化けが起きてしまいます。

if ($_FILES['csvfile']['name'] != "") {
$tempfile = $_FILES['csvfile']['tmp_name'];
$tempfile_utf = $_FILES['csvfile']['tmp_name']."utf";
system("nkf -w ".$tempfile." > ".$tempfile_utf); // これをやらなくても文字化けする。
$file = fopen($tempfile_utf, 'r');
list($field1,$field2,$field3)=fgetcsv($file,20000);
print("1番目".$field1."2番目".$field2."3番目".$field3);
}
なのですが、何が原因かお分かりでしょうか?
0613nobodyさん2006/07/18(火) 11:38:29ID:???
>>606
説得力ねーな、お前wwwwwwwwwwwwwwww
0614nobodyさん2006/07/18(火) 11:55:52ID:???
PHPの解説をしている、とあるサイトでphpinfo();の説明の為に、
実際にphpinfo();を表示させているサイトがありました。
サーバの環境から、Win鯖なのでユーザー名まで全て晒しています。

phpinfo();が表示する情報程度のものは
別に誰に見られても困るほどの事は無いのでしょうか?
0615nobodyさん2006/07/18(火) 12:06:52ID:???
>>614
これらが見えて困るのなら、
見えなくても困る。
06166142006/07/18(火) 12:17:39ID:???
>>615
すみません、意味が判りません。
0617nobodyさん2006/07/18(火) 12:40:04ID:???
>>612
>  けれども、文字化け(最初の文字だけが「??」になってしまう)は
その最初の文字って何て文字さ。

> list($field1,$field2,$field3)=fgetcsv($file,20000);
> print("1番目".$field1."2番目".$field2."3番目".$field3);
化ける内容ってこの出力なのか?
fgetcsvは日本語を含むCSVデータでは使えないぞ?
0618nobodyさん2006/07/18(火) 12:41:07ID:???
>>616
俺が分かりやすくストIIに例えると
これらが見えて困るのなら、見えなくても困る。
ってことだ
0619nobodyさん2006/07/18(火) 12:42:36ID:???
日本語でおk
06205602006/07/18(火) 13:13:09ID:n2ZEUTcJ
>>560ですが、なかなかうまくいきません。
name="type[]" value="1"のようにしたほうが良いと言うことまでは
わかりましたが、どうやって複数の数値を持たせるのかがわかりません。
なんどもすいませんが、よろしくお願いします。
0621nobodyさん2006/07/18(火) 13:14:47ID:???
>>616
お前はアホ
0622nobodyさん2006/07/18(火) 13:16:46ID:???
たとえば safemode で話そう。
safemode の on/off が見えていたら困る場合、

on/off が見えなくても、
on か off のどちらかなのだから、safemodeが見えなくても、1/2で困ることになる。
0623nobodyさん2006/07/18(火) 13:20:08ID:???
さらに safemodeで困らせようとする側は、
onを予想して困る要因を作成し、1/2にハズレてだめだったとしても、
次にoffの場合の困る要因を作ればいいのだから、
どのみち困らせることができることになる。
■ このスレッドは過去ログ倉庫に格納されています