specials.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615
  1. <?php
  2. /**
  3. * UTF-8 array of common special characters
  4. *
  5. * This array should contain all special characters (not a letter or digit)
  6. * defined in the various local charsets - it's not a complete list of non-alphanum
  7. * characters in UTF-8. It's not perfect but should match most cases of special
  8. * chars.
  9. *
  10. * The controlchars 0x00 to 0x19 are _not_ included in this array. The space 0x20 is!
  11. * These chars are _not_ in the array either: _ (0x5f), : 0x3a, . 0x2e, - 0x2d, * 0x2a
  12. *
  13. * @author Andreas Gohr <andi@splitbrain.org>
  14. * @see \dokuwiki\Utf8\Clean::stripspecials()
  15. */
  16. return [
  17. 0x1a, // 
  18. 0x1b, // 
  19. 0x1c, // 
  20. 0x1d, // 
  21. 0x1e, // 
  22. 0x1f, // 
  23. 0x20, // <space>
  24. 0x21, // !
  25. 0x22, // "
  26. 0x23, // #
  27. 0x24, // $
  28. 0x25, // %
  29. 0x26, // &
  30. 0x27, // '
  31. 0x28, // (
  32. 0x29, // )
  33. 0x2b, // +
  34. 0x2c, // ,
  35. 0x2f, // /
  36. 0x3b, // ;
  37. 0x3c, // <
  38. 0x3d, // =
  39. 0x3e, // >
  40. 0x3f, // ?
  41. 0x40, // @
  42. 0x5b, // [
  43. 0x5c, // \
  44. 0x5d, // ]
  45. 0x5e, // ^
  46. 0x60, // `
  47. 0x7b, // {
  48. 0x7c, // |
  49. 0x7d, // }
  50. 0x7e, // ~
  51. 0x7f, // 
  52. 0x80, // €
  53. 0x81, // 
  54. 0x82, // ‚
  55. 0x83, // ƒ
  56. 0x84, // „
  57. 0x85, // …
  58. 0x86, // †
  59. 0x87, // ‡
  60. 0x88, // ˆ
  61. 0x89, // ‰
  62. 0x8a, // Š
  63. 0x8b, // ‹
  64. 0x8c, // Œ
  65. 0x8d, // 
  66. 0x8e, // Ž
  67. 0x8f, // 
  68. 0x90, // 
  69. 0x91, // ‘
  70. 0x92, // ’
  71. 0x93, // “
  72. 0x94, // ”
  73. 0x95, // •
  74. 0x96, // –
  75. 0x97, // —
  76. 0x98, // ˜
  77. 0x99, // ™
  78. 0x9a, // š
  79. 0x9b, // ›
  80. 0x9c, // œ
  81. 0x9d, // 
  82. 0x9e, // ž
  83. 0x9f, // Ÿ
  84. 0xa0, //  
  85. 0xa1, // ¡
  86. 0xa2, // ¢
  87. 0xa3, // £
  88. 0xa4, // ¤
  89. 0xa5, // ¥
  90. 0xa6, // ¦
  91. 0xa7, // §
  92. 0xa8, // ¨
  93. 0xa9, // ©
  94. 0xaa, // ª
  95. 0xab, // «
  96. 0xac, // ¬
  97. 0xad, // ­
  98. 0xae, // ®
  99. 0xaf, // ¯
  100. 0xb0, // °
  101. 0xb1, // ±
  102. 0xb2, // ²
  103. 0xb3, // ³
  104. 0xb4, // ´
  105. 0xb5, // µ
  106. 0xb6, // ¶
  107. 0xb7, // ·
  108. 0xb8, // ¸
  109. 0xb9, // ¹
  110. 0xba, // º
  111. 0xbb, // »
  112. 0xbc, // ¼
  113. 0xbd, // ½
  114. 0xbe, // ¾
  115. 0xbf, // ¿
  116. 0xd7, // ×
  117. 0xf7, // ÷
  118. 0x2c7, // ˇ
  119. 0x2d8, // ˘
  120. 0x2d9, // ˙
  121. 0x2da, // ˚
  122. 0x2db, // ˛
  123. 0x2dc, // ˜
  124. 0x2dd, // ˝
  125. 0x300, // ̀
  126. 0x301, // ́
  127. 0x303, // ̃
  128. 0x309, // ̉
  129. 0x323, // ̣
  130. 0x384, // ΄
  131. 0x385, // ΅
  132. 0x387, // ·
  133. 0x5b0, // ְ
  134. 0x5b1, // ֱ
  135. 0x5b2, // ֲ
  136. 0x5b3, // ֳ
  137. 0x5b4, // ִ
  138. 0x5b5, // ֵ
  139. 0x5b6, // ֶ
  140. 0x5b7, // ַ
  141. 0x5b8, // ָ
  142. 0x5b9, // ֹ
  143. 0x5bb, // ֻ
  144. 0x5bc, // ּ
  145. 0x5bd, // ֽ
  146. 0x5be, // ־
  147. 0x5bf, // ֿ
  148. 0x5c0, // ׀
  149. 0x5c1, // ׁ
  150. 0x5c2, // ׂ
  151. 0x5c3, // ׃
  152. 0x5f3, // ׳
  153. 0x5f4, // ״
  154. 0x60c, // ،
  155. 0x61b, // ؛
  156. 0x61f, // ؟
  157. 0x640, // ـ
  158. 0x64b, // ً
  159. 0x64c, // ٌ
  160. 0x64d, // ٍ
  161. 0x64e, // َ
  162. 0x64f, // ُ
  163. 0x650, // ِ
  164. 0x651, // ّ
  165. 0x652, // ْ
  166. 0x66a, // ٪
  167. 0xe3f, // ฿
  168. 0x200c, // ‌
  169. 0x200d, // ‍
  170. 0x200e, // ‎
  171. 0x200f, // ‏
  172. 0x2013, // –
  173. 0x2014, // —
  174. 0x2015, // ―
  175. 0x2017, // ‗
  176. 0x2018, // ‘
  177. 0x2019, // ’
  178. 0x201a, // ‚
  179. 0x201c, // “
  180. 0x201d, // ”
  181. 0x201e, // „
  182. 0x2020, // †
  183. 0x2021, // ‡
  184. 0x2022, // •
  185. 0x2026, // …
  186. 0x2030, // ‰
  187. 0x2032, // ′
  188. 0x2033, // ″
  189. 0x2039, // ‹
  190. 0x203a, // ›
  191. 0x2044, // ⁄
  192. 0x20a7, // ₧
  193. 0x20aa, // ₪
  194. 0x20ab, // ₫
  195. 0x20ac, // €
  196. 0x2116, // №
  197. 0x2118, // ℘
  198. 0x2122, // ™
  199. 0x2126, // Ω
  200. 0x2135, // ℵ
  201. 0x2190, // ←
  202. 0x2191, // ↑
  203. 0x2192, // →
  204. 0x2193, // ↓
  205. 0x2194, // ↔
  206. 0x2195, // ↕
  207. 0x21b5, // ↵
  208. 0x21d0, // ⇐
  209. 0x21d1, // ⇑
  210. 0x21d2, // ⇒
  211. 0x21d3, // ⇓
  212. 0x21d4, // ⇔
  213. 0x2200, // ∀
  214. 0x2202, // ∂
  215. 0x2203, // ∃
  216. 0x2205, // ∅
  217. 0x2206, // ∆
  218. 0x2207, // ∇
  219. 0x2208, // ∈
  220. 0x2209, // ∉
  221. 0x220b, // ∋
  222. 0x220f, // ∏
  223. 0x2211, // ∑
  224. 0x2212, // −
  225. 0x2215, // ∕
  226. 0x2217, // ∗
  227. 0x2219, // ∙
  228. 0x221a, // √
  229. 0x221d, // ∝
  230. 0x221e, // ∞
  231. 0x2220, // ∠
  232. 0x2227, // ∧
  233. 0x2228, // ∨
  234. 0x2229, // ∩
  235. 0x222a, // ∪
  236. 0x222b, // ∫
  237. 0x2234, // ∴
  238. 0x223c, // ∼
  239. 0x2245, // ≅
  240. 0x2248, // ≈
  241. 0x2260, // ≠
  242. 0x2261, // ≡
  243. 0x2264, // ≤
  244. 0x2265, // ≥
  245. 0x2282, // ⊂
  246. 0x2283, // ⊃
  247. 0x2284, // ⊄
  248. 0x2286, // ⊆
  249. 0x2287, // ⊇
  250. 0x2295, // ⊕
  251. 0x2297, // ⊗
  252. 0x22a5, // ⊥
  253. 0x22c5, // ⋅
  254. 0x2310, // ⌐
  255. 0x2320, // ⌠
  256. 0x2321, // ⌡
  257. 0x2329, // 〈
  258. 0x232a, // 〉
  259. 0x2469, // ⑩
  260. 0x2500, // ─
  261. 0x2502, // │
  262. 0x250c, // ┌
  263. 0x2510, // ┐
  264. 0x2514, // └
  265. 0x2518, // ┘
  266. 0x251c, // ├
  267. 0x2524, // ┤
  268. 0x252c, // ┬
  269. 0x2534, // ┴
  270. 0x253c, // ┼
  271. 0x2550, // ═
  272. 0x2551, // ║
  273. 0x2552, // ╒
  274. 0x2553, // ╓
  275. 0x2554, // ╔
  276. 0x2555, // ╕
  277. 0x2556, // ╖
  278. 0x2557, // ╗
  279. 0x2558, // ╘
  280. 0x2559, // ╙
  281. 0x255a, // ╚
  282. 0x255b, // ╛
  283. 0x255c, // ╜
  284. 0x255d, // ╝
  285. 0x255e, // ╞
  286. 0x255f, // ╟
  287. 0x2560, // ╠
  288. 0x2561, // ╡
  289. 0x2562, // ╢
  290. 0x2563, // ╣
  291. 0x2564, // ╤
  292. 0x2565, // ╥
  293. 0x2566, // ╦
  294. 0x2567, // ╧
  295. 0x2568, // ╨
  296. 0x2569, // ╩
  297. 0x256a, // ╪
  298. 0x256b, // ╫
  299. 0x256c, // ╬
  300. 0x2580, // ▀
  301. 0x2584, // ▄
  302. 0x2588, // █
  303. 0x258c, // ▌
  304. 0x2590, // ▐
  305. 0x2591, // ░
  306. 0x2592, // ▒
  307. 0x2593, // ▓
  308. 0x25a0, // ■
  309. 0x25b2, // ▲
  310. 0x25bc, // ▼
  311. 0x25c6, // ◆
  312. 0x25ca, // ◊
  313. 0x25cf, // ●
  314. 0x25d7, // ◗
  315. 0x2605, // ★
  316. 0x260e, // ☎
  317. 0x261b, // ☛
  318. 0x261e, // ☞
  319. 0x2660, // ♠
  320. 0x2663, // ♣
  321. 0x2665, // ♥
  322. 0x2666, // ♦
  323. 0x2701, // ✁
  324. 0x2702, // ✂
  325. 0x2703, // ✃
  326. 0x2704, // ✄
  327. 0x2706, // ✆
  328. 0x2707, // ✇
  329. 0x2708, // ✈
  330. 0x2709, // ✉
  331. 0x270c, // ✌
  332. 0x270d, // ✍
  333. 0x270e, // ✎
  334. 0x270f, // ✏
  335. 0x2710, // ✐
  336. 0x2711, // ✑
  337. 0x2712, // ✒
  338. 0x2713, // ✓
  339. 0x2714, // ✔
  340. 0x2715, // ✕
  341. 0x2716, // ✖
  342. 0x2717, // ✗
  343. 0x2718, // ✘
  344. 0x2719, // ✙
  345. 0x271a, // ✚
  346. 0x271b, // ✛
  347. 0x271c, // ✜
  348. 0x271d, // ✝
  349. 0x271e, // ✞
  350. 0x271f, // ✟
  351. 0x2720, // ✠
  352. 0x2721, // ✡
  353. 0x2722, // ✢
  354. 0x2723, // ✣
  355. 0x2724, // ✤
  356. 0x2725, // ✥
  357. 0x2726, // ✦
  358. 0x2727, // ✧
  359. 0x2729, // ✩
  360. 0x272a, // ✪
  361. 0x272b, // ✫
  362. 0x272c, // ✬
  363. 0x272d, // ✭
  364. 0x272e, // ✮
  365. 0x272f, // ✯
  366. 0x2730, // ✰
  367. 0x2731, // ✱
  368. 0x2732, // ✲
  369. 0x2733, // ✳
  370. 0x2734, // ✴
  371. 0x2735, // ✵
  372. 0x2736, // ✶
  373. 0x2737, // ✷
  374. 0x2738, // ✸
  375. 0x2739, // ✹
  376. 0x273a, // ✺
  377. 0x273b, // ✻
  378. 0x273c, // ✼
  379. 0x273d, // ✽
  380. 0x273e, // ✾
  381. 0x273f, // ✿
  382. 0x2740, // ❀
  383. 0x2741, // ❁
  384. 0x2742, // ❂
  385. 0x2743, // ❃
  386. 0x2744, // ❄
  387. 0x2745, // ❅
  388. 0x2746, // ❆
  389. 0x2747, // ❇
  390. 0x2748, // ❈
  391. 0x2749, // ❉
  392. 0x274a, // ❊
  393. 0x274b, // ❋
  394. 0x274d, // ❍
  395. 0x274f, // ❏
  396. 0x2750, // ❐
  397. 0x2751, // ❑
  398. 0x2752, // ❒
  399. 0x2756, // ❖
  400. 0x2758, // ❘
  401. 0x2759, // ❙
  402. 0x275a, // ❚
  403. 0x275b, // ❛
  404. 0x275c, // ❜
  405. 0x275d, // ❝
  406. 0x275e, // ❞
  407. 0x2761, // ❡
  408. 0x2762, // ❢
  409. 0x2763, // ❣
  410. 0x2764, // ❤
  411. 0x2765, // ❥
  412. 0x2766, // ❦
  413. 0x2767, // ❧
  414. 0x277f, // ❿
  415. 0x2789, // ➉
  416. 0x2793, // ➓
  417. 0x2794, // ➔
  418. 0x2798, // ➘
  419. 0x2799, // ➙
  420. 0x279a, // ➚
  421. 0x279b, // ➛
  422. 0x279c, // ➜
  423. 0x279d, // ➝
  424. 0x279e, // ➞
  425. 0x279f, // ➟
  426. 0x27a0, // ➠
  427. 0x27a1, // ➡
  428. 0x27a2, // ➢
  429. 0x27a3, // ➣
  430. 0x27a4, // ➤
  431. 0x27a5, // ➥
  432. 0x27a6, // ➦
  433. 0x27a7, // ➧
  434. 0x27a8, // ➨
  435. 0x27a9, // ➩
  436. 0x27aa, // ➪
  437. 0x27ab, // ➫
  438. 0x27ac, // ➬
  439. 0x27ad, // ➭
  440. 0x27ae, // ➮
  441. 0x27af, // ➯
  442. 0x27b1, // ➱
  443. 0x27b2, // ➲
  444. 0x27b3, // ➳
  445. 0x27b4, // ➴
  446. 0x27b5, // ➵
  447. 0x27b6, // ➶
  448. 0x27b7, // ➷
  449. 0x27b8, // ➸
  450. 0x27b9, // ➹
  451. 0x27ba, // ➺
  452. 0x27bb, // ➻
  453. 0x27bc, // ➼
  454. 0x27bd, // ➽
  455. 0x27be, // ➾
  456. 0x3000, //  
  457. 0x3001, // 、
  458. 0x3002, // 。
  459. 0x3003, // 〃
  460. 0x3008, // 〈
  461. 0x3009, // 〉
  462. 0x300a, // 《
  463. 0x300b, // 》
  464. 0x300c, // 「
  465. 0x300d, // 」
  466. 0x300e, // 『
  467. 0x300f, // 』
  468. 0x3010, // 【
  469. 0x3011, // 】
  470. 0x3012, // 〒
  471. 0x3014, // 〔
  472. 0x3015, // 〕
  473. 0x3016, // 〖
  474. 0x3017, // 〗
  475. 0x3018, // 〘
  476. 0x3019, // 〙
  477. 0x301a, // 〚
  478. 0x301b, // 〛
  479. 0x3036, // 〶
  480. 0xf6d9, // 
  481. 0xf6da, // 
  482. 0xf6db, // 
  483. 0xf8d7, // 
  484. 0xf8d8, // 
  485. 0xf8d9, // 
  486. 0xf8da, // 
  487. 0xf8db, // 
  488. 0xf8dc, // 
  489. 0xf8dd, // 
  490. 0xf8de, // 
  491. 0xf8df, // 
  492. 0xf8e0, // 
  493. 0xf8e1, // 
  494. 0xf8e2, // 
  495. 0xf8e3, // 
  496. 0xf8e4, // 
  497. 0xf8e5, // 
  498. 0xf8e6, // 
  499. 0xf8e7, // 
  500. 0xf8e8, // 
  501. 0xf8e9, // 
  502. 0xf8ea, // 
  503. 0xf8eb, // 
  504. 0xf8ec, // 
  505. 0xf8ed, // 
  506. 0xf8ee, // 
  507. 0xf8ef, // 
  508. 0xf8f0, // 
  509. 0xf8f1, // 
  510. 0xf8f2, // 
  511. 0xf8f3, // 
  512. 0xf8f4, // 
  513. 0xf8f5, // 
  514. 0xf8f6, // 
  515. 0xf8f7, // 
  516. 0xf8f8, // 
  517. 0xf8f9, // 
  518. 0xf8fa, // 
  519. 0xf8fb, // 
  520. 0xf8fc, // 
  521. 0xf8fd, // 
  522. 0xf8fe, // 
  523. 0xfe7c, // ﹼ
  524. 0xfe7d, // ﹽ
  525. 0xff01, // !
  526. 0xff02, // "
  527. 0xff03, // #
  528. 0xff04, // $
  529. 0xff05, // %
  530. 0xff06, // &
  531. 0xff07, // '
  532. 0xff08, // (
  533. 0xff09, // )
  534. 0xff09, // )
  535. 0xff0a, // *
  536. 0xff0b, // +
  537. 0xff0c, // ,
  538. 0xff0d, // -
  539. 0xff0e, // .
  540. 0xff0f, // /
  541. 0xff1a, // :
  542. 0xff1b, // ;
  543. 0xff1c, // <
  544. 0xff1d, // =
  545. 0xff1e, // >
  546. 0xff1f, // ?
  547. 0xff20, // @
  548. 0xff3b, // [
  549. 0xff3c, // \
  550. 0xff3d, // ]
  551. 0xff3e, // ^
  552. 0xff40, // `
  553. 0xff5b, // {
  554. 0xff5c, // |
  555. 0xff5d, // }
  556. 0xff5e, // ~
  557. 0xff5f, // ⦅
  558. 0xff60, // ⦆
  559. 0xff61, // 。
  560. 0xff62, // 「
  561. 0xff63, // 」
  562. 0xff64, // 、
  563. 0xff65, // ・
  564. 0xffe0, // ¢
  565. 0xffe1, // £
  566. 0xffe2, // ¬
  567. 0xffe3, //  ̄
  568. 0xffe4, // ¦
  569. 0xffe5, // ¥
  570. 0xffe6, // ₩
  571. 0xffe8, // │
  572. 0xffe9, // ←
  573. 0xffea, // ↑
  574. 0xffeb, // →
  575. 0xffec, // ↓
  576. 0xffed, // ■
  577. 0xffee, // ○
  578. 0x1d6fc, // 𝛼
  579. 0x1d6fd, // 𝛽
  580. 0x1d6fe, // 𝛾
  581. 0x1d6ff, // 𝛿
  582. 0x1d700, // 𝜀
  583. 0x1d701, // 𝜁
  584. 0x1d702, // 𝜂
  585. 0x1d703, // 𝜃
  586. 0x1d704, // 𝜄
  587. 0x1d705, // 𝜅
  588. 0x1d706, // 𝜆
  589. 0x1d707, // 𝜇
  590. 0x1d708, // 𝜈
  591. 0x1d709, // 𝜉
  592. 0x1d70a, // 𝜊
  593. 0x1d70b, // 𝜋
  594. 0x1d70c, // 𝜌
  595. 0x1d70d, // 𝜍
  596. 0x1d70e, // 𝜎
  597. 0x1d70f, // 𝜏
  598. 0x1d710, // 𝜐
  599. 0x1d711, // 𝜑
  600. 0x1d712, // 𝜒
  601. 0x1d713, // 𝜓
  602. 0x1d714, // 𝜔
  603. 0x1d715, // 𝜕
  604. 0x1d716, // 𝜖
  605. 0x1d717, // 𝜗
  606. 0x1d718, // 𝜘
  607. 0x1d719, // 𝜙
  608. 0x1d71a, // 𝜚
  609. 0x1d71b, // 𝜛
  610. 0xc2a0, // 슠
  611. 0xe28087, //
  612. 0xe280af, //
  613. 0xe281a0, //
  614. 0xefbbbf, //
  615. ];