回答編集履歴
3
追記
answer
CHANGED
@@ -37,4 +37,178 @@
|
|
37
37
|
?>
|
38
38
|
</body>
|
39
39
|
</html>
|
40
|
+
```
|
41
|
+
|
42
|
+
---
|
43
|
+
|
44
|
+
いろいろ試したけど、結局、これが使いやすい気がします。
|
45
|
+
|
46
|
+
```php
|
47
|
+
<?php
|
48
|
+
|
49
|
+
ini_set('display_errors', 1);
|
50
|
+
error_reporting(E_ALL);
|
51
|
+
|
52
|
+
$strings = [
|
53
|
+
" ", " ", "!", "\"", "#", "$", "%", "&", "'",
|
54
|
+
"(", ")", "*", "+", ",", ".", "/", ":", ";",
|
55
|
+
"<", "&nvlt", "=", "&bne", ">", "&nvgt", "?",
|
56
|
+
"@", "[", "\\", "]", "^", "_", "`", "&fjlig",
|
57
|
+
"{", "|", "}", " ", "¡", "¢", "£", "¤", "¥",
|
58
|
+
"¦", "§", "¨", "©", "ª", "«", "¬", "", "®",
|
59
|
+
"¯", "°", "±", "²", "³", "´", "µ", "¶", "·",
|
60
|
+
"¸", "¹", "º", "»", "¼", "½", "¾", "¿", "À",
|
61
|
+
"Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É",
|
62
|
+
"Ê", "Ë", "Ì", "Í", "Î", "Ï", "Ð", "Ñ", "Ò",
|
63
|
+
"Ó", "Ô", "Õ", "Ö", "×", "Ø", "Ù", "Ú", "Û",
|
64
|
+
"Ü", "Ý", "Þ", "ß", "à", "á", "â", "ã", "ä",
|
65
|
+
"å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í",
|
66
|
+
"î", "ï", "ð", "ñ", "ò", "ó", "ô", "õ", "ö",
|
67
|
+
"÷", "ø", "ù", "ú", "û", "ü", "ý", "þ", "ÿ",
|
68
|
+
"Ā", "ā", "Ă", "ă", "Ą", "ą", "Ć", "ć", "Ĉ",
|
69
|
+
"ĉ", "Ċ", "ċ", "Č", "č", "Ď", "ď", "Đ", "đ",
|
70
|
+
"Ē", "ē", "Ė", "ė", "Ę", "ę", "Ě", "ě", "Ĝ",
|
71
|
+
"ĝ", "Ğ", "ğ", "Ġ", "ġ", "Ģ", "Ĥ", "ĥ", "Ħ",
|
72
|
+
"ħ", "Ĩ", "ĩ", "Ī", "ī", "Į", "į", "İ", "ı",
|
73
|
+
"IJ", "ij", "Ĵ", "ĵ", "Ķ", "ķ", "ĸ", "Ĺ", "ĺ",
|
74
|
+
"Ļ", "ļ", "Ľ", "ľ", "Ŀ", "ŀ", "Ł", "ł", "Ń",
|
75
|
+
"ń", "Ņ", "ņ", "Ň", "ň", "ʼn", "Ŋ", "ŋ", "Ō",
|
76
|
+
"ō", "Ő", "ő", "Œ", "œ", "Ŕ", "ŕ", "Ŗ", "ŗ",
|
77
|
+
"Ř", "ř", "Ś", "ś", "Ŝ", "ŝ", "Ş", "ş", "Š",
|
78
|
+
"š", "Ţ", "ţ", "Ť", "ť", "Ŧ", "ŧ", "Ũ", "ũ",
|
79
|
+
"Ū", "ū", "Ŭ", "ŭ", "Ů", "ů", "Ű", "ű", "Ų",
|
80
|
+
"ų", "Ŵ", "ŵ", "Ŷ", "ŷ", "Ÿ", "Ź", "ź", "Ż",
|
81
|
+
"ż", "Ž", "ž", "ƒ", "Ƶ", "ǵ", "ȷ", "ˆ", "ˇ",
|
82
|
+
"˘", "˙", "˚", "˛", "˜", "˝", "̑", "Α", "Β",
|
83
|
+
"Γ", "Δ", "Ε", "Ζ", "Η", "Θ", "Ι", "Κ", "Λ",
|
84
|
+
"Μ", "Ν", "Ξ", "Ο", "Π", "Ρ", "Σ", "Τ", "Υ",
|
85
|
+
"Φ", "Χ", "Ψ", "Ω", "α", "β", "γ", "δ", "ε",
|
86
|
+
"ζ", "η", "θ", "ι", "κ", "λ", "μ", "ν", "ξ",
|
87
|
+
"ο", "π", "ρ", "ς", "σ", "τ", "υ", "φ", "χ",
|
88
|
+
"ψ", "ω", "ϑ", "ϒ", "ϕ", "ϖ", "Ϝ", "ϝ", "ϰ",
|
89
|
+
"ϱ", "ϵ", "϶", "Ё", "Ђ", "Ѓ", "Є", "Ѕ", "І",
|
90
|
+
"Ї", "Ј", "Љ", "Њ", "Ћ", "Ќ", "Ў", "Џ", "А",
|
91
|
+
"Б", "В", "Г", "Д", "Е", "Ж", "З", "И", "Й",
|
92
|
+
"К", "Л", "М", "Н", "О", "П", "Р", "С", "Т",
|
93
|
+
"У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы",
|
94
|
+
"Ь", "Э", "Ю", "Я", "а", "б", "в", "г", "д",
|
95
|
+
"е", "ж", "з", "и", "й", "к", "л", "м", "н",
|
96
|
+
"о", "п", "р", "с", "т", "у", "ф", "х", "ц",
|
97
|
+
"ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я",
|
98
|
+
"ё", "ђ", "ѓ", "є", "ѕ", "і", "ї", "ј", "љ",
|
99
|
+
"њ", "ћ", "ќ", "ў", "џ", "‐", "–", "—", "―",
|
100
|
+
"‖", "‘", "’", "‚", "“", "”", "„", "†", "‡",
|
101
|
+
"•", "‥", "…", "‰", "‱", "′", "″", "‴", "‵",
|
102
|
+
"‹", "›", "‾", "⁁", "⁃", "⁄", "⁏", "⁗", " ",
|
103
|
+
"&ThickSpace", "", "", "", "", "€", "⃛", "⃜",
|
104
|
+
"ℂ", "℅", "ℊ", "ℋ", "ℌ", "ℍ", "ℎ", "ℏ", "ℐ",
|
105
|
+
"ℑ", "ℒ", "ℓ", "ℕ", "№", "℗", "℘", "ℙ", "ℚ",
|
106
|
+
"ℛ", "ℜ", "ℝ", "℞", "™", "ℤ", "℧", "ℨ", "℩",
|
107
|
+
"ℬ", "ℭ", "ℯ", "ℰ", "ℱ", "ℳ", "ℴ", "ℵ", "ℶ",
|
108
|
+
"ℷ", "ℸ", "ⅅ", "ⅆ", "ⅇ", "ⅈ", "⅓", "⅔", "⅕",
|
109
|
+
"⅖", "⅗", "⅘", "⅙", "⅚", "⅛", "⅜", "⅝", "⅞",
|
110
|
+
"←", "↑", "→", "↓", "↔", "↕", "↖", "↗", "↘",
|
111
|
+
"↙", "↚", "↛", "↝", "&nrarrw", "↞", "↟", "↠",
|
112
|
+
"↡", "↢", "↣", "↤", "↥", "↦", "↧", "↩", "↪",
|
113
|
+
"↫", "↬", "↭", "↮", "↰", "↱", "↲", "↳", "↵",
|
114
|
+
"↶", "↷", "↺", "↻", "↼", "↽", "↾", "↿", "⇀",
|
115
|
+
"⇁", "⇂", "⇃", "⇄", "⇅", "⇆", "⇇", "⇈", "⇉",
|
116
|
+
"⇊", "⇋", "⇌", "⇍", "⇎", "⇏", "⇐", "⇑", "⇒",
|
117
|
+
"⇓", "⇔", "⇕", "⇖", "⇗", "⇘", "⇙", "⇚", "⇛",
|
118
|
+
"⇝", "⇤", "⇥", "⇵", "⇽", "⇾", "⇿", "∀", "∁",
|
119
|
+
"∂", "&npart", "∃", "∄", "∅", "∇", "∈", "∉",
|
120
|
+
"∋", "∌", "∏", "∐", "∑", "−", "∓", "∔", "∖",
|
121
|
+
"∗", "∘", "√", "∝", "∞", "∟", "∠", "&nang",
|
122
|
+
"∡", "∢", "∣", "∤", "∥", "∦", "∧", "∨", "∩",
|
123
|
+
"&caps", "∪", "&cups", "∫", "∬", "∭", "∮",
|
124
|
+
"∯", "∰", "∱", "∲", "∳", "∴", "∵", "∶", "∷",
|
125
|
+
"∸", "∺", "∻", "∼", "&nvsim", "∽", "&race",
|
126
|
+
"∾", "&acE", "∿", "≀", "≁", "≂", "&nesim", "≃",
|
127
|
+
"≄", "≅", "≆", "≇", "≈", "≉", "≊", "≋", "&napid",
|
128
|
+
"≌", "≍", "&nvap", "≎", "&nbump", "≏", "&nbumpe",
|
129
|
+
"≐", "&nedot", "≑", "≒", "≓", "≔", "≕", "≖",
|
130
|
+
"≗", "≙", "≚", "≜", "≟", "≠", "≡", "&bnequiv",
|
131
|
+
"≢", "≤", "&nvle", "≥", "&nvge", "≦", "&nlE", "≧",
|
132
|
+
"&NotGreaterFullEqual", "≨", "&lvertneqq", "≩",
|
133
|
+
"&gvertneqq", "≪", "&nLtv", "&nLt", "≫",
|
134
|
+
"&NotGreaterGreater", "&nGt", "≬", "≭", "≮", "≯",
|
135
|
+
"≰", "≱", "≲", "≳", "≴", "≵", "≶", "≷", "≸", "≹",
|
136
|
+
"≺", "≻", "≼", "≽", "≾", "≿", "&NotSucceedsTilde",
|
137
|
+
"⊀", "⊁", "⊂", "&vnsub", "⊃", "&nsupset", "⊄", "⊅",
|
138
|
+
"⊆", "⊇", "⊈", "⊉", "⊊", "&vsubne", "⊋", "&vsupne",
|
139
|
+
"⊍", "⊎", "⊏", "&NotSquareSubset", "⊐", "&NotSquareSuperset",
|
140
|
+
"⊑", "⊒", "⊓", "&sqcaps", "⊔", "&sqcups", "⊕", "⊖",
|
141
|
+
"⊗", "⊘", "⊙", "⊚", "⊛", "⊝", "⊞", "⊟", "⊠", "⊡",
|
142
|
+
"⊢", "⊣", "⊤", "⊥", "⊧", "⊨", "⊩", "⊪", "⊫", "⊬",
|
143
|
+
"⊭", "⊮", "⊯", "⊰", "⊲", "⊳", "⊴", "&nvltrie", "⊵",
|
144
|
+
"&nvrtrie", "⊶", "⊷", "⊸", "⊹", "⊺", "⊻", "⊽", "⊾",
|
145
|
+
"⊿", "⋀", "⋁", "⋂", "⋃", "⋄", "⋅", "⋆", "⋇", "⋈",
|
146
|
+
"⋉", "⋊", "⋋", "⋌", "⋍", "⋎", "⋏", "⋐", "⋑", "⋒",
|
147
|
+
"⋓", "⋔", "⋕", "⋖", "⋗", "⋘", "&nLl", "⋙", "&nGg",
|
148
|
+
"⋚", "&lesg", "⋛", "&gesl", "⋞", "⋟", "⋠", "⋡", "⋢",
|
149
|
+
"⋣", "⋦", "⋧", "⋨", "⋩", "⋪", "⋫", "⋬", "⋭", "⋮",
|
150
|
+
"⋯", "⋰", "⋱", "⋲", "⋳", "⋴", "⋵", "¬indot", "⋶",
|
151
|
+
"⋷", "⋹", "¬inE", "⋺", "⋻", "⋼", "⋽", "⋾", "⌅", "⌆",
|
152
|
+
"⌈", "⌉", "⌊", "⌋", "⌌", "⌍", "⌎", "⌏", "⌐", "⌒",
|
153
|
+
"⌓", "⌕", "⌖", "⌜", "⌝", "⌞", "⌟", "⌢", "⌣", "⌭",
|
154
|
+
"⌮", "⌶", "⌽", "⌿", "⍼", "⎰", "⎱", "⎴", "⎵", "⎶",
|
155
|
+
"⏜", "⏝", "⏞", "⏟", "⏢", "⏧", "␣", "Ⓢ", "─", "│",
|
156
|
+
"┌", "┐", "└", "┘", "├", "┤", "┬", "┴", "┼", "═",
|
157
|
+
"║", "╒", "╓", "╔", "╕", "╖", "╗", "╘", "╙", "╚",
|
158
|
+
"╛", "╜", "╝", "╞", "╟", "╠", "╡", "╢", "╣", "╤",
|
159
|
+
"╥", "╦", "╧", "╨", "╩", "╪", "╫", "╬", "▀", "▄",
|
160
|
+
"█", "░", "▒", "▓", "□", "▪", "▫", "▭", "▮", "▱",
|
161
|
+
"△", "▴", "▵", "▸", "▹", "▽", "▾", "▿", "◂", "◃",
|
162
|
+
"◊", "○", "◬", "◯", "◸", "◹", "◺", "◻", "◼", "★",
|
163
|
+
"☆", "☎", "♀", "♂", "♠", "♣", "♥", "♦", "♪", "♭",
|
164
|
+
"♮", "♯", "✓", "✗", "✠", "✶", "❘", "❲", "❳", "⟈",
|
165
|
+
"⟉", "⟦", "⟧", "⟨", "⟩", "⟪", "⟫", "⟬", "⟭", "⟵",
|
166
|
+
"⟶", "⟷", "⟸", "⟹", "⟺", "⟼", "⟿", "⤂", "⤃",
|
167
|
+
"⤄", "⤅", "⤌", "⤍", "⤎", "⤏", "⤐", "⤑", "⤒", "⤓",
|
168
|
+
"⤖", "⤙", "⤚", "⤛", "⤜", "⤝", "⤞", "⤟", "⤠", "⤣",
|
169
|
+
"⤤", "⤥", "⤦", "⤧", "⤨", "⤩", "⤪", "⤳", "&nrarrc",
|
170
|
+
"⤵", "⤶", "⤷", "⤸", "⤹", "⤼", "⤽", "⥅", "⥈", "⥉",
|
171
|
+
"⥊", "⥋", "⥎", "⥏", "⥐", "⥑", "⥒", "⥓", "⥔", "⥕",
|
172
|
+
"⥖", "⥗", "⥘", "⥙", "⥚", "⥛", "⥜", "⥝", "⥞", "⥟",
|
173
|
+
"⥠", "⥡", "⥢", "⥣", "⥤", "⥥", "⥦", "⥧", "⥨", "⥩",
|
174
|
+
"⥪", "⥫", "⥬", "⥭", "⥮", "⥯", "⥰", "⥱", "⥲", "⥳",
|
175
|
+
"⥴", "⥵", "⥶", "⥸", "⥹", "⥻", "⥼", "⥽", "⥾", "⥿",
|
176
|
+
"⦅", "⦆", "⦋", "⦌", "⦍", "⦎", "⦏", "⦐", "⦑", "⦒", "⦓",
|
177
|
+
"⦔", "⦕", "⦖", "⦚", "⦜", "⦝", "⦤", "⦥", "⦦", "⦧",
|
178
|
+
"⦨", "⦩", "⦪", "⦫", "⦬", "⦭", "⦮", "⦯", "⦰", "⦱",
|
179
|
+
"⦲", "⦳", "⦴", "⦵", "⦶", "⦷", "⦹", "⦻", "⦼", "⦾",
|
180
|
+
"⦿", "⧀", "⧁", "⧂", "⧃", "⧄", "⧅", "⧉", "⧍", "⧎",
|
181
|
+
"⧏", "&NotLeftTriangleBar", "⧐", "&NotRightTriangleBar",
|
182
|
+
"⧜", "⧝", "⧞", "⧣", "⧤", "⧥", "⧫", "⧴", "⧶", "⨀", "⨁",
|
183
|
+
"⨂", "⨄", "⨆", "⨌", "⨍", "⨐", "⨑", "⨒", "⨓", "⨔", "⨕",
|
184
|
+
"⨖", "⨗", "⨢", "⨣", "⨤", "⨥", "⨦", "⨧", "⨩", "⨪", "⨭",
|
185
|
+
"⨮", "⨯", "⨰", "⨱", "⨳", "⨴", "⨵", "⨶", "⨷", "⨸", "⨹",
|
186
|
+
"⨺", "⨻", "⨼", "⨿", "⩀", "⩂", "⩃", "⩄", "⩅", "⩆", "⩇",
|
187
|
+
"⩈", "⩉", "⩊", "⩋", "⩌", "⩍", "⩐", "⩓", "⩔", "⩕", "⩖",
|
188
|
+
"⩗", "⩘", "⩚", "⩛", "⩜", "⩝", "⩟", "⩦", "⩪", "⩭",
|
189
|
+
"&ncongdot", "⩮", "⩯", "⩰", "&napE", "⩱", "⩲", "⩳", "⩴",
|
190
|
+
"⩵", "⩷", "⩸", "⩹", "⩺", "⩻", "⩼", "⩽", "&nles", "⩾",
|
191
|
+
"&nges", "⩿", "⪀", "⪁", "⪂", "⪃", "⪄", "⪅", "⪆", "⪇",
|
192
|
+
"⪈", "⪉", "⪊", "⪋", "⪌", "⪍", "⪎", "⪏", "⪐", "⪑", "⪒",
|
193
|
+
"⪓", "⪔", "⪕", "⪖", "⪗", "⪘", "⪙", "⪚", "⪝", "⪞", "⪟",
|
194
|
+
"⪠", "⪡", "&NotNestedLessLess", "⪢", "&NotNestedGreaterGreater",
|
195
|
+
"⪤", "⪥", "⪦", "⪧", "⪨", "⪩", "⪪", "⪫", "⪬", "&smtes",
|
196
|
+
"⪭", "&lates", "⪮", "⪯", "&NotPrecedesEqual", "⪰",
|
197
|
+
"&NotSucceedsEqual", "⪳", "⪴", "⪵", "⪶", "⪷", "⪸", "⪹",
|
198
|
+
"⪺", "⪻", "⪼", "⪽", "⪾", "⪿", "⫀", "⫁", "⫂", "⫃", "⫄",
|
199
|
+
"⫅", "&nsubE", "⫆", "&nsupseteqq", "⫇", "⫈", "⫋", "&vsubnE",
|
200
|
+
"⫌", "&varsupsetneqq", "⫏", "⫐", "⫑", "⫒", "⫓", "⫔", "⫕",
|
201
|
+
"⫖", "⫗", "⫘", "⫙", "⫚", "⫛", "⫤", "⫦", "⫧", "⫨", "⫩",
|
202
|
+
"⫫", "⫬", "⫭", "⫮", "⫯", "⫰", "⫱", "⫲", "⫳", "⫽", "&nparsl",
|
203
|
+
"ff", "fi", "fl", "ffi", "ffl"
|
204
|
+
];
|
205
|
+
$entities = get_html_translation_table(HTML_ENTITIES, ENT_QUOTES | ENT_HTML5, 'UTF-8');
|
206
|
+
|
207
|
+
foreach ($strings as $str) {
|
208
|
+
if (array_key_exists($str, $entities)) {
|
209
|
+
echo $entities[$str] . PHP_EOL;
|
210
|
+
}
|
211
|
+
}
|
212
|
+
|
213
|
+
|
40
214
|
```
|
2
追記
answer
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
---
|
6
6
|
|
7
|
-
これで普通にヒットしましたげど…
|
7
|
+
これで普通にヒットしましたげど…とおもったら、なんか動きおかしいですね
|
8
8
|
|
9
9
|
```php
|
10
10
|
<?php
|
1
追記
answer
CHANGED
@@ -1,3 +1,40 @@
|
|
1
1
|
http://pst.co.jp/powersoft/html/index.php?f=3401
|
2
2
|
の文字がフォームから入力されたとしても、検索でヒットしないということは起こりません。
|
3
|
-
DBに書き込みする際に、htmlspecialchars を通してしまっているなどのアンチパターンで実装してはいませんか?
|
3
|
+
DBに書き込みする際に、htmlspecialchars を通してしまっているなどのアンチパターンで実装してはいませんか?
|
4
|
+
|
5
|
+
---
|
6
|
+
|
7
|
+
これで普通にヒットしましたげど…
|
8
|
+
|
9
|
+
```php
|
10
|
+
<?php
|
11
|
+
ini_set('display_errors', 1);
|
12
|
+
error_reporting(E_ALL);
|
13
|
+
|
14
|
+
$pattern = "/[\"&<> ¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸]/";
|
15
|
+
$subject = "\"&<> ¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸";
|
16
|
+
|
17
|
+
preg_match_all($pattern, $subject, $matches);
|
18
|
+
?>
|
19
|
+
<!DOCTYPE HTML>
|
20
|
+
<html lang="ja-JP">
|
21
|
+
<head>
|
22
|
+
<meta charset="UTF-8">
|
23
|
+
<title></title>
|
24
|
+
</head>
|
25
|
+
<body>
|
26
|
+
<?php
|
27
|
+
var_dump($subject);
|
28
|
+
?>
|
29
|
+
<?php
|
30
|
+
foreach ($matches[0] as $i => $match) {
|
31
|
+
echo sprintf("%d:%s %s<br />"
|
32
|
+
, $i
|
33
|
+
, $match
|
34
|
+
, htmlentities($match, ENT_SUBSTITUTE, 'UTF-8')
|
35
|
+
);
|
36
|
+
}
|
37
|
+
?>
|
38
|
+
</body>
|
39
|
+
</html>
|
40
|
+
```
|