I am trying to change this string
Test - GGA ökologie Geschäftsführer.PDF
into this:
test_-_gga_oekologie_geschaaeftsfuuehrer.pdf
This is what I have tried:
$characters = array('ä', 'ö', 'ü', 'Ä', 'Ö', 'Ü', ' ');
$converted_characters = array('ae', 'oe', 'ue', 'AE', 'OE', 'UE', '_');
$string = 'Test - GGA ökologie Geschäftsführer.PDF';
echo strtolower(str_replace($characters, $converted_characters , $string));
The code above returns: test_-_gga_ökologie_geschäftsführer.pdf
As you see the string still contains the characters ö and ä.
What is wrong with my code?
They are not the same unicode character. If you copy and paste the ö character from your string and paste it in the array it works as intended.
With regex
$characters = array('/ä/u', '/ö/u', '/ü/u', '/Ä/u', '/Ö/u', '/Ü/u', '/ /' );
$converted_characters = array('ae', 'oe', 'ue', 'AE', 'OE', 'UE', '_');
$string = 'Test - GGA ökologie Geschäftsführer.PDF';
echo strtolower(preg_replace($characters, $converted_characters , $string));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With