PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |

15-08-2017, 11:23
|
bofan
Registrierter Benutzer
|
|
Registriert seit: Aug 2005
Ort: Berlin / Germany
Beiträge: 190
|
|
String Formatierung
Hallo!
Ich habe folgendes Anliegen,
ich möchte einen String formatieren.
Z.B. MUSTERMANN-MUSTER
Daraus soll Mustermann-Muster werden.
Bisher meine Funktion:
PHP-Code:
function nachname_format($text_string)
{
$text_string = trim($text_string);
$text_string = preg_replace('# +#',' ',$text_string);
$text_string_split = preg_split("/[\s]+/", $text_string);
$text_string_neu = "";
foreach($text_string_split AS $key => $val)
{
$val = utf8_decode($val);
$string_lng = mb_strlen($val, 'UTF-8');
for($i=0; $i<$string_lng; $i++)
{
$val_sting = substr($val, $i, 1);
$val_sting = utf8_encode($val_sting);
if($i >= 1 AND ctype_upper($val_sting))
{
$val_sting = strtolower($val_sting);
}
$text_string_neu .= $val_sting;
if(($i+1) == $string_lng)
{$text_string_neu .= " "; }
}
}
$text_string_neu = trim($text_string_neu);
return $text_string_neu;
}
Wie kann ich das realisieren?
Danke!
__________________
Beachte: Dumm ist, wer Dummes tut.
|

15-08-2017, 11:55
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.780
|
|
PHP-Code:
$text = 'MUSTERMANN-MUSTER';
$newText = preg_replace_callback( '/(*UTF8)(?<=\\P{L}|^)\\p{L}/', function ($match) { return mb_strtoupper($match[0], 'UTF-8'); }, mb_strtolower($text, 'UTF-8') );
echo $newText; // Mustermann-Muster
Geändert von h3ll (15-08-2017 um 11:59 Uhr)
|

15-08-2017, 12:11
|
bofan
Registrierter Benutzer
|
|
Registriert seit: Aug 2005
Ort: Berlin / Germany
Beiträge: 190
|
|
WOW! Super! und so schnell! Danke!
Klappt.
__________________
Beachte: Dumm ist, wer Dummes tut.
|

16-08-2017, 09:32
|
SysOp
Registrierter Benutzer
|
|
Registriert seit: May 2005
Beiträge: 81
|
|
PHP-Code:
$str = 'MUSTERMANN-MUSTER'; echo $str."<br>"; $str = ucwords(strtolower($str) , '-'); echo $str."<br>";
|

18-08-2017, 09:18
|
bofan
Registrierter Benutzer
|
|
Registriert seit: Aug 2005
Ort: Berlin / Germany
Beiträge: 190
|
|
Hallo!
Danke h3ll, das Script klappt gut.
Ein Kollge sagte nun, was passiert denn bei dem Namen MacDonald
Probiert und des wurde, klar logisch, Macdonald.
Kann ich das irgendwie verhindern?
Mit einer schleife die den vorherigen und den nachfolgdenen Buchstaben prüft, ob klein, dann darf auch ein einzelner Groß bleiben?
__________________
Beachte: Dumm ist, wer Dummes tut.
|

19-08-2017, 14:36
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.780
|
|
Vielleicht solltest du die Anforderungen erst mal klar definieren, bevor man jetzt jedesmal den Code über den Haufen wirft und neu schreibt.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Ähnliche Themen
|
Thema |
Autor |
Forum |
Antworten |
Letzter Beitrag |
[CSS] li formatierung
|
mcmurphy |
HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS |
5 |
22-10-2007 12:22 |
Email-Formatierung
|
strauberry |
PHP Developer Forum |
10 |
09-07-2007 14:49 |
formatierung
|
jhaustein |
HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS |
8 |
27-07-2005 12:59 |
Formatierung
|
hieger |
PHP Developer Forum |
2 |
31-01-2005 22:07 |
Formatierung
|
mkoegler |
PHP Developer Forum |
5 |
31-10-2002 14:22 |
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|