質問編集履歴
10
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -29,8 +29,8 @@
|
|
29
29
|
$val = convert_eol($val);
|
30
30
|
});
|
31
31
|
|
32
|
-
// 文字コード変換
|
32
|
+
// 文字コード変換、データは必ず1次元配列
|
33
|
-
mb_convert_variables('SJIS-win', 'UTF-8', $
|
33
|
+
mb_convert_variables('SJIS-win', 'UTF-8', $row);
|
34
34
|
|
35
35
|
// すべての項目をダブルクオートで囲んでファイルに書き出しをする
|
36
36
|
fwrite($f, '"'.implode('","',$row) . '"' . "\r\n");
|
9
加筆
title
CHANGED
File without changes
|
body
CHANGED
@@ -17,6 +17,9 @@
|
|
17
17
|
|
18
18
|
$row = ['フィールド1', 'フィールド2'];
|
19
19
|
|
20
|
+
//フィールドごとの最大文字数分を取得
|
21
|
+
$row[0] = mb_substr($row[0], 0, 10);
|
22
|
+
|
20
23
|
// 文字コードや特定も文字を変換
|
21
24
|
array_walk_recursive($row, function(&$val, $key) {
|
22
25
|
//エスケープ
|
8
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
//エスケープ
|
23
23
|
$val = str_replace('"', '""', $val);
|
24
24
|
|
25
|
-
//
|
25
|
+
// CR or LF → CRLF
|
26
26
|
$val = convert_eol($val);
|
27
27
|
});
|
28
28
|
|
@@ -35,6 +35,10 @@
|
|
35
35
|
2.ファイルアップロード
|
36
36
|
PHPのftp_nb_put関数でファイルをアップロードしています。転送モードはバイナリです。
|
37
37
|
|
38
|
+
3.環境
|
39
|
+
〇クライアント
|
40
|
+
PHP・・・5.6
|
41
|
+
文字コード・・・UTF-8
|
38
42
|
|
39
43
|
あまり詳細な処理を記述できないのですが、
|
40
44
|
よろしくお願いいたします。
|
7
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,5 +10,31 @@
|
|
10
10
|
|
11
11
|
csvアップロード時、転送モードをバイナリにすることでこのような現象が発生する可能性はありますでしょうか。また単純にFTPでcsvファイルをアップロードするとき、文字列の一部が欠けるなどの現象はありえるでしょうか。
|
12
12
|
|
13
|
+
追記:
|
14
|
+
1.CSV書き出し(一部抜粋)
|
15
|
+
```php
|
16
|
+
$f = fopen($file_path, "w");
|
17
|
+
|
18
|
+
$row = ['フィールド1', 'フィールド2'];
|
19
|
+
|
20
|
+
// 文字コードや特定も文字を変換
|
21
|
+
array_walk_recursive($row, function(&$val, $key) {
|
22
|
+
//エスケープ
|
23
|
+
$val = str_replace('"', '""', $val);
|
24
|
+
|
25
|
+
// CS or RF → CSRF
|
26
|
+
$val = convert_eol($val);
|
27
|
+
});
|
28
|
+
|
29
|
+
// 文字コード変換
|
30
|
+
mb_convert_variables('SJIS-win', 'UTF-8', $val);
|
31
|
+
|
32
|
+
// すべての項目をダブルクオートで囲んでファイルに書き出しをする
|
33
|
+
fwrite($f, '"'.implode('","',$row) . '"' . "\r\n");
|
34
|
+
```
|
35
|
+
2.ファイルアップロード
|
36
|
+
PHPのftp_nb_put関数でファイルをアップロードしています。転送モードはバイナリです。
|
37
|
+
|
38
|
+
|
13
39
|
あまり詳細な処理を記述できないのですが、
|
14
40
|
よろしくお願いいたします。
|
6
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,12 +3,12 @@
|
|
3
3
|
現在、サーバ間でftpによるcsvアップロード処理を行っているのですが、
|
4
4
|
csv内の「テストサーバー」という文字列が、アップロードされたcsv側では「テストサ?」という文字列になっています。csv内にある他のフィールドの文字列は正常に表示されるのですが、上記部分だけ文字化け(文字が欠け)てアップロードされてしまいます。このときftpの転送モードはバイナリにしています。
|
5
5
|
また、この現象は毎回起こるのではなく、過去数件中1件だけしか起こっていません。
|
6
|
-
|
7
|
-
csvアップロード時、転送モードをバイナリにすることでこのような現象が発生する可能性はありますでしょうか。または何か他の原因が考えられますでしょうか。
|
8
6
|
文字コードはサーバー、クライアントともにSJISです。
|
9
7
|
|
10
8
|
現状ローカルでcsvを出力した段階では文字化けは起こしていないようです。
|
11
9
|
そもそもこの現象自体再現性がないので、なんとも言えないのですが。。。
|
12
10
|
|
11
|
+
csvアップロード時、転送モードをバイナリにすることでこのような現象が発生する可能性はありますでしょうか。また単純にFTPでcsvファイルをアップロードするとき、文字列の一部が欠けるなどの現象はありえるでしょうか。
|
12
|
+
|
13
13
|
あまり詳細な処理を記述できないのですが、
|
14
14
|
よろしくお願いいたします。
|
5
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
csvアップロード時、転送モードをバイナリにすることでこのような現象が発生する可能性はありますでしょうか。または何か他の原因が考えられますでしょうか。
|
8
8
|
文字コードはサーバー、クライアントともにSJISです。
|
9
9
|
|
10
|
-
現状ローカルでcsvを出力した
|
10
|
+
現状ローカルでcsvを出力した段階では文字化けは起こしていないようです。
|
11
11
|
そもそもこの現象自体再現性がないので、なんとも言えないのですが。。。
|
12
12
|
|
13
13
|
あまり詳細な処理を記述できないのですが、
|
4
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -5,7 +5,10 @@
|
|
5
5
|
また、この現象は毎回起こるのではなく、過去数件中1件だけしか起こっていません。
|
6
6
|
|
7
7
|
csvアップロード時、転送モードをバイナリにすることでこのような現象が発生する可能性はありますでしょうか。または何か他の原因が考えられますでしょうか。
|
8
|
-
文字コードはサーバー、クライアントともにSJISです
|
8
|
+
文字コードはサーバー、クライアントともにSJISです。
|
9
9
|
|
10
|
+
現状ローカルでcsvを出力した場合では文字化けは起こしていないようです。
|
11
|
+
そもそもこの現象自体再現性がないので、なんとも言えないのですが。。。
|
12
|
+
|
10
|
-
あまり
|
13
|
+
あまり詳細な処理を記述できないのですが、
|
11
14
|
よろしくお願いいたします。
|
3
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -5,6 +5,7 @@
|
|
5
5
|
また、この現象は毎回起こるのではなく、過去数件中1件だけしか起こっていません。
|
6
6
|
|
7
7
|
csvアップロード時、転送モードをバイナリにすることでこのような現象が発生する可能性はありますでしょうか。または何か他の原因が考えられますでしょうか。
|
8
|
+
文字コードはサーバー、クライアントともにSJISです
|
8
9
|
|
9
10
|
あまり処理の詳細を記述することが出来ないのですが、
|
10
11
|
よろしくお願いいたします。
|
2
修正
title
CHANGED
File without changes
|
body
CHANGED
File without changes
|
1
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
お世話になります。
|
2
2
|
|
3
|
-
お世話になります。
|
4
|
-
|
5
3
|
現在、サーバ間でftpによるcsvアップロード処理を行っているのですが、
|
6
4
|
csv内の「テストサーバー」という文字列が、アップロードされたcsv側では「テストサ?」という文字列になっています。csv内にある他のフィールドの文字列は正常に表示されるのですが、上記部分だけ文字化け(文字が欠け)てアップロードされてしまいます。このときftpの転送モードはバイナリにしています。
|
7
5
|
また、この現象は毎回起こるのではなく、過去数件中1件だけしか起こっていません。
|