回答編集履歴

3

追記

2015/11/13 12:49

投稿

退会済みユーザー
test CHANGED
@@ -77,3 +77,351 @@
77
77
  </html>
78
78
 
79
79
  ```
80
+
81
+
82
+
83
+ ---
84
+
85
+
86
+
87
+ いろいろ試したけど、結局、これが使いやすい気がします。
88
+
89
+
90
+
91
+ ```php
92
+
93
+ <?php
94
+
95
+
96
+
97
+ ini_set('display_errors', 1);
98
+
99
+ error_reporting(E_ALL);
100
+
101
+
102
+
103
+ $strings = [
104
+
105
+ " ", " ", "!", "\"", "#", "$", "%", "&", "'",
106
+
107
+ "(", ")", "*", "+", ",", ".", "/", ":", ";",
108
+
109
+ "<", "&nvlt", "=", "&bne", ">", "&nvgt", "?",
110
+
111
+ "@", "[", "\\", "]", "^", "_", "`", "&fjlig",
112
+
113
+ "{", "|", "}", " ", "¡", "¢", "£", "¤", "¥",
114
+
115
+ "¦", "§", "¨", "©", "ª", "«", "¬", "­", "®",
116
+
117
+ "¯", "°", "±", "²", "³", "´", "µ", "¶", "·",
118
+
119
+ "¸", "¹", "º", "»", "¼", "½", "¾", "¿", "À",
120
+
121
+ "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É",
122
+
123
+ "Ê", "Ë", "Ì", "Í", "Î", "Ï", "Ð", "Ñ", "Ò",
124
+
125
+ "Ó", "Ô", "Õ", "Ö", "×", "Ø", "Ù", "Ú", "Û",
126
+
127
+ "Ü", "Ý", "Þ", "ß", "à", "á", "â", "ã", "ä",
128
+
129
+ "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í",
130
+
131
+ "î", "ï", "ð", "ñ", "ò", "ó", "ô", "õ", "ö",
132
+
133
+ "÷", "ø", "ù", "ú", "û", "ü", "ý", "þ", "ÿ",
134
+
135
+ "Ā", "ā", "Ă", "ă", "Ą", "ą", "Ć", "ć", "Ĉ",
136
+
137
+ "ĉ", "Ċ", "ċ", "Č", "č", "Ď", "ď", "Đ", "đ",
138
+
139
+ "Ē", "ē", "Ė", "ė", "Ę", "ę", "Ě", "ě", "Ĝ",
140
+
141
+ "ĝ", "Ğ", "ğ", "Ġ", "ġ", "Ģ", "Ĥ", "ĥ", "Ħ",
142
+
143
+ "ħ", "Ĩ", "ĩ", "Ī", "ī", "Į", "į", "İ", "ı",
144
+
145
+ "IJ", "ij", "Ĵ", "ĵ", "Ķ", "ķ", "ĸ", "Ĺ", "ĺ",
146
+
147
+ "Ļ", "ļ", "Ľ", "ľ", "Ŀ", "ŀ", "Ł", "ł", "Ń",
148
+
149
+ "ń", "Ņ", "ņ", "Ň", "ň", "ʼn", "Ŋ", "ŋ", "Ō",
150
+
151
+ "ō", "Ő", "ő", "Œ", "œ", "Ŕ", "ŕ", "Ŗ", "ŗ",
152
+
153
+ "Ř", "ř", "Ś", "ś", "Ŝ", "ŝ", "Ş", "ş", "Š",
154
+
155
+ "š", "Ţ", "ţ", "Ť", "ť", "Ŧ", "ŧ", "Ũ", "ũ",
156
+
157
+ "Ū", "ū", "Ŭ", "ŭ", "Ů", "ů", "Ű", "ű", "Ų",
158
+
159
+ "ų", "Ŵ", "ŵ", "Ŷ", "ŷ", "Ÿ", "Ź", "ź", "Ż",
160
+
161
+ "ż", "Ž", "ž", "ƒ", "Ƶ", "ǵ", "ȷ", "ˆ", "ˇ",
162
+
163
+ "˘", "˙", "˚", "˛", "˜", "˝", "̑", "Α", "Β",
164
+
165
+ "Γ", "Δ", "Ε", "Ζ", "Η", "Θ", "Ι", "Κ", "Λ",
166
+
167
+ "Μ", "Ν", "Ξ", "Ο", "Π", "Ρ", "Σ", "Τ", "Υ",
168
+
169
+ "Φ", "Χ", "Ψ", "Ω", "α", "β", "γ", "δ", "ε",
170
+
171
+ "ζ", "η", "θ", "ι", "κ", "λ", "μ", "ν", "ξ",
172
+
173
+ "ο", "π", "ρ", "ς", "σ", "τ", "υ", "φ", "χ",
174
+
175
+ "ψ", "ω", "ϑ", "ϒ", "ϕ", "ϖ", "Ϝ", "ϝ", "ϰ",
176
+
177
+ "ϱ", "ϵ", "϶", "Ё", "Ђ", "Ѓ", "Є", "Ѕ", "І",
178
+
179
+ "Ї", "Ј", "Љ", "Њ", "Ћ", "Ќ", "Ў", "Џ", "А",
180
+
181
+ "Б", "В", "Г", "Д", "Е", "Ж", "З", "И", "Й",
182
+
183
+ "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т",
184
+
185
+ "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы",
186
+
187
+ "Ь", "Э", "Ю", "Я", "а", "б", "в", "г", "д",
188
+
189
+ "е", "ж", "з", "и", "й", "к", "л", "м", "н",
190
+
191
+ "о", "п", "р", "с", "т", "у", "ф", "х", "ц",
192
+
193
+ "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я",
194
+
195
+ "ё", "ђ", "ѓ", "є", "ѕ", "і", "ї", "ј", "љ",
196
+
197
+ "њ", "ћ", "ќ", "ў", "џ", "‐", "–", "—", "―",
198
+
199
+ "‖", "‘", "’", "‚", "“", "”", "„", "†", "‡",
200
+
201
+ "•", "‥", "…", "‰", "‱", "′", "″", "‴", "‵",
202
+
203
+ "‹", "›", "‾", "⁁", "⁃", "⁄", "⁏", "⁗", " ",
204
+
205
+ "&ThickSpace", "⁠", "⁡", "⁢", "⁣", "€", "⃛", "⃜",
206
+
207
+ "ℂ", "℅", "ℊ", "ℋ", "ℌ", "ℍ", "ℎ", "ℏ", "ℐ",
208
+
209
+ "ℑ", "ℒ", "ℓ", "ℕ", "№", "℗", "℘", "ℙ", "ℚ",
210
+
211
+ "ℛ", "ℜ", "ℝ", "℞", "™", "ℤ", "℧", "ℨ", "℩",
212
+
213
+ "ℬ", "ℭ", "ℯ", "ℰ", "ℱ", "ℳ", "ℴ", "ℵ", "ℶ",
214
+
215
+ "ℷ", "ℸ", "ⅅ", "ⅆ", "ⅇ", "ⅈ", "⅓", "⅔", "⅕",
216
+
217
+ "⅖", "⅗", "⅘", "⅙", "⅚", "⅛", "⅜", "⅝", "⅞",
218
+
219
+ "←", "↑", "→", "↓", "↔", "↕", "↖", "↗", "↘",
220
+
221
+ "↙", "↚", "↛", "↝", "&nrarrw", "↞", "↟", "↠",
222
+
223
+ "↡", "↢", "↣", "↤", "↥", "↦", "↧", "↩", "↪",
224
+
225
+ "↫", "↬", "↭", "↮", "↰", "↱", "↲", "↳", "↵",
226
+
227
+ "↶", "↷", "↺", "↻", "↼", "↽", "↾", "↿", "⇀",
228
+
229
+ "⇁", "⇂", "⇃", "⇄", "⇅", "⇆", "⇇", "⇈", "⇉",
230
+
231
+ "⇊", "⇋", "⇌", "⇍", "⇎", "⇏", "⇐", "⇑", "⇒",
232
+
233
+ "⇓", "⇔", "⇕", "⇖", "⇗", "⇘", "⇙", "⇚", "⇛",
234
+
235
+ "⇝", "⇤", "⇥", "⇵", "⇽", "⇾", "⇿", "∀", "∁",
236
+
237
+ "∂", "&npart", "∃", "∄", "∅", "∇", "∈", "∉",
238
+
239
+ "∋", "∌", "∏", "∐", "∑", "−", "∓", "∔", "∖",
240
+
241
+ "∗", "∘", "√", "∝", "∞", "∟", "∠", "&nang",
242
+
243
+ "∡", "∢", "∣", "∤", "∥", "∦", "∧", "∨", "∩",
244
+
245
+ "&caps", "∪", "&cups", "∫", "∬", "∭", "∮",
246
+
247
+ "∯", "∰", "∱", "∲", "∳", "∴", "∵", "∶", "∷",
248
+
249
+ "∸", "∺", "∻", "∼", "&nvsim", "∽", "&race",
250
+
251
+ "∾", "&acE", "∿", "≀", "≁", "≂", "&nesim", "≃",
252
+
253
+ "≄", "≅", "≆", "≇", "≈", "≉", "≊", "≋", "&napid",
254
+
255
+ "≌", "≍", "&nvap", "≎", "&nbump", "≏", "&nbumpe",
256
+
257
+ "≐", "&nedot", "≑", "≒", "≓", "≔", "≕", "≖",
258
+
259
+ "≗", "≙", "≚", "≜", "≟", "≠", "≡", "&bnequiv",
260
+
261
+ "≢", "≤", "&nvle", "≥", "&nvge", "≦", "&nlE", "≧",
262
+
263
+ "&NotGreaterFullEqual", "≨", "&lvertneqq", "≩",
264
+
265
+ "&gvertneqq", "≪", "&nLtv", "&nLt", "≫",
266
+
267
+ "&NotGreaterGreater", "&nGt", "≬", "≭", "≮", "≯",
268
+
269
+ "≰", "≱", "≲", "≳", "≴", "≵", "≶", "≷", "≸", "≹",
270
+
271
+ "≺", "≻", "≼", "≽", "≾", "≿", "&NotSucceedsTilde",
272
+
273
+ "⊀", "⊁", "⊂", "&vnsub", "⊃", "&nsupset", "⊄", "⊅",
274
+
275
+ "⊆", "⊇", "⊈", "⊉", "⊊", "&vsubne", "⊋", "&vsupne",
276
+
277
+ "⊍", "⊎", "⊏", "&NotSquareSubset", "⊐", "&NotSquareSuperset",
278
+
279
+ "⊑", "⊒", "⊓", "&sqcaps", "⊔", "&sqcups", "⊕", "⊖",
280
+
281
+ "⊗", "⊘", "⊙", "⊚", "⊛", "⊝", "⊞", "⊟", "⊠", "⊡",
282
+
283
+ "⊢", "⊣", "⊤", "⊥", "⊧", "⊨", "⊩", "⊪", "⊫", "⊬",
284
+
285
+ "⊭", "⊮", "⊯", "⊰", "⊲", "⊳", "⊴", "&nvltrie", "⊵",
286
+
287
+ "&nvrtrie", "⊶", "⊷", "⊸", "⊹", "⊺", "⊻", "⊽", "⊾",
288
+
289
+ "⊿", "⋀", "⋁", "⋂", "⋃", "⋄", "⋅", "⋆", "⋇", "⋈",
290
+
291
+ "⋉", "⋊", "⋋", "⋌", "⋍", "⋎", "⋏", "⋐", "⋑", "⋒",
292
+
293
+ "⋓", "⋔", "⋕", "⋖", "⋗", "⋘", "&nLl", "⋙", "&nGg",
294
+
295
+ "⋚", "&lesg", "⋛", "&gesl", "⋞", "⋟", "⋠", "⋡", "⋢",
296
+
297
+ "⋣", "⋦", "⋧", "⋨", "⋩", "⋪", "⋫", "⋬", "⋭", "⋮",
298
+
299
+ "⋯", "⋰", "⋱", "⋲", "⋳", "⋴", "⋵", "¬indot", "⋶",
300
+
301
+ "⋷", "⋹", "¬inE", "⋺", "⋻", "⋼", "⋽", "⋾", "⌅", "⌆",
302
+
303
+ "⌈", "⌉", "⌊", "⌋", "⌌", "⌍", "⌎", "⌏", "⌐", "⌒",
304
+
305
+ "⌓", "⌕", "⌖", "⌜", "⌝", "⌞", "⌟", "⌢", "⌣", "⌭",
306
+
307
+ "⌮", "⌶", "⌽", "⌿", "⍼", "⎰", "⎱", "⎴", "⎵", "⎶",
308
+
309
+ "⏜", "⏝", "⏞", "⏟", "⏢", "⏧", "␣", "Ⓢ", "─", "│",
310
+
311
+ "┌", "┐", "└", "┘", "├", "┤", "┬", "┴", "┼", "═",
312
+
313
+ "║", "╒", "╓", "╔", "╕", "╖", "╗", "╘", "╙", "╚",
314
+
315
+ "╛", "╜", "╝", "╞", "╟", "╠", "╡", "╢", "╣", "╤",
316
+
317
+ "╥", "╦", "╧", "╨", "╩", "╪", "╫", "╬", "▀", "▄",
318
+
319
+ "█", "░", "▒", "▓", "□", "▪", "▫", "▭", "▮", "▱",
320
+
321
+ "△", "▴", "▵", "▸", "▹", "▽", "▾", "▿", "◂", "◃",
322
+
323
+ "◊", "○", "◬", "◯", "◸", "◹", "◺", "◻", "◼", "★",
324
+
325
+ "☆", "☎", "♀", "♂", "♠", "♣", "♥", "♦", "♪", "♭",
326
+
327
+ "♮", "♯", "✓", "✗", "✠", "✶", "❘", "❲", "❳", "⟈",
328
+
329
+ "⟉", "⟦", "⟧", "⟨", "⟩", "⟪", "⟫", "⟬", "⟭", "⟵",
330
+
331
+ "⟶", "⟷", "⟸", "⟹", "⟺", "⟼", "⟿", "⤂", "⤃",
332
+
333
+ "⤄", "⤅", "⤌", "⤍", "⤎", "⤏", "⤐", "⤑", "⤒", "⤓",
334
+
335
+ "⤖", "⤙", "⤚", "⤛", "⤜", "⤝", "⤞", "⤟", "⤠", "⤣",
336
+
337
+ "⤤", "⤥", "⤦", "⤧", "⤨", "⤩", "⤪", "⤳", "&nrarrc",
338
+
339
+ "⤵", "⤶", "⤷", "⤸", "⤹", "⤼", "⤽", "⥅", "⥈", "⥉",
340
+
341
+ "⥊", "⥋", "⥎", "⥏", "⥐", "⥑", "⥒", "⥓", "⥔", "⥕",
342
+
343
+ "⥖", "⥗", "⥘", "⥙", "⥚", "⥛", "⥜", "⥝", "⥞", "⥟",
344
+
345
+ "⥠", "⥡", "⥢", "⥣", "⥤", "⥥", "⥦", "⥧", "⥨", "⥩",
346
+
347
+ "⥪", "⥫", "⥬", "⥭", "⥮", "⥯", "⥰", "⥱", "⥲", "⥳",
348
+
349
+ "⥴", "⥵", "⥶", "⥸", "⥹", "⥻", "⥼", "⥽", "⥾", "⥿",
350
+
351
+ "⦅", "⦆", "⦋", "⦌", "⦍", "⦎", "⦏", "⦐", "⦑", "⦒", "⦓",
352
+
353
+ "⦔", "⦕", "⦖", "⦚", "⦜", "⦝", "⦤", "⦥", "⦦", "⦧",
354
+
355
+ "⦨", "⦩", "⦪", "⦫", "⦬", "⦭", "⦮", "⦯", "⦰", "⦱",
356
+
357
+ "⦲", "⦳", "⦴", "⦵", "⦶", "⦷", "⦹", "⦻", "⦼", "⦾",
358
+
359
+ "⦿", "⧀", "⧁", "⧂", "⧃", "⧄", "⧅", "⧉", "⧍", "⧎",
360
+
361
+ "⧏", "&NotLeftTriangleBar", "⧐", "&NotRightTriangleBar",
362
+
363
+ "⧜", "⧝", "⧞", "⧣", "⧤", "⧥", "⧫", "⧴", "⧶", "⨀", "⨁",
364
+
365
+ "⨂", "⨄", "⨆", "⨌", "⨍", "⨐", "⨑", "⨒", "⨓", "⨔", "⨕",
366
+
367
+ "⨖", "⨗", "⨢", "⨣", "⨤", "⨥", "⨦", "⨧", "⨩", "⨪", "⨭",
368
+
369
+ "⨮", "⨯", "⨰", "⨱", "⨳", "⨴", "⨵", "⨶", "⨷", "⨸", "⨹",
370
+
371
+ "⨺", "⨻", "⨼", "⨿", "⩀", "⩂", "⩃", "⩄", "⩅", "⩆", "⩇",
372
+
373
+ "⩈", "⩉", "⩊", "⩋", "⩌", "⩍", "⩐", "⩓", "⩔", "⩕", "⩖",
374
+
375
+ "⩗", "⩘", "⩚", "⩛", "⩜", "⩝", "⩟", "⩦", "⩪", "⩭",
376
+
377
+ "&ncongdot", "⩮", "⩯", "⩰", "&napE", "⩱", "⩲", "⩳", "⩴",
378
+
379
+ "⩵", "⩷", "⩸", "⩹", "⩺", "⩻", "⩼", "⩽", "&nles", "⩾",
380
+
381
+ "&nges", "⩿", "⪀", "⪁", "⪂", "⪃", "⪄", "⪅", "⪆", "⪇",
382
+
383
+ "⪈", "⪉", "⪊", "⪋", "⪌", "⪍", "⪎", "⪏", "⪐", "⪑", "⪒",
384
+
385
+ "⪓", "⪔", "⪕", "⪖", "⪗", "⪘", "⪙", "⪚", "⪝", "⪞", "⪟",
386
+
387
+ "⪠", "⪡", "&NotNestedLessLess", "⪢", "&NotNestedGreaterGreater",
388
+
389
+ "⪤", "⪥", "⪦", "⪧", "⪨", "⪩", "⪪", "⪫", "⪬", "&smtes",
390
+
391
+ "⪭", "&lates", "⪮", "⪯", "&NotPrecedesEqual", "⪰",
392
+
393
+ "&NotSucceedsEqual", "⪳", "⪴", "⪵", "⪶", "⪷", "⪸", "⪹",
394
+
395
+ "⪺", "⪻", "⪼", "⪽", "⪾", "⪿", "⫀", "⫁", "⫂", "⫃", "⫄",
396
+
397
+ "⫅", "&nsubE", "⫆", "&nsupseteqq", "⫇", "⫈", "⫋", "&vsubnE",
398
+
399
+ "⫌", "&varsupsetneqq", "⫏", "⫐", "⫑", "⫒", "⫓", "⫔", "⫕",
400
+
401
+ "⫖", "⫗", "⫘", "⫙", "⫚", "⫛", "⫤", "⫦", "⫧", "⫨", "⫩",
402
+
403
+ "⫫", "⫬", "⫭", "⫮", "⫯", "⫰", "⫱", "⫲", "⫳", "⫽", "&nparsl",
404
+
405
+ "ff", "fi", "fl", "ffi", "ffl"
406
+
407
+ ];
408
+
409
+ $entities = get_html_translation_table(HTML_ENTITIES, ENT_QUOTES | ENT_HTML5, 'UTF-8');
410
+
411
+
412
+
413
+ foreach ($strings as $str) {
414
+
415
+ if (array_key_exists($str, $entities)) {
416
+
417
+ echo $entities[$str] . PHP_EOL;
418
+
419
+ }
420
+
421
+ }
422
+
423
+
424
+
425
+
426
+
427
+ ```

2

追記

2015/11/13 12:48

投稿

退会済みユーザー
test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- これで普通にヒットしましたげど…
13
+ これで普通にヒットしましたげど…とおもったら、なんか動きおかしいですね
14
14
 
15
15
 
16
16
 

1

追記

2015/11/13 12:14

投稿

退会済みユーザー
test CHANGED
@@ -3,3 +3,77 @@
3
3
  の文字がフォームから入力されたとしても、検索でヒットしないということは起こりません。
4
4
 
5
5
  DBに書き込みする際に、htmlspecialchars を通してしまっているなどのアンチパターンで実装してはいませんか?
6
+
7
+
8
+
9
+ ---
10
+
11
+
12
+
13
+ これで普通にヒットしましたげど…
14
+
15
+
16
+
17
+ ```php
18
+
19
+ <?php
20
+
21
+ ini_set('display_errors', 1);
22
+
23
+ error_reporting(E_ALL);
24
+
25
+
26
+
27
+ $pattern = "/[\"&<> ¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸]/";
28
+
29
+ $subject = "\"&<> ¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸";
30
+
31
+
32
+
33
+ preg_match_all($pattern, $subject, $matches);
34
+
35
+ ?>
36
+
37
+ <!DOCTYPE HTML>
38
+
39
+ <html lang="ja-JP">
40
+
41
+ <head>
42
+
43
+ <meta charset="UTF-8">
44
+
45
+ <title></title>
46
+
47
+ </head>
48
+
49
+ <body>
50
+
51
+ <?php
52
+
53
+ var_dump($subject);
54
+
55
+ ?>
56
+
57
+ <?php
58
+
59
+ foreach ($matches[0] as $i => $match) {
60
+
61
+ echo sprintf("%d:%s %s<br />"
62
+
63
+ , $i
64
+
65
+ , $match
66
+
67
+ , htmlentities($match, ENT_SUBSTITUTE, 'UTF-8')
68
+
69
+ );
70
+
71
+ }
72
+
73
+ ?>
74
+
75
+ </body>
76
+
77
+ </html>
78
+
79
+ ```