php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 31.05.2005, 20:58  
Gast
 
Beiträge: n/a
Standard Wörter mit mehreren Großbuchstaben klein machen, dann...

Hallo,

ich möchte folgendes machen.
Meine Kenntnisse reichen dafür leider nicht...

$satz = "Das ist das HAUS von Nikolaus";

Die Variable $satz soll ausgelesen und überprüft werden, ob es darin eine Zeichenfolge mit mehreren Großbuchstaben gibt. In diesem Fall "HAUS".

"HAUS" aus $satz soll dann zu Kleinbuchstaben konvertiert werden - nicht die ganze Variable, sondern nur dieser Teil.

Dann soll der erste Buchstabe von "haus" wieder groß geschrieben werden, also "Haus".

Einer eine Idee...?
Vielen Dank im Voraus!

baldi
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 31.05.2005, 21:24  
Gast
 
Beiträge: n/a
Standard

Sowas?
PHP-Code:
<?php
$string 
"Das ist ein TEST";
$string preg_replace_callback("/([A-Z]+?)/sm""make_cap"$string);

function 
make_cap($args)
{
    
$text strtolower($args[1]);
    
$text strtoupper($text[0]).implode(""array_splice($text1));
    return 
$text;
}
?>
Hab das jetzt allerdings nicht getestet, sollte aber das tun, was du willst.

//Edit:
Das sollte auch gehen
PHP-Code:
<?php
$string 
"Das ist ein TEST";
$string preg_replace_callback("/([A-Z]+?)/sm""make_cap"$string);

function 
make_cap($args)
{
    return 
ucwords($args[1]);
}
?>
 
Alt 31.05.2005, 21:55  
Gast
 
Beiträge: n/a
Standard

Zitat:
/([A-Z]+?)/sm
Bin nicht ganz sicher, aber würde er hier nicht auch das Wort "Das" finden ?

Wie wärs mit:

Code:
 '#([A-Z]{2,})#'
... also Wörter mit mind. 2 Grossbuchstaben und beliebig oft.
 
Alt 31.05.2005, 22:14  
Erfahrener Benutzer
 
Registriert seit: 19.06.2004
Beiträge: 665
konsti
Standard

@blackbirdXXX das geht sicher nicht, da da ein "e"-Modifier fehlt. Ich würde es so machen:
PHP-Code:
<?php
$str 
preg_replace_callback('/([A-Z]{2,})/sm''ucfirst'$str);
?>
__________________
http://www.silvercoding.de
------------
ElePHPant Edit
konsti ist offline  
Alt 31.05.2005, 22:38  
Gast
 
Beiträge: n/a
Standard

Dann müsste aber $str erst in Kleinbuchstaben umgewandelt werden und dann erst ucfirst anwenden.
Sonst hat ucfirst ja keine Bedeutung.

Oder irre ich mich ?
 
Alt 01.06.2005, 00:01  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von CIX88
Oder irre ich mich ?
Nein.

http://test.php-help.info/ucfirst-1/
 
Alt 01.06.2005, 00:33  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Zitat:
Zitat von konsti
"e"-Modifier fehlt
Bei preg_replace_callback ?
__________________
mod = master of disaster
Waq ist offline  
Alt 01.06.2005, 13:58  
Erfahrener Benutzer
 
Registriert seit: 19.06.2004
Beiträge: 665
konsti
Standard

ja natürlich! denn mit preg_replace_callback habe ich keinen php-code innerhab leines strings. da man aber sowieso zwi funktionen nachenander anwenden muss, ist es wohl doch über den e-Modifier besser...
PHP-Code:
<?php
$str 
preg_replace('/([A-Z]{2,})/sme''ucfirst(lowercase("\\1"))'$str); 
?>
__________________
http://www.silvercoding.de
------------
ElePHPant Edit
konsti ist offline  
Alt 01.06.2005, 14:30  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von konsti
... ist es wohl doch über den e-Modifier besser...
callback ist universeller.
 
Alt 01.06.2005, 18:18  
Gast
 
Beiträge: n/a
Standard

ich habe für mein script folgendes angewandt und es ist klappt:

PHP-Code:
<?php
[...]
$decodedTitle preg_replace('/([A-Z]{2,})/sme''ucfirst(strtolower("\\1"))'$decodedTitle);?>
Vielen vielen Dank!

Allerdings werden Umlaute einfach ausgelassen... was ist zu machen?
htmlentities() bringt nichts.

Danke im Voraus

baldi
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Verständnisfrage: Aufruf von mehreren Usern vegeta PHP Tipps 2006 2 02.06.2006 15:39
[Erledigt] MySQL Abfrage aus mehreren Tabellen Datenbanken 1 12.04.2005 17:53

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
großgeschriebenes klein machen, php ucfirst umlaute, php großbuchstaben finden, ucfirst umlaute, großbuchstaben klein machen, großbuchstaben klein, preg_replace großbuchstaben, php wort klein schreiben, php wort klein, preg_replace in großbuchstaben wandeln, php wort in kleinbuchstaben, grossbuchstaben php preg, php großbuchstaben erkennen, wörter klein machen, preg replace großbuchstaben, preg_replace großbuchstaben ändern, php klein zu großbuchstaben machen, preg_replace kleinbuchstaben großbuchstaben, preg_replace nur großbuchstaben, preg_replace ucfirst

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:57 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.