UTF-8, Uw gedacht
Functie 1: Deze zet speciale tekens om naar UTF-8 (ü wordt ü)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
/**************************************************\
OMZETTEN IN UTF-8
\**************************************************/
function utf8($text = ''){
$utf8 = htmlentities($text, ENT_QUOTES, 'UTF-8');
if (!$utf8){
$utf8 = htmlentities($text, ENT_QUOTES);
}
return $utf8;
}
?>
/**************************************************\
OMZETTEN IN UTF-8
\**************************************************/
function utf8($text = ''){
$utf8 = htmlentities($text, ENT_QUOTES, 'UTF-8');
if (!$utf8){
$utf8 = htmlentities($text, ENT_QUOTES);
}
return $utf8;
}
?>
Functie 2: Deze zet speciale tekens om naar een gewone letter (ü wordt u)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
/**************************************************\
UTF-8 OMZETTEN IN LETTERS
\**************************************************/
function replace_utf8($text = ''){
$utf8 = htmlentities($text, ENT_QUOTES, 'UTF-8');
if (!$utf8){
$utf8 = htmlentities($text, ENT_QUOTES);
}
$utf8 = preg_replace("/&([a-z])[a-z0-9]{3,};/i", "\\1", $utf8);
return $utf8;
}
?>
/**************************************************\
UTF-8 OMZETTEN IN LETTERS
\**************************************************/
function replace_utf8($text = ''){
$utf8 = htmlentities($text, ENT_QUOTES, 'UTF-8');
if (!$utf8){
$utf8 = htmlentities($text, ENT_QUOTES);
}
$utf8 = preg_replace("/&([a-z])[a-z0-9]{3,};/i", "\\1", $utf8);
return $utf8;
}
?>
Tot in hoeverre is dit correct? Hoe zou jij het doen? Suggesties?
- htmlentities geeft geen false terug, maar eventueel leeg. Dus if(!utf8) werkt niet
- als het niet lukt, doe je hetzelfde nog een keer?
in replace_utf8():
- zelfde verhaal als hierboven (waarom roep je niet gewoon utf8() aan? >> classe oid)
* ik ben niet bekend genoeg met preg_replace om dit te beoordelen
Eddy Erkelens op 05/09/2012 17:15:51:
in utf8():
- htmlentities geeft geen false terug, maar eventueel leeg. Dus if(!utf8) werkt niet
- als het niet lukt, doe je hetzelfde nog een keer?
- htmlentities geeft geen false terug, maar eventueel leeg. Dus if(!utf8) werkt niet
- als het niet lukt, doe je hetzelfde nog een keer?
(!$utf8) Als $utf8 leeg is probeer opnieuw zonder 'UTF-8'
Ik heb door persoonlijke ondervinding al gemerkt dat 1 van beide niet altijd correct is, daarom dus het 2x proberen. Als de eerste niet correct is probeer dan de 2de.
Eddy Erkelens op 05/09/2012 17:15:51:
in replace_utf8():
- zelfde verhaal als hierboven (waarom roep je niet gewoon utf8() aan? >> classe oid)
* ik ben niet bekend genoeg met preg_replace om dit te beoordelen
- zelfde verhaal als hierboven (waarom roep je niet gewoon utf8() aan? >> classe oid)
* ik ben niet bekend genoeg met preg_replace om dit te beoordelen
Zelfde antwoord als hierboven
Ik wil het op 2 aparte functies hebben :)
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
function replace_utf8($text = ''){
$utf8 = utf8($text); // opent dus die andere functie...
$utf8 = preg_replace("/&([a-z])[a-z0-9]{3,};/i", "\\1", $utf8);
return $utf8;
}
?>
function replace_utf8($text = ''){
$utf8 = utf8($text); // opent dus die andere functie...
$utf8 = preg_replace("/&([a-z])[a-z0-9]{3,};/i", "\\1", $utf8);
return $utf8;
}
?>
Waarom de $text parameter optioneel maken? Zonder parameter kan de functie toch niks?
Wouter J op 05/09/2012 17:32:44:
Jups, inderdaad, dat is uit gewoonte bij andere functies dat ik het elke keer plaats. In mijn eigen functie heb ik het al verbetert.Waarom de $text parameter optioneel maken? Zonder parameter kan de functie toch niks?