• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Alle Zeichen außer space durch * ersetzen

aJunkie

Mitglied
Halli Hallo,

Ich habe einige Datensätze, die wie folgt aussehen können: das ist ein bespiel%% und der satz geht weiter.
Es sind also kleine Sätze, wo mittendrin zwei Prozentzeichen drin sind.

Diese zwei Prozentzeichen möchte ich mit so vielen Sternchen (*) ersetzen, wie ein anderes Feld Ziffern besitzt.

Erster Ansatz:
PHP:
    function voc($voc)
    {    
        $re = '';
        for($i = 0; $i < strlen($voc); $i++):
            $re .= '*';
        endfor;
        return $re;
    }

str_replace('%%',voc($row->englisch),$row->text)

Dieses funktioniert auch. Wenn das englische Wort 'sunshine' 8 Zeichen besitzt, wird dieses Wort eben durch 8 Sternchen ersetzt.
Es gibt aber im Feld "englisch" auch Vokabeln, die aus mehr als einem Wort bestehen. Zum Beispiel: department store -> 16 Sternchen.

Ich würde gerne, dass alle Ziffern durch Sternchen ersetzt werden, Leerzeichen aber Leerzeichen bleiben sollen.

Habt ihr eine Idee, wie ich das am elegantesten lösen könnte?
 
Hallo,

du kannst den String mit str_split() in ein Array zerlegen und dann die einzelnen Buchstaben prüfen.

Etwa
PHP:
    function voc($voc)
    {    
        $re = '';
        $letters = str_split($voc);
        foreach($letters as $letter):
            if($letter !== ' ')
                $re .= '*';
        endfor;
        return $re;
    }
 
Zurück
Oben