Van ë naar e, Ö naar O, enz

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Barman V

Barman V

21/03/2006 11:18:00
Quote Anchor link
Beste allen,

Wat is de makkelijkste manier om de trema's (ë Ë), streepjes (é È) weg te halen, dus dat je gewoon krijgt e of E. Dit is alleen een voorbeeld met de letter e, maar het betreft ook met een o, u, y, i, a.

Ik heb zelf al gekeken naar ereg_replace en preg_replace, maar kon daarmee niet uit de voeten om iets makkelijks te maken.

Of moet ik het echt zo doen?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$data
= str_replace(array('ë', 'ï', '&#10;'), array('e', 'i', ' '), $data);
//enz
?>


Ik heb namelijk een SAX parser gemaakt die xml documenten omzet in bruikbare tekst, maar hij doet gek bij ë, ä, Ë, &amp; enz.

Als ik iets met htmlentities / -specialchars wil doen krijg ik een xml foutmelding
XML error: Empty document at line 1
 
PHP hulp

PHP hulp

22/07/2024 18:52:37
 
- SanThe -

- SanThe -

21/03/2006 11:23:00
 
Elwin - Fratsloos

Elwin - Fratsloos

21/03/2006 11:24:00
Quote Anchor link
Edit:
Oeps geef je eigenlijk dezelfde functie als je zelf had, maar dan iets anders.. :)

Elwin
Gewijzigd op 21/03/2006 11:26:00 door Elwin - Fratsloos
 
Barman V

Barman V

21/03/2006 11:37:00
Quote Anchor link
Bedankt voor de reacties.

@SanThe
Ik had inderdaad ook al naar strtr gekeken, maar dan moet ik nog steeds alles met de hand veranderen. Ik heb nu dus:

$trans = array(
'ë' => 'e',
'Ë' => 'E',
'ö' => 'o',
'Ö' => 'O'
);
$data = strtr($data, $trans);

Maar is er geen makkelijkere manier? Alleen al om die hoofdlettergevoeligheid eruit te halen, dus dat ik geen onderscheid hoef te maken met e en E. Met strtolower maakt hij mij $data ook klein en dat wil ik liever niet.
 
B a s
Beheerder

B a s

21/03/2006 11:40:00
Quote Anchor link
Probeer dit eens:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
str_replace("\"", "&quot;", str_replace("'", "&#039;", htmlspecialchars(htmlentities($data))));
?>
 
Barman V

Barman V

21/03/2006 11:58:00
Quote Anchor link
Dan krijg ik nog de xml fout
XML error: Empty document at line 1

De reden dat ik die " en ' wil verwijderen is dat de SAX-parser bijvoorbeeld het woord financiën splitst in:
financi
ën

Het is mij een raadsel waarom? Net als de &amp;
Dus van:
Veel gestelde vragen & glossary

Maakt hij:
Veel gestelde vragen
&
glossary

Als daar een oplossing voor bestaat ben ik helemaal blij.
 
Barman V

Barman V

21/03/2006 12:34:00
Quote Anchor link
Uit pure wanhoop heb ik er maar dit van gemaakt
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$trans
= array(
    'ë' => 'e', 'Ë' => 'E', 'é' => 'e', 'É' => 'E', 'è' => 'e', 'È' => 'E', 'ê' => 'e', 'Ê' => 'E',
    'ö' => 'o', 'Ö' => 'O', 'ó' => 'o', 'Ó' => 'O', 'ò' => 'o',    'Ò' => 'O',    'ô' => 'o',    'Ô' => 'O',    'õ' => 'o', 'Õ' => 'O',
    'ï' => 'i',    'Ï' => 'I', 'í' => 'i',    'Í' => 'I', 'ì' => 'i',    'Ì' => 'I', 'î' => 'i',    'Î' => 'I',
    'ä' => 'a', 'Ä' => 'A', 'á' => 'a', 'Á' => 'A', 'à' => 'a', 'À' => 'A', 'â' => 'a', 'Â' => 'A', 'ã' => 'a', 'Ã' => 'A',
    'ü' => 'u',    'Ü' => 'U', 'ú' => 'u',    'Ú' => 'U', 'ù' => 'u',    'Ù' => 'U', 'û' => 'u',    'Û' => 'U',
    'ÿ' => 'y', 'ý' => 'y', 'Ý' => 'Y',
    '&#10;' => ' ',
    '&amp;' => 'en',
    '&lt;' => ' ',
    '&gt;' => ' ',
    '&quot;' => '"',
);

$data = strtr($data, $trans);
?>


Lang leve DOM :D, dan had ik dit probleem niet gehad. Maar mijn host ondersteund geen php5.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.