Hi AllesMeins,
Hat irgendwer eine Idee wie sich soetwas realisieren lässt?
Eine fertige Funktion dafür kenne ich nicht - es wird aber mit den String-Funktionen lösbar sein. Ich habe mich gerade mal hingesetzt und ein kleines Script geschrieben, was die gewünschte Aufgabe löst:
<?php
// Konfiguration
$string = "Ein kleiner __und sinnloser__ Text mit Lore Ipsum";
$letters = 17;
// Ein paar Variablen zum Kontrollieren des Programmablaufes
$position = 0; # Aktuelle Position im String
$counter = 0; # Zähler, wie viele Buchstaben wir schon haben
$in_nocount = false; # Befinden wir uns innerhalb von __ ?
$new_string = ""; # Neuer String
$rest_string = ""; # Restlicher String
// Solange wir noch nicht genug Buchstaben haben
while($counter < $letters)
{
// Nächsten Buchstaben herrausschneiden
$char = substr($string, $position, 1);
// Sofern es den Anfang oder das Ende eines __ Bereiches darstellt
if($char == "_" AND substr($string, $position + 1, 1) == "_")
{
$new_string .= "__";
// Setze Kontrollvariable $in_nocount auf deren Gegenteil
$in_nocount = $in_nocount ? false : true;
// Und arbeite zwei Zeichen weiter im String
$position += 2;
}
// andernfalls, wenn wir irgendwo im Text sind
else
{
// Zeichen dem neuen String hinzufügen
$new_string .= $char;
// Wenn wir uns nicht in einem __ Bereich befinden, Counter
// hochzählen
if(!$in_nocount)
{
$counter ++;
}
// Position um eins erhönhen für nächsten Durchlauf
$position ++;
}
}
// Rest des Strings ins $rest_string schreiben
$rest_string = substr($string, $position);
// Ausgabe der Daten
echo "<pre>";
echo "Vorgabe: $string\n";
echo "Neuer String: $new_string\n";
echo "Rest String: $rest_string";
echo "</pre>";
?>
Soweit ich das bis jetzt getestet habe, funktioniert es einwandfrei.
MfG, Dennis.
--
Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
Die FlatBox 0.3 mit Dokumentation ist da!
Man sollte nie aufhören zu fragen (Albert Einstein)
... aber natürlich erst, nachdem man sämliche FAQ's und Archive durchgelesen hat :-P
Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
Die FlatBox 0.3 mit Dokumentation ist da!
Man sollte nie aufhören zu fragen (Albert Einstein)
... aber natürlich erst, nachdem man sämliche FAQ's und Archive durchgelesen hat :-P