vervang à á â ã ä å door a enzovoort
er is geheid een functie die à á â ã ä å vervangt door gewoon a en dat ook doet met de o, i e, enzovoort.
Maar ik kan hem niet vinden... Wie kan me helpen?
edit:
hmm, die strtr doet dat dus net he... eerste lezen erik :)
Gewijzigd op 01/01/1970 01:00:00 door Erik van Maanen
Gewijzigd op 01/01/1970 01:00:00 door Stefan van Iwaarden
Code (php)
1
$addr = str_replace(array("","","","","","","","","","","","","","","","","","","","","","","","","",""),array("a","a","a","a","a","a","e","e","e","i","i","i","i","n","o","o","o","o","o","o","u","u","u","u","y","y"),$addr);
Bedankt!
Het probleem zit ergens anders. Als ik één aan onderstaande code voer krijg ik één als output (ik wil dus een als output). Als ik één zonder invoerveld aan de code voer (dus direct in de code invoer, zie regel 7) krijg ik er wel een uit.
Hoe zit dit en vooral, hoe kan ik dit fixen?
Code (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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?
error_reporting(E_ALL);
if(isset($_POST['submit1']))
{
$input = $_POST['input'];
//$input = 'één'; Hier even neergezet om te proberen. Gebruik je dit als input, dan werkt het wel.
// Verwerk input
$input = str_replace(array("à","á","â","ã","ä","å","é","ê","ë","ì","í","î","ï","ñ","ò","ó","ô","õ","ö","ø","ù","ú","û","ü","ý","ÿ"),array("a","a","a","a","a","a","e","e","e","i","i","i","i","n","o","o","o","o","o","o","u","u","u","u","y","y"),$input);
$input = strtr($input,"àáâãäåéêëìíîïñòóôõöøùúûüýÿ","aaaaaaeeeiiiinoooooouuuuyy");
var_dump( $input);
}
else // als het formulier nog niet verzonden is:
{
?>
<form method=post>
<textarea name="input" rows="40" cols="200"></textarea><br>
<input type="submit" name="submit1" value="Verstuur"><br>
</form>
<?
}
?>
error_reporting(E_ALL);
if(isset($_POST['submit1']))
{
$input = $_POST['input'];
//$input = 'één'; Hier even neergezet om te proberen. Gebruik je dit als input, dan werkt het wel.
// Verwerk input
$input = str_replace(array("à","á","â","ã","ä","å","é","ê","ë","ì","í","î","ï","ñ","ò","ó","ô","õ","ö","ø","ù","ú","û","ü","ý","ÿ"),array("a","a","a","a","a","a","e","e","e","i","i","i","i","n","o","o","o","o","o","o","u","u","u","u","y","y"),$input);
$input = strtr($input,"àáâãäåéêëìíîïñòóôõöøùúûüýÿ","aaaaaaeeeiiiinoooooouuuuyy");
var_dump( $input);
}
else // als het formulier nog niet verzonden is:
{
?>
<form method=post>
<textarea name="input" rows="40" cols="200"></textarea><br>
<input type="submit" name="submit1" value="Verstuur"><br>
</form>
<?
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Erik van Maanen
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
$omzetten = "Hállò, hoé gäát íë?";
$lettervan ="ÁÉÓÚÍÄËÖÜÏÀÈÒÙÌáéóúíäëöüïàèòùì";
$letternaar="AEOUIAEOUIAEOUIaeouiaeouiaeoui";
echo strtr($omzetten, $lettervan, $letternaar);
// Geeft: Hallo, hoe gaat ie?
?>
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
$omzetten = "Hállò, hoé gäát íë?";
$lettervan ="ÁÉÓÚÍÄËÖÜÏÀÈÒÙÌáéóúíäëöüïàèòùì";
$letternaar="AEOUIAEOUIAEOUIaeouiaeouiaeoui";
echo strtr($omzetten, $lettervan, $letternaar);
// Geeft: Hallo, hoe gaat ie?
?>
Hu¡llu², hou© gu¤u¡t uu«?
Op de php-server van een vriend doet hij het wel goed, precies dezelfde code dus. Dat heeft dus te maken met de configuratie van php.
Ik heb gewoon een standaardinstallatie van PHP Version 5.2.3-1ubuntu6.3. Verder niks aan geconfigureerd. Waar kan ik dat doen?
Ik ben inmiddels in de fase dat ik gewoon wil begrijpen wat er aan de hand is.... ik ben lerende vandaag :)
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
function rareTekensWeg ( $s )
{
$s = htmlentities ( $s , ENT_QUOTES , 'utf-8' );
return preg_replace ( '#&(.).*?;#' , '\\1' , $s );
}
?>
function rareTekensWeg ( $s )
{
$s = htmlentities ( $s , ENT_QUOTES , 'utf-8' );
return preg_replace ( '#&(.).*?;#' , '\\1' , $s );
}
?>
htmlentities() maakt van é é en van á á. Wat je ziet is dat je steeds het eerste teken na de & kan pakken om de rest (acute, grave, of egu bijvoorbeeld) weg te gooien.
Slim hè? :-D
En wat dan met dingen als ©? Die zou dan ineens "c" worden. En al die andere HTML entities...
Welke andere?
Er moet alleen wel een klein puntje aan veranderen en daar heeft Karl ook gelijk in. Dit heb ik gedaan en nu kun je bij de $array invullen op welk woord hij moet eindigen.. Misschien zijn er nog meer, maar die mag je er zelf bijzetten. Btw: Een ´ word gewoon een ´ gelaten, hoewel het '`' heet. Er staat namelijk geen letter tussen de & en de g.
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
function deletetekens ($str)
{
$array = array('acute', 'grave', 'uml', 'circ', 'tilde', 'ring');
$str = htmlentities($str);
return preg_replace("#&(.)(".implode("|", $array).");#", "\\1", $str);
}
$function = 'ÁÉÓÚÍÄËÖÜÏÀÈÒÙÌáéóúíäëöüïàèòùì"\'©´&';
echo deletetekens($function);
?>
function deletetekens ($str)
{
$array = array('acute', 'grave', 'uml', 'circ', 'tilde', 'ring');
$str = htmlentities($str);
return preg_replace("#&(.)(".implode("|", $array).");#", "\\1", $str);
}
$function = 'ÁÉÓÚÍÄËÖÜÏÀÈÒÙÌáéóúíäëöüïàèòùì"\'©´&';
echo deletetekens($function);
?>
Edit:
'circ', 'tilde', 'ring' toegevoegd
Gewijzigd op 01/01/1970 01:00:00 door Mark L
Voorbeeld: ¬˚©®œ∑£€ºª•¶§∞µ≈Ω˘¯
Moeten daar dan htmlentities van gemaakt worden? Of wil je die gewoon in de oorspronkelijke staat houden?
Edit:
ik had de vorige post iets langer geleden in mijn hoofd zitten, scuzi
Gewijzigd op 01/01/1970 01:00:00 door Marcel
ik heb al meerdere keren het probleem gehad dat simplexml geen html enties slikt, dus die zou ik er graag uit gooien zonder de text van de user(ernstig) te slopen.
met een goede charset is't ook gefixt toch? UTF 8 voldoet prima
zou ik eens kunnen proberen, geeft dat echt geen problemen?
toch zou ik graag zo'n functie hebben om te voorkomen dat mensen vage tekens ergens in gaan zetten...
Voor uitzonderingen heb ik even geen idee, dat omdat het laat is..
Edit:
Marcel, als deze gewoon htmlentities zijn, dan zijn ze wat langer opgeschreven, maar je browser zet ze dan gewoon om naar de goede tekens. Je moet eigenlijk ook geen non-htmlentities outputten, dus ik zie je probleem/vraag niet.
Marcel, als deze gewoon htmlentities zijn, dan zijn ze wat langer opgeschreven, maar je browser zet ze dan gewoon om naar de goede tekens. Je moet eigenlijk ook geen non-htmlentities outputten, dus ik zie je probleem/vraag niet.
Gewijzigd op 01/01/1970 01:00:00 door Mark L