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

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

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

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

本スレ【PHP】質問スレッドpart33【php】
http://pc8.2ch.net/test/read.cgi/php/1140027592/

【PHP】下らねぇ質問はここに書き込みやがれpart18
http://pc8.2ch.net/test/read.cgi/php/1142417901/

過去スレは>>2-3あたり
0496nobodyさん2006/04/18(火) 13:16:03ID:???
>>490
ログデータを作るところは、implode使ったほうが見通し良くないか?
04974462006/04/18(火) 13:19:13ID:QNgm/uEx
>>456さんの言うとおり全てdist clean してmakeし直したら上手くいきました。

どうみても素人です。本当にありがとうございました。
04984902006/04/18(火) 13:54:39ID:???
>>496氏
ご意見ありがとうございます。
implodeを使うと、formのhiddenで渡している値なども、
まとめてログに格納されてしまうので・・・

あ。

POSTされた内容を$postに丸投げ($post = $_POST)しているから、
そんなことになるのですね。

$post[]の内容を整理して、implodeで見通し良くログを作成したいと思います。
ありがとうございました。
0499nobodyさん2006/04/18(火) 14:58:11ID:???
>>495
> while (list($key, $val) = each($cate)) {echo "<option value=$key>$cate[$key]</option>";}
この$cateはどこでどういう風に作ってるんだ?
そこでゴミ入れちゃってるんじゃないかと思うんだが
05004902006/04/18(火) 15:01:51ID:???
>>499氏
> この$cateはどこでどういう風に作ってるんだ?

別ファイルにて$cateの設定をしております。
$cate => カテゴリーの意 です。

$cate = Array (
'news' => 'おしらせ',
'music' => '音楽',
'baseball' => '野球',
'game' => 'ゲーム',
'yota' => 'ヨタ話',
'test' => 'テスト'
)

こんな感じです。趣味がバレて(*‘ω‘ *)ィャンですが。

0501nobodyさん2006/04/18(火) 15:10:49ID:ksf2FOYQ
PHP Version 4.4.1-pl1
xamppにて環境を構築しています

ファイルのアップロードをPHPで実現しようとscriptを組みましたがファイル名によっては正常にアップロードされない場合があります。
アップロード前に適当な長い文字にリネームすると正常に動作するのですが、これは私の綴りに誤りがあるからなのでしょうか。
web上でphp scriptを配布されている方のscriptも走らせて見たのですが全く同じ現象で、どこが悪いのかさっぱりです。
何かバグや仕様などあるのでしょうか?
0502nobodyさん2006/04/18(火) 15:14:13ID:???
>>501
うpできないファイル名の例を挙げてみたら?
05035012006/04/18(火) 15:19:11ID:ksf2FOYQ
>>502
レス有難う御座います。
そしてすいません。
肝心な部分が抜けていました。

FILE_003.jpgが通らず、200601071530000.jpgは問題無し
前者をリネームし00aerasfsaf5.jpgにしてみましたが通らずといった感じです。

$upfile_name = $_FILES["image"]["name"];
$upfile = $_FILES["image"]["tmp_name"];
$path = dirname($_SERVER[PATH_TRANSLATED]).IMG_DIR;

if (file_exists($upfile)) {
$dest = $path.$upfile_name;
move_uploaded_file($upfile, $dest);
$ext = substr($upfile_name,-4);
rename ($dest,$path.date("20ymdhis").$ext);
$imgname = date("20ymdhis").$ext;
echo $size = getimagesize($path.$imgname);
$W = $size[0];
$H = $size[1];
0504nobodyさん2006/04/18(火) 15:21:28ID:ksf2FOYQ
アップロード処理の一部はこんな感じで書きました。
原因があるとしたら、ファイル名処理が怪しいですかね。
ケツから三行目にechoとか入ってますが、なんちゃってデバッグでちゃんと取得できているか試してた名残です(汗
0505nobodyさん2006/04/18(火) 16:04:58ID:???
>>504
以下で同じ駄目だというファイル名で実験したが普通に動いているぞ?
<?php
$upfile_name = $_FILES["image"]["name"];
$upfile = $_FILES["image"]["tmp_name"];
$path = dirname($_SERVER[PATH_TRANSLATED]).'/upfile/';

if (file_exists($upfile)) {
$dest = $path.$upfile_name;
move_uploaded_file($upfile, $dest);
$ext = substr($upfile_name,-4);
rename ($dest,$path.date("20ymdhis").$ext);
$imgname = date("20ymdhis").$ext;
echo $size = getimagesize($path.$imgname);
$W = $size[0];
$H = $size[1];
}
?>
<html>
<head>
<title>テストたぼけたれ</title>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>

<body bgcolor="#FFFFFF">
<form action="./0.php" method="post" enctype="multipart/form-data">
<input type="file" name="image">
<input type="submit" value="送信">
</form>
</body>
</html>
0506nobodyさん2006/04/18(火) 16:12:20ID:???
>>504
FILE_003.jpgのファイルサイズがやたらに大きいとかじゃないのか?
0507nobodyさん2006/04/18(火) 16:15:06ID:???
ファイルサイズ制限かタイムアウトだろうな。
05085012006/04/18(火) 16:39:57ID:???
たくさんのレス有難う御座います。
仰るとおりファイルサイズ制限によるものでした。
PHPマニュアルから関数を調べてサンプルコードをコピペした際、隠し要素のMAX_FILE_SIZEをそのままにしていたのが原因でした。
初歩的なミスで申し訳ないです。
テンパってると簡単なミスにも気づかないものですね........
0509nobodyさん2006/04/18(火) 16:53:20ID:???
>>490
$imageの後ろにゴミが付くのなら分かるが(これだと改行コードが付くだろう)
$catの方に付くってのはわからんなー
05104902006/04/18(火) 16:59:31ID:???
>>509氏
レスありがとうございます。
当面は「ゴミ付データをrtrimする」という場当たり対処で乗り切りますです。


・・・目覚めは悪いですが、現状の自分のスキル不足だと割り切ります。
これから勉強していくうちに、解決策も思いつくかもしれませんし(つД`)

レスをいただいた諸氏へ感謝(。・ω・。)ゞ

0511nobodyさん2006/04/18(火) 18:30:12ID:???
if( 入力チェック )
$err['name'] = 'エラーメッセージ';
if( 入力チェック )
$err['tel'] = 'エラーメッセージ';
if( 入力チェック )
$err['address'] = 'エラーメッセージ';

のような入力チェックを作ったとして、
表示側を下みたいにした時、

<?= $err['name'] ?>
<input type="text" name="name"><br>
<?= $err['tel'] ?>
<input type="text" name="tel"><br>
<?= $err['address'] ?>
<input type="text" name="address"><br>

error_reportingの設定によってUndefinedが出るんだけど、
error_reporting関数か.htaccessを使って設定を変えるのと、
表示側を

<? if( isset($err['name']) ){ echo $err['name']; } ?>

とするのとどっちがいいんだろう?

0512nobodyさん2006/04/18(火) 18:42:51ID:FgrLDE8s
ある一定の時間まで、カウントダウンのように
分数(秒数)単位で結果を出力させるにはどうしたらいいでしょうか?

http://iodine-127.no-ip.info/math/countdown.php
こんな感じなんですが、文字で出力させたいのです・・・
0513nobodyさん2006/04/18(火) 20:30:38ID:???
>>492
http://pear.php.net/package/PHP_Beautifier
0514nobodyさん2006/04/18(火) 20:31:20ID:0MA4uQo3
文字コードの質問です。
phpのファイルはエディタの設定をシフトJISにしています。ヘッダのcharsetはshift-jisです。phpmyadminの最初のページで、languageをjapanese(ja-sjis)にしています。php.iniのmbstringの項目ではmbstring.internal_encoding = SJISになっています。
以上が全て同じなら、文字コード的に問題無いでしょうか?作ったシステムは今のところ正常に動いています。

それと、なんだかんだいってEUC-jpでつくるのがベストみたいな話を聞いたのですが、なぜでしょうか?

よろしくお願いします。
0515nobodyさん2006/04/18(火) 21:24:39ID:ezAkcLQV
Apache 1.3.34+php 4.3.10で質問です
指定したディレクトリで指定した拡張子のMIME typeが何と設定されてるか
httpd.confやら.htacccessやら調べて取得してくれる関数ってありませんか
0516nobodyさん2006/04/18(火) 23:04:17ID:???
>>514
「なんだかんだでEUC-JP」の理由が理解できないうちは、
なんだかんだでEUC-JPにしとくといいと思うよ。

EUC以外のエンコードを採用するのに確固たる理由や確信が持てるように
なったら、それにすれば良いとです。
0517nobodyさん2006/04/18(火) 23:58:23ID:???
>>514
PHPで構築したサイトを1年以上運営していますが
Shift_JISで特に問題を感じたことはありません。
05184702006/04/19(水) 00:05:26ID:???
作ってみたが、難しい・・・
http://s2.muryo-de.etowns.net/~teti/tools.phps
どっかエラーがありそう。

文字コード「EUC」の改行コード「LF」に変換してからしか使えないし
何か、良い方法無いかな・・・
0519nobodyさん2006/04/19(水) 00:16:42ID:47s4d2RM
アップローダーを作っているのですが、日本語の入ったファイルをアップできません。
というか、2byte文字が入っていると$_FILES['upfile']['name'];でファイル名が収得できません。
拡張子のみが返ってきます。

英数字のみのファイルはアップロード出来るので、2byte文字が原因だとは思うんですがどうすればいいのでしょうか?

$filename = $_FILES['upfile']['name'];
$enctype = mb_detect_encoding($filename);
$filename = mb_convert_encoding($filename,"EUC-JP","enctype");

if (move_uploaded_file($_FILES['upfile']['tmp_name'],$updir.$filename)
== FALSE){
print("アップロードに失敗しました。");
}else {
print( $filename . "アップロードしました。");
}
0520nobodyさん2006/04/19(水) 00:43:16ID:???
例外を使おうと思ってんだけど、どういった場合に使うか迷う。

たとえばDBとコネクトするごとにtryしたほうがいいのか
クエリを発行するごとにtryしたほうがいいのか・・・

皆さんは例外結構使ってまつか?
05215142006/04/19(水) 01:05:36ID:3WMC/UyZ
>517
レスありがとうです。
SJISとかのデメリットってなんですかねぇ?
たまにUTF8を激しく推奨みたいのも見かけますし、
なにがいいのかわからないです。
自分的にはSJISが好きなのですが、予期せぬ\マークがでたりしますが、htmlspecialcharsとかstripslashesをやると消えるので、
あまり不具合も感じません。
具体的なお話がきけると有り難いです。
よろしくお願いします。
0522nobodyさん2006/04/19(水) 01:48:03ID:???
ちゃんとわかってればいいですよ。
DBへ値を保存するときにはちゃんと文字コードを意識しなければだめ。

最近はサーバ環境がユニコードのためか、viでそのまま文字が読めることに
UTF-8はいいなと感じてる。

携帯はSJISがいいでしょ?
0523nobodyさん2006/04/19(水) 01:51:48ID:???
>>521
大抵サーバがEUCだからEUCでスクリプト書いておくと何か問題があったときにviとかで直接見られる。
サーバ上にあるスクリプトを直接見ることで、何者かの手によって勝手に改変されてないかわかる。

・・・てことより、バグ見っけたらサーバ上のスクリプトをコッソリ直すってコトの方が多いなw
だからEUCで書いてた方が楽なときが多い。
全てのサーバがnkfとか入れてるわけじゃないからね。特に海外のレンタルサーバなんて・・・
まぁコメントとか日本語使わなきゃいいんだけど、日本語のコメントなきゃサッパリ分からないしー
0524nobodyさん2006/04/19(水) 01:55:59ID:???
>>521
mb_** みたいなライブラリが使えない状況だと、EUC の方が圧倒的にコーディングが楽だよ。
SJIS は、文字列を途中から評価しようとしたとき、そのバイトが2バイト文字の一部なのか、そしてそれが何バイト目なのかがすんなり判断できない。
あと環境によっては、2バイト文字の一部に \ を含むものがあるというのがネックになる。
ヘタするとスクリプトのパースすら失敗するしね。
できるだけどこでも動くものを作ろうと思うと、SJIS よりも EUC の方が苦労しないと思う。
0525nobodyさん2006/04/19(水) 01:58:44ID:???
PHPでDB(PostgreSQL)使うときにbeginて使えてる?
なんかちゃんと動いてんのかわかんねー
DBへの書き込み自体はうまく行ってるみたいだし
pg_query( 'begin' )だけで問題ないよね?
0526nobodyさん2006/04/19(水) 02:00:59ID:???
>>525
INSERT して ROLLBACK してみりゃいいじゃん。
0527nobodyさん2006/04/19(水) 02:53:15ID:???
あ、なるほどねー
サンクスコ
0528nobodyさん2006/04/19(水) 03:51:04ID:sslsiAd8
すごいくだらない質問ですが答えていただけたら嬉しいです。

PHPでオンラインテストを作る課題を出されました。
mySQLでtest、question、answerが含まれたテーブルを作ったんですが、このテーブル1つだけで

テストを選んだら複数の問題が表示される
1つの問題に3つの答えが表示される
3つのうち1つだけが正解

というスクリプトは書けるでしょうか?
0529nobodyさん2006/04/19(水) 04:08:09ID:enTaLLyd
Functionの引数とglobal、使い分けがわからん。
こういう場合は引数で渡して、こういう場合はglobal宣言っていう例ない?
0530nobodyさん2006/04/19(水) 04:12:06ID:???
>>528
書けなくはないけど、効率悪いか、問題のメンテナンスに難がある。
・テストに対して問題は1対多
・問題に対して選択肢は1対多(ただし3つ固定)
てことを考えると、テストと問題は別テーブル、回答は本来別テーブルだけど、
パフォーマンスに難があれば問題に含めても良い。

…全然PHP関係ないね。DB板向け。
05315282006/04/19(水) 04:32:32ID:sslsiAd8
>>530
最高でもテーブルは2つまでとのことなので、テーブルを2つ作り、テストのみ、問題と回答1、回答2、回答3というようにしたらいいでしょうか?
正解の回答も回答4などとして加えてスクリプトで、選んだ回答が回答4のとき、などと書いて正解を確かめるんでしょうか?

最初DB板で似たような質問したのですが普通にスルーされまして・・・(;´Д`)
PHPのスクリプトの問題なのかと思いこちらで質問させていただきました。
0532nobodyさん2006/04/19(水) 04:46:09ID:???
>>531
スクリプトは関係ない
DB板向け
05335282006/04/19(水) 04:51:23ID:sslsiAd8
>>532
分かりました。
どうもすいませんでした。
0534nobodyさん2006/04/19(水) 07:22:37ID:???
>>511
使う変数は前もって定義しておく
$err['name'] = "";
$err['tel'] = "";
$err['address'] = "";
0535nobodyさん2006/04/19(水) 07:29:27ID:???
>>519
ファイル名の最後が表とかで終わってるんじゃない
htmlの出力をshift jis以外にするしかないと思う
0536nobodyさん2006/04/19(水) 09:08:20ID:???
知識が浅いヤツはシフトJISなんか使っちゃダメ。
文字化けとかセキュリティ的な問題とか山のようにある。
http://d.hatena.ne.jp/t_komura/20060122#1137944280

携帯とかSJISのほうがいい場合は、出力直前にSJISにコンバートすりゃいい。
(ただ、最近の携帯はパソコンとほぼ同じく複数のエンコードに対応してるからEUCがオススメ)。
で、スクリプトの内部やDBではEUCで統一したほうが圧倒的に楽。
0537nobodyさん2006/04/19(水) 09:34:24ID:???
客からSJISで書けって言われるんだよ……
0538nobodyさん2006/04/19(水) 09:44:08ID:???
じゃあSJISでセキュリティリスク無くかける技術を身につけろ
0539nobodyさん2006/04/19(水) 09:58:26ID:???
>>536
へぇ、こんなSQLインジェクションのテクニックがあったんだね。
今までSJISを避けてきたけど、SJIS使わされるハメになったら穴だらけになるところだった。
危ない危ない
0540nobodyさん2006/04/19(水) 10:27:12ID:???
>>537
SJISにこだわる理由を聞け、理由を。

っていうかそんな客なんか切るか、もしくは
「セキュリティ強度が低下しますけどいいんですね?
または強度を維持したいなら見積もり額アップしますけど」
って言えよ。
0541nobodyさん2006/04/19(水) 10:34:25ID:???
SJISじゃないとたまにブラウザがcharset指定してても無視して文字化けするときがある
IE5の時代はよくあった
0542nobodyさん2006/04/19(水) 10:37:24ID:???
>>541
それは出力時にSJISにすればいいだけじゃない。
内部処理までSJISにするこたぁない
0543nobodyさん2006/04/19(水) 10:39:30ID:???
>>542
スクリプトチェックするときメモ帳で開けないジャンw
0544nobodyさん2006/04/19(水) 11:12:26ID:???
メモ帳て
0545nobodyさん2006/04/19(水) 11:13:47ID:???
そもそもPHPはInternalEncでSJIS対応してねーだろ?
0546nobodyさん2006/04/19(水) 11:19:06ID:???
>>543
スクリプトに日本語かかなきゃいい
0547nobodyさん2006/04/19(水) 11:28:46ID:???
>>546
日本語でちゃんとコメント入れておいてくれなきゃ、判んないじゃんw
0548nobodyさん2006/04/19(水) 11:30:18ID:???
>>547
ぴゅう太でもつかうといいよ
0549nobodyさん2006/04/19(水) 11:37:21ID:???
>>535
ありがとうございます。
表で終わっていると駄目なんですね・・・。
知らなかった。。
0550nobodyさん2006/04/19(水) 11:46:28ID:???
>>543
お・・・お前・・・・・(絶句)

>>545
ハァ??
0551nobodyさん2006/04/19(水) 12:13:20ID:???
>>549
途中にあっても駄目
ディレクトリの区切り記号"\"と判定されるから
表などであって他にもある

結論はシフトジスは使わない
0552nobodyさん2006/04/19(水) 12:13:34ID:FFPzklJQ
自首しますた

http://8909.teacup.com/tomi/bbs
0553nobodyさん2006/04/19(水) 13:11:01ID:???
$log = "example.log";
if (!file_exists($log)){
$logが見つからなかったらパーミッション666で$logを自動生成する
}

といったことをやりたいのですが、
fopenを使った場合、ログファイルなのでパーミッションを666にしたいのですが、
パーミッションが644になってしまい(Xrea使ってます)、
ディレクリの権限を変更しないと(707や777等)作成されませんでした。
なんかいい関数とか方法ありませんでしょうか?
functionで作れるような腕はもっておりませんorz
0554nobodyさん2006/04/19(水) 13:16:42ID:???
>>553
つ「chmod」
0555nobodyさん2006/04/19(水) 13:22:07ID:???
>>550
ハァ??

PHPで動作しないと思われる文字エンコーディングの例を以下に示します。

JIS, SJIS, ISO-2022-JP, BIG-5
これらのエンコーディングで書かれたPHPスクリプトは、特に符号化された文字列がスクリプトで記述子やリテラルに使用される場合には、動作しない可能性がありますが、
入力されるHTTPクエリに関してmbstringの透過的なエンコーディングフィルタを設定することでこれらのエンコーディングをほとんど使用しないようにすることができます。
注意:
SJIS, BIG5, CP936, CP949, GB18030 は、読者がパーサ/コンパイラ、文字エンコーディングと文字エンコーディングの問題点について精通していない限り内部エンコーディングとして使用するべきではありません。
0556nobodyさん2006/04/19(水) 13:27:36ID:???
>>555
ハァ??
0557nobodyさん2006/04/19(水) 13:42:26ID:???
>>555
デフォでは使えないということは、対応してないというわけではない。
(デフォで対応してないのはmb系全般そうだけど)
そこの説明は「非推奨。使用する場合は注意すること」っていう説明。
0558nobodyさん2006/04/19(水) 13:53:00ID:???
>>536
SJIS使ってるときにエスケープでaddslashesなんて使う方が悪い気がするけど。
mysql_escape_string使ってれば全角文字をちゃんと認識してエスケープできる。
0559nobodyさん2006/04/19(水) 14:00:38ID:???
>>558
だから{
>知識が浅いヤツはシフトJISなんか使っちゃダメ。
0560nobodyさん2006/04/19(水) 14:01:15ID:???
>>558
mysqlと決め付けるのもワロス
0561nobodyさん2006/04/19(水) 14:25:45ID:???
>>536
うん。もっとそのことを早めに解ってれば良かったんだけどね。
俺の場合はもう後の祭り状態だな。
0562nobodyさん2006/04/19(水) 14:51:21ID:yEjSiGYT
phpスクリプトをがんがん書いている方に質問です。
使っているキーボードは日本語配列ですか、それとも英語配列ですか?
双方のメリット、デメリットと合わせて教えて下さい。
0563nobodyさん2006/04/19(水) 14:59:01ID:???
>>562
日本語
メリット ここは日本で私は日本人だから
デメリット 特に無し
個人的にはそんなものよりキーを押したときの硬さなどが気になる…
長時間やっても疲れないのが一番!!
0564nobodyさん2006/04/19(水) 14:59:26ID:???
>>562
どっちでもたいした影響は無いんじゃないの?
要は慣れなんだし。
05655632006/04/19(水) 14:59:56ID:???
あ!ローマ字ってことね
0566nobodyさん2006/04/19(水) 15:12:32ID:???
>>565
いや、たぶん元の考えで合ってる。日本語106だとか英語101だとか。
0567nobodyさん2006/04/19(水) 15:28:38ID:???
phpに限らず余計なキーの無い英語キーボードが好き
0568nobodyさん2006/04/19(水) 15:34:30ID:???
109から変換・無変換・カタひらを取っ払った変則106をどっか出してくれないかなあ
0569nobodyさん2006/04/19(水) 16:23:24ID:???
system()とかの出力を変数に代入するには
どうすればよかとでしょうか?
0570nobodyさん2006/04/19(水) 16:42:28ID:???
>>562
日本語配列のメリット:慣れてると打ちやすい デメリット:慣れてないと打ちにくい
英語配列のメリット:慣れてると打ちやすい デメリット:慣れてないと打ちにくい
0571nobodyさん2006/04/19(水) 16:46:59ID:???
>>569
$env = system("...");
0572nobody2006/04/19(水) 18:05:49ID:k/ExYNcl
PHPから半角カナを使った検索をしたいのですが、
半角カナ文字のみ条件だと文字化けします。

A.php(「検索」を押すとB.phpが実行)
<input type=text name="hankaku_kana">
<input type=text name="zenkaku_kana">
<input type="button" value="検索">

B.php
$sql = "select * from Table where col = *";
if(hankaku_kana != NULL)
$sql = $sql."and col = hankaku_kaa";
if(zenkaku_kana != NULL)
$sql = $sql."and col = zenkaku_kana";

このとき、zenkaku_kanaに全角文字が入っていると
検索できるんですが、
半角文字だけだと文字化けします。
どうしたらできますか?
0573nobodyさん2006/04/19(水) 18:12:08ID:???
しまった
オレsjisで作ったコトある・・・しかも商用orz
0574nobodyさん2006/04/19(水) 18:14:58ID:???
UTF-8 >> EUC-JP >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Shift_JIS

よく分からないなら、UTF-8 使っとけ。

EUC-JPに比べてUTF-8を使うメリット
・最近のUnix/Linux系OSではUTF-8が標準であることが多い
・国際標準なのでどの言語でも利用できる
・Windows/Macでも内部コードとして使われてきている

0575nobodyさん2006/04/19(水) 18:19:29ID:???
>>573
超大手商用サイトでもShift_JIS使ってるとこなんていくらでもあるよ
当たり前な日本語になるが、問題なければ問題ない
0576nobodyさん2006/04/19(水) 18:39:05ID:???
UTF-8推奨ってのは同意するけど、スクリプトを配布して共用鯖で使う場合では別の問題がある。
・UTF-8は日本語が3バイト(EUC-JPはほぼ2バイト)だから容量制限にひっかかる(DBが5MBの某鯖とか)
・Winのメモ帳などでいじるとBOMがついて誤作動する
ただ
・DBの文字コードとスクリプトの文字コードは同じほうが効率が良い
・SQLiteはUTF-8/16推奨
05775722006/04/19(水) 18:51:40ID:k/ExYNcl
鯖がEUC、DBがSJISでやりたいんですが、難しいですか?
0578nobodyさん2006/04/19(水) 18:54:06ID:???
全然
0579nobodyさん2006/04/19(水) 18:55:51ID:???
DB SJISは正気とは思えない。
0580nobodyさん2006/04/19(水) 19:22:43ID:???
箱庭諸島方式でいけよ 内部がEUCで出力はSJIS
つかUTF-8とかならともかく日本語環境でなんでEUCを内部コードに使うのかわからん
0581nobodyさん2006/04/19(水) 19:53:22ID:???
SJISとEUCとどっちか2択、なら正規表現で全角そのまま書いてもこけないEUCが楽だから。
0582nobodyさん2006/04/19(水) 20:08:41ID:yEjSiGYT
すいません、サーバに文字コードってあるんですか?DBの文字コードとは別なんですか?
サーバの文字コードとDBの文字コードとスクリプトの3つを気にしなきゃいけないのですか?
0583nobodyさん2006/04/19(水) 20:15:11ID:???
>>582
サーバの文字コードとDBの文字コードとスクリプト内部処理の文字コードと
HTML出力の文字コードの全てを「UTF-8」にすれば完璧です。

それ以外の心配はいりません。
0584nobodyさん2006/04/19(水) 20:27:20ID:lD0hd5jB
配列の配列($myArray[$i][$j])の値の合計値を求めたいのですが

$myArray_sum = array_sum($myArray)

これでは値が0になってしまいorz

配列自体に数値が入っているのは確認しました。
配列の配列 array_sum/二次元配列 array_sum/等
でググったんですけど分かりませんでした。ど
うやったらいいでしょうか?
よろしくおながいします。
PHP Version 4.3.9
0585nobodyさん2006/04/19(水) 20:28:17ID:yEjSiGYT
サーバの文字コードっていうのはapachの文字コードってことですか?
レンタルサーバでも変更できますか?
0586nobodyさん2006/04/19(水) 20:40:02ID:???
>>584

$myArray_sum = 0;
foreach($myArray as $a) $myArray_sum += array_sum($a);

かなぁ
もっと簡単な方法ってあるのかな。
0587nobodyさん2006/04/19(水) 20:45:19ID:???
ほんとくだらんくてすみません。
掲示板のようなもので、データを書き込んだら
なぜか「ソ」のあとに\が付くんですが、なぜでしょう。
カタカナを確かめるとソ以外の後ろには付きません。

htmlspecialcharsと、str_replaceで、改行、キャリッジリターンを<br>で変換する処理をしたあと、
ログに書き込んでいます。ログに書き込まれた時点で\が付いてるので表示の問題ではないようです。
お願いします。
0588nobodyさん2006/04/19(水) 20:49:34ID:???
>>582
あと、クライアントの許容コードな

>>583
それじゃ満足な携帯サイトは作りきれん
05895872006/04/19(水) 20:51:57ID:???
ごめんなさい、magic_quotes_gpcの影響のようです
0590nobodyさん2006/04/19(水) 20:55:12ID:???
>>585
OS自体の文字コード。
WindowsはShift_JISで変更不可。
Fedora Core (Linux) なら UTF-8 が標準。(設定で変更可)

かんたんに言えばこんなかんじだ。
0591nobodyさん2006/04/19(水) 20:55:32ID:???
>>583
ついでに携帯専用サイトの文字コードもUTF-8にしとけば?w
0592nobodyさん2006/04/19(水) 20:57:39ID:???
>>591
ん、ケータイ用サイトの文字コードもUTF-8にしているよ。
auとtu-ka、WILLCOMは全機種UTF-8対応でしょ。
(ゲートウェイで変換されるから旧機種でも問題無い)
たしかDoCoMoもよっぽど古い機種じゃなけりゃ問題ないとおもう。

たぶんアクセス解析すりゃ98%以上がUTF-8対応じゃないの?

0593nobodyさん2006/04/19(水) 20:58:05ID:???
>>574
> EUC-JPに比べてUTF-8を使うメリット
> ・最近のUnix/Linux系OSではUTF-8が標準であることが多い
「多い」ってことは全部じゃない?

> ・Windows/Macでも内部コードとして使われてきている
「きている」ってことはやっぱ全部じゃない?
05945842006/04/19(水) 20:59:35ID:lD0hd5jB
>>586
ありがとうございました。
数もそう多くないんで処理できれば問題なかったんで。
加算代入の存在忘れてました。
0595nobodyさん2006/04/19(水) 20:59:47ID:???
> 「多い」ってことは全部じゃない?
全部では無い。
ただ、EUC-JPよりは利用率が圧倒的に高い。

> 「きている」ってことはやっぱ全部じゃない?
全部では無い。
WinはShift_JISの箇所が一番おおいしな。
EUCはUnix用のコードだからWinの内部コードではないっしょ。
0596nobodyさん2006/04/19(水) 21:01:08ID:???
>>576
容量制限の問題はたしかにあるな。

> Winのメモ帳などでいじるとBOMがついて誤作動する
そもそも、EUCだとWinのメモ帳じゃ弄れないよね。
■ このスレッドは過去ログ倉庫に格納されています