Seite 1 von 1
String auffüllen / jedes Zeichen berücksichtigen
Verfasst: 17.08.2006 17:15
von easygo
Hi! Wer kennt eine php-Funktion, mit der sich ohne großen Aufwand "hinter jedes Zeichen"
in einer "Zeichenkette ohne Sonderzeichen" ein weiteres Zeichen einfügen lässt?
Perl-Suchmuster: m /w\(1)/
So genannte Grenzen hat die Zeichenkette leider keine.
Danke für jeden brauchbaren Hinweis. easy
Verfasst: 17.08.2006 17:26
von mad-manne
Hi ...
keine Ahnung, ob es da eine native Funktion für gibt
Hab da mal eben was auf die Schnelle zusammengezimmert.
Code: Alles auswählen
<?php
$test = 'EIN TEST';
print addChar($test, '*');
function addChar($your_string, $add_char)
{
$new_string = '';
for ( $i = 0; $i < strlen($your_string); $i++ )
{
$new_string.= $your_string[$i] . $add_char;
}// end FOR
return $new_string;
}
?>
Hilft das ?
Gruss,
Manne.
Verfasst: 17.08.2006 17:46
von easygo
mad-manne hat geschrieben:keine Ahnung, ob es da eine native Funktion für gibt
Beruhigt mich irgendwie

dachte schon, ich wär einfach zu blöd zum suchen..
mad-manne hat geschrieben:Hab da mal eben was auf die Schnelle zusammengezimmert.
Schnell und gut! Tut genau das, was es soll! Thanx

easy
Verfasst: 17.08.2006 20:40
von Banger
Servus,
Manne, Deine Lösung ist leider
IMHO unsauber und zudem falsch; siehe
http://de.php.net/String unter "Zugriff und Modifikation von Zeichen in Strings":
Innerhalb von Zeichenketten (strings) kann durch die Angabe des nullbasierten Offsets in geschweiften Klammern nach dem String auf das gewünschte Zeichen zugegriffen oder dieses modifiziert werden.
Anmerkung: Für Abwärtskompatibilität können Sie für den selben Zweck immer noch die Array-Klammern verwenden. Diese Syntax wird jedoch seit PHP 4 missbilligt.
Also wenn schon, dann wären geschweifte Klammern angebracht, aber auch das halte ich für keine elegante Lösung - das ist allerdings nur
meine Einstellung, die ich keinem aufdrängen will.
Bequemer geht's mit
preg_replace() in einem Einzeiler, der zudem den Vorteil hat, dass nur Zeichen der Zeichenklasse \w mit einem Punkt versehen werden:
Code: Alles auswählen
<?php
$str = 'lalelufump';
echo preg_replace('/(\w)/', '\1.', $str);
?>
=> l.a.l.e.l.u.f.u.m.p.
Code: Alles auswählen
<?php
$str = 'lalelu lalalu lalala';
echo preg_replace('/(\w)/', '\1.', $str);
?>
=> l.a.l.e.l.u. l.a.l.a.l.u. l.a.l.a.l.a.