vervang à á â ã ä å door a enzovoort

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Erik van Maanen

Erik van Maanen

20/04/2008 00:29:00
Quote Anchor link
Hai

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?
 
PHP hulp

PHP hulp

16/11/2024 10:41:59
 
Mark PHP

Mark PHP

20/04/2008 00:37:00
Quote Anchor link
strtr() of str_replace().
Gewijzigd op 01/01/1970 01:00:00 door Mark PHP
 
Erik van Maanen

Erik van Maanen

20/04/2008 00:42:00
Quote Anchor link
daar zat ik ook al naar te kijken, maar moet je dan voor elke letter een andere str_replace() gebruiken? Dat moet makkelijker kunnen dacht ik...

edit:
hmm, die strtr doet dat dus net he... eerste lezen erik :)
Gewijzigd op 01/01/1970 01:00:00 door Erik van Maanen
 
Stefan van Iwaarden

Stefan van Iwaarden

20/04/2008 00:42:00
Quote Anchor link
je kunt ook een array gebruiken in combinatie met die functie.
Gewijzigd op 01/01/1970 01:00:00 door Stefan van Iwaarden
 
Erik van Maanen

Erik van Maanen

20/04/2008 01:02:00
Quote Anchor link
die strtr werkt niet echt bij mij. Maakt van rare karakters andere rare karakters. Dit werkt wel:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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!
 
Erik van Maanen

Erik van Maanen

20/04/2008 01:47:00
Quote Anchor link
Hmm, toch niet helaas.

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)
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
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>
    <?
}

?>
Gewijzigd op 01/01/1970 01:00:00 door Erik van Maanen
 
- SanThe -

- SanThe -

20/04/2008 03:02:00
Quote Anchor link
Deze werkt bij mij.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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?

?>
 
Erik van Maanen

Erik van Maanen

20/04/2008 15:08:00
Quote Anchor link
Dat geeft bij mij dit:
Hu¡llu², hou© gu¤u¡t u­u«?

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?
 

20/04/2008 16:04:00
Quote Anchor link
Ik weet niet waarvoor je het wilt, maar kan je niet gewoon gebruik maken van htmlentities?
 
Erik van Maanen

Erik van Maanen

20/04/2008 16:28:00
Quote Anchor link
Misschien wel, maar daar gaat het me niet om. Ik moet dit script toch op de server van die vriend draaien (mijn pc staat niet dag en nacht aan), dus werken doet het wel.

Ik ben inmiddels in de fase dat ik gewoon wil begrijpen wat er aan de hand is.... ik ben lerende vandaag :)
 
Marcel

Marcel

20/04/2008 17:35:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
    function rareTekensWeg ( $s )
    {

        $s = htmlentities ( $s , ENT_QUOTES , 'utf-8' );
        return preg_replace ( '#&(.).*?;#' , '\\1' , $s );
    }

?>
Die heb ik net gemaakt ^_^

htmlentities() maakt van é &eacute; en van á &aacute;. 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
 
- -

- -

20/04/2008 18:30:00
Quote Anchor link
En wat dan met dingen als &copy;? Die zou dan ineens "c" worden. En al die andere HTML entities...
 
Marcel

Marcel

20/04/2008 18:56:00
Quote Anchor link
Welke andere?
 

20/04/2008 19:14:00
Quote Anchor link
Marcel schreef op 20.04.2008 18:56:
Welke andere?

Nou, wat denk je van deze?
 
Mark L

Mark L

20/04/2008 19:39:00
Quote Anchor link
Ik vind Marcel's idee niet eens zo gek.. (ik dacht er namelijk ook meteen aan)..
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 '&grave;' heet. Er staat namelijk geen letter tussen de & en de g.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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);
?>


Edit:
'circ', 'tilde', 'ring' toegevoegd
Gewijzigd op 01/01/1970 01:00:00 door Mark L
 
Marcel

Marcel

20/04/2008 22:05:00
Quote Anchor link
En wat wil je met andere rare tekens?

Voorbeeld: ¬&#730;©®œ&#8721;£€ºª•¶§&#8734;µ&#8776;&#937;&#728;¯

Moeten daar dan htmlentities van gemaakt worden? Of wil je die gewoon in de oorspronkelijke staat houden?
 
Marcel

Marcel

21/04/2008 16:24:00
Quote Anchor link
bump
Edit:
ik had de vorige post iets langer geleden in mijn hoofd zitten, scuzi
Gewijzigd op 01/01/1970 01:00:00 door Marcel
 
Pepijn de vos

pepijn de vos

28/04/2008 21:14:00
Quote Anchor link
hoe zorg ik er voor dat alles wat niet op array('acute', 'grave', 'uml', 'circ', 'tilde', 'ring'); eindig word vernietigd?

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.
 
Leon Kunst

Leon Kunst

28/04/2008 21:41:00
Quote Anchor link
wrm wil je het omzetten?
met een goede charset is't ook gefixt toch? UTF 8 voldoet prima
 
Pepijn de vos

pepijn de vos

28/04/2008 22:11:00
Quote Anchor link
wou je gewoon & en ë er in zetten inplaats van &amp; en &euml; ?
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...
 
Mark L

Mark L

29/04/2008 00:13:00
Quote Anchor link
Als ë, à, õ enzo ook niet mogen, dan kun je dit gebruiken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
preg_replace("#&(.).*?;#", "", $str);
?>


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.
Gewijzigd op 01/01/1970 01:00:00 door Mark L
 

Pagina: 1 2 volgende »



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.