Goedemiddag allen,

Ik wil graag alle beginletters in een variabele laten omzetten in hoofdletters.

Bijvoorbeeld:
'prins bernhardstraat' moet worden 'Prins Bernhardstraat'

Nu gebruik al wel de functie:
$adres = ucfirst(strtolower($_POST['adres']));

Maar deze functie doet alleen het eerste woord in de variabel dus geeft terug:
'Prins bernhardstraat'

Wie kan mij op weg helpen?
Er bestaat wel een functie om ALLE woorden een hoofdletter te geven.
Dus prins nassaustraat wordt dan Prins Nassaustraat.
Maar een naam als laan van oranje wordt dan Laan Van Oranje.
En dat is ook niet goed.

Mogelijke opties:
- niets doen, gebruiker voert het goed in (immers: eigennamen met hoofdletters; iedereen weet dat) >> Laan van Oranje
- alles hoofdletters, dan heb je nergens last van. TNT etc doen dat ook vaak zo. >> LAAN VAN ORANJE
- ucfirst(), en genoegen nemen met wat fouten >> Laan van oranje
- ucwords(), elk woord hoofdletter, maar Laan Van Oranje

Kortom: het gaat niet helemaal goed werken. Nooit.
Tenzij je geen straatnaam laat invoeren, maar enkel postcode en huisnummer.

Toevoeging op 03/10/2015 14:34:48:

Er bestaat wel een functie om ALLE woorden een hoofdletter te geven.
Dus prins nassaustraat wordt dan Prins Nassaustraat.
Maar een naam als laan van oranje wordt dan Laan Van Oranje.
En dat is ook niet goed.

Mogelijke opties:
- niets doen, gebruiker voert het goed in (immers: eigennamen met hoofdletters; iedereen weet dat) >> Laan van Oranje
- alles hoofdletters, dan heb je nergens last van. TNT etc doen dat ook vaak zo. >> LAAN VAN ORANJE
- ucfirst(), en genoegen nemen met wat fouten >> Laan van oranje
- ucwords(), elk woord hoofdletter, maar Laan Van Oranje

Kortom: het gaat niet helemaal goed werken. Nooit.
Tenzij je geen straatnaam laat invoeren, maar enkel postcode en huisnummer.
Ik laat ook een postcode en huisnummer invoeren. Vervolgens heb ik een postcode avi die dan de straatnaam en plaatsnaam erbij zoekt en automatisch aanvuld. Het script echo-t het ook goed.

Bijvoorbeeld:
P.J. ter Beekstraat

Misschien moet ik het dan zoeken in de wijze van opslaan in de mysql database?

>> Vervolgens heb ik een postcode avi API die dan de straatnaam en plaatsnaam erbij zoekt en automatisch aanvuld aanvult.

Dan is je probleem toch al opgelost? De gebruiker voert alleen postcode en huisnummer in, en de straatnaam komt vervolgens uit de API.
Het probleem is ook wel opgelost, alleen nu als een klant zijn adres aanpast via de postcode api en deze vervolgens ge-update word naar mysql, dan is alleen de eerste letter nog een Hoofdletter:
P.j. ter beekstraat

In de variabele en echo staat het ook wel goed. Alleen bij een query update slaat ie het anders op in mysql. Er gaat dus ergens iet mis met opslaan, alleen kan ik niks geks vinden. ik wil de gegevens immers opslaan zoals deze worden aangeboden vanuit de api. de kolom is trouwens van het type VARCHAR
Waarom moet iemand een adres kunnen updaten?
leden met een account kunnen dan zelf bijvoorbeeld een verhuizing doorgeven en/of wijzigen.
Dan laat je ze toch weer opnieuw een postcode en huisnummer invoeren (en dus niet het adres).
Dat gebeurd ook. de api geeft dus het correcte en goed geschreven adres. Alleen bij het updaten in mysql worden de Hoofdletters omgezet in kleine letters, behalve de eerste van het eerste woord terwijl ik eigenlijk zou willen dat mysql update zoals de variabele daadwerkelijk zijn en ge-POST worden
Dat doe je zelf door dit te doen:

$adres = ucfirst(strtolower($_POST['adres']));

Try this:

$adres = $_POST['adres'];
Inderdaad!.Ik had verderop in het script nog staan:

if ($Adres_Wijziging == "new")
{
$Adres=trim($adres);
$Adres=ucfirst(strtolower(strip_tags($Adres)));

Logisch dus dat dit fout ging... haha

Hartelijk dank voor het wakker schudden! het werkt nu simpel en goed!

Reageren