質問編集履歴

2

追記

2019/01/27 04:20

投稿

yooashleaf
yooashleaf

スコア32

test CHANGED
File without changes
test CHANGED
@@ -94,15 +94,7 @@
94
94
 
95
95
  if ($key !~ /^upfile/) {
96
96
 
97
-
98
-
99
- # シフトJISコード変換
100
-
101
97
  &jcode'convert(*val, 'sjis');
102
-
103
-
104
-
105
- # タグ処理
106
98
 
107
99
  $val =~ s/<>/&LT;&GT;/g;
108
100
 
@@ -114,10 +106,6 @@
114
106
 
115
107
  $val =~ s/>/&gt;/g;
116
108
 
117
-
118
-
119
-
120
-
121
109
  }
122
110
 
123
111
  $in{$key} = $val;

1

追記

2019/01/27 04:20

投稿

yooashleaf
yooashleaf

スコア32

test CHANGED
File without changes
test CHANGED
@@ -35,3 +35,93 @@
35
35
  となり、なぜか02が0と2で分割されてしまってます。
36
36
 
37
37
  これは何が原因として考えられるでしょうか?
38
+
39
+
40
+
41
+
42
+
43
+ 追記:
44
+
45
+ 確かにこのままコピペすると正常に動作します。
46
+
47
+ 実は$strはフォームのcheckboxで受け取った数字なのですが、その値を分割するとこうなります。
48
+
49
+ フォームの部分の受け取りがおかしいのでしょうか?
50
+
51
+
52
+
53
+ ▼HTML
54
+
55
+ <input type="checkbox" name="data" value="01">01
56
+
57
+ <input type="checkbox" name="data" value="02">02
58
+
59
+ <input type="checkbox" name="data" value="86">86
60
+
61
+ <input type="checkbox" name="data" value="FP">FP
62
+
63
+
64
+
65
+ ▼perl
66
+
67
+ &decode;
68
+
69
+ $str = $in{'data'};
70
+
71
+ @array = $str =~ /.{2}/g;
72
+
73
+
74
+
75
+ foreach (@array) {
76
+
77
+ print "$_<br>";
78
+
79
+ }
80
+
81
+
82
+
83
+
84
+
85
+ sub decode {
86
+
87
+ local($key,$val);
88
+
89
+
90
+
91
+ &ReadParse;
92
+
93
+ while (($key,$val) = each %in) {
94
+
95
+ if ($key !~ /^upfile/) {
96
+
97
+
98
+
99
+ # シフトJISコード変換
100
+
101
+ &jcode'convert(*val, 'sjis');
102
+
103
+
104
+
105
+ # タグ処理
106
+
107
+ $val =~ s/<>/&LT;&GT;/g;
108
+
109
+ $val =~ s/&/&amp;/g;
110
+
111
+ $val =~ s/"/&quot;/g;
112
+
113
+ $val =~ s/</&lt;/g;
114
+
115
+ $val =~ s/>/&gt;/g;
116
+
117
+
118
+
119
+
120
+
121
+ }
122
+
123
+ $in{$key} = $val;
124
+
125
+ }
126
+
127
+ }