Hey,
In een beheersysteem kopiëren klanten vaak stukken tekst rechtstreeks vanuit Microsoft Word (2007) naar een tekstvak in het PHP beheersysteem. Door het direct kopiëren worden ook speciale karakters die alleen beschikbaar zijn in Word meegenomen, zoals een breder - teken en smart quotes. Wanneer vervolgens de tekst in het beheersysteem doorgevoerd wordt in de mySQL database wordt de tekst afgekapt bij deze speciale karakters.
Alles staat op UTF-8 (verbinding naar database, velden in database, tabellen in database, meta tags, header in PHP) en ik gebruik de volgende replace code om speciale Word karakters om te zetten:
Maar zoals je wellicht al vermoedt werkt dit niet; de teksten worden nog steeds afgekapt ter plaatse van de eerste speciale karakter in een tekst.
Weet iemand hoe dit opgelost kan worden?
In een beheersysteem kopiëren klanten vaak stukken tekst rechtstreeks vanuit Microsoft Word (2007) naar een tekstvak in het PHP beheersysteem. Door het direct kopiëren worden ook speciale karakters die alleen beschikbaar zijn in Word meegenomen, zoals een breder - teken en smart quotes. Wanneer vervolgens de tekst in het beheersysteem doorgevoerd wordt in de mySQL database wordt de tekst afgekapt bij deze speciale karakters.
Alles staat op UTF-8 (verbinding naar database, velden in database, tabellen in database, meta tags, header in PHP) en ik gebruik de volgende replace code om speciale Word karakters om te zetten:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
| <?php function wordquotes($text) { $badwordchars = array( chr(130), chr(131), chr(132), chr(133), chr(134), chr(135), chr(136), chr(137), chr(138), chr(139), chr(140), chr(145), chr(146), chr(147), chr(148), chr(149), chr(150), chr(151), chr(152), chr(153), chr(154), chr(155), chr(156), chr(159) ); $fixedwordchars = array( ',', 'NLG', '"', '...', '**', '***', '^', 'o/oo', 'Sh', '<', 'OE', "'", "'", '"', '"', '-', '-', '--', '~', '(TM)', 'sh', '>', 'oe', 'Y' ); return str_replace($badwordchars,$fixedwordchars,$text); } ?> |
Maar zoals je wellicht al vermoedt werkt dit niet; de teksten worden nog steeds afgekapt ter plaatse van de eerste speciale karakter in een tekst.
Weet iemand hoe dit opgelost kan worden?