質問編集履歴

2

詳細の追加

2018/06/13 10:36

投稿

GrayWingAliance
GrayWingAliance

スコア218

test CHANGED
File without changes
test CHANGED
@@ -84,7 +84,11 @@
84
84
 
85
85
  という形で、バリデーションを行っているのですが、
86
86
 
87
- エラーの中に使えない文字を実際に表示したいです。
87
+ エラーの中に使えない文字を表示したいです。
88
+
89
+
90
+
91
+ ちなみにgetMessageCSVはmessageオブジェクトの中の指定した文字列から特定の文字列({param1}のような)を探し、置換してくれるメソッドです。(E023がエラー番号となり、”{param1}では指定された文字は使えません。)のようにメッセージを表示します。
88
92
 
89
93
 
90
94
 

1

コードのインデントの修正

2018/06/13 10:36

投稿

GrayWingAliance
GrayWingAliance

スコア218

test CHANGED
File without changes
test CHANGED
@@ -6,77 +6,77 @@
6
6
 
7
7
  ``` php
8
8
 
9
+ $validator->add($field,
9
10
 
11
+ 'custom',
10
12
 
11
- $validator->add($field,
13
+ [
12
14
 
13
- 'custom',
15
+ 'rule' => function($field){
14
16
 
15
- [
17
+ $utf8CharsArray = preg_split('//u', $field, -1, PREG_SPLIT_NO_EMPTY);
16
18
 
17
- 'rule' => function($field){
19
+ $sjisCharsArray = $utf8CharsArray;
18
20
 
19
- $utf8CharsArray = preg_split('//u', $field, -1, PREG_SPLIT_NO_EMPTY);
21
+ mb_convert_variables('SJIS', 'UTF-8', $sjisCharsArray);
20
22
 
21
- $sjisCharsArray = $utf8CharsArray;
23
+ $utf8CharsArrayEscaped = array_map(function($sjisChar, $utf8Char){
22
24
 
23
- mb_convert_variables('SJIS', 'UTF-8', $sjisCharsArray);
25
+ // 元から"?"のものを除き、JISになく使用できない文字
24
26
 
25
- $utf8CharsArrayEscaped = array_map(function($sjisChar, $utf8Char){
27
+ if ($sjisChar === '?' && $utf8Char !== '?'){
26
28
 
27
- // 元から"?"のものを除き、JISになく使用できない文字
29
+ return "false";
28
30
 
29
- if ($sjisChar === '?' && $utf8Char !== '?'){
31
+ }else {
30
32
 
31
- return "false";
33
+ if(preg_match("/^[俱-剝????-吞噓-繫????-㒒儈-????宖-幭幮-殁殛-????']$/", $sjisChar)){
32
34
 
33
- }else {
35
+ //JISの中で第三水準・第四水準及び「'」を除く
34
36
 
35
- if(preg_match("/^[俱-剝????-吞噓-繫????-㒒儈-????宖-幭幮-殁殛-????']$/", $sjisChar)){ //JISの中で第三水準・第四水準及び「'」を除く
37
+ return "false";
36
38
 
37
- return "false";
39
+ }else { //そのほかは使える
38
40
 
39
- }else { //そのほかは使える
41
+ return $sjisChar;
40
42
 
41
- return $sjisChar;
43
+ }
42
44
 
43
- }
45
+ }
44
46
 
45
- }
47
+ }, $sjisCharsArray, $utf8CharsArray);
46
48
 
47
- }, $sjisCharsArray, $utf8CharsArray);
49
+ $arraySearchResult = array_search("false", $utf8CharsArrayEscaped, true);
48
50
 
49
- $arraySearchResult = array_search("false", $utf8CharsArrayEscaped, true);
51
+ if(is_int($arraySearchResult)){
50
52
 
51
- if(is_int($arraySearchResult)){
53
+ echo "false";
52
54
 
53
- echo "false";
55
+ return false;
54
56
 
55
- return false;
57
+ }else if(!$arraySearchResult){
56
58
 
57
- }else if(!$arraySearchResult){
59
+ echo "true";
58
60
 
59
- echo "true";
61
+ return true;
60
62
 
61
- return true;
63
+ }else {
62
64
 
63
- }else {
65
+ return false;
64
66
 
65
- return false;
67
+ }
66
68
 
67
- }
69
+ },
68
70
 
69
- },
71
+ 'message' => $message->getMessageCSV(
70
72
 
71
- 'message' => $message->getMessageCSV(
73
+ $count, "E023",
72
74
 
73
- $count, "E023",
75
+ $value['attribute']['params']
74
76
 
75
- $value['attribute']['params']
77
+ )
76
78
 
77
- )
78
-
79
- ]);
79
+ ]);
80
80
 
81
81
  ```
82
82