<?php
// $base = 'test image with Ümlaäute und spaäe.jpg';
$nameEncodedFromGWT = 'test%20image%20with%20U%CC%88mlaa%CC%88ute%20und%20spaa%CC%88e.jpg';
$nameEncodedFromPHP = 'test%20image%20with%20%C3%9Cmla%C3%A4ute%20und%20spa%C3%A4e.jpg'; // this is encoded with urlencode() / rawurlencode()
// using rawurldecode
$nameDecodedFromGWTRaw = rawurldecode($nameEncodedFromGWT);
$nameDecodedFromPHPRaw = rawurldecode($nameEncodedFromPHP);
// using urldecode
$nameDecodedFromGWTSimple = urldecode($nameEncodedFromGWT);
$nameDecodedFromPHPSimple = urldecode($nameEncodedFromPHP);
echo 'Name from GWT: ' . $nameEncodedFromGWT . PHP_EOL .
'Decoded using rawurldecode(): ' . $nameDecodedFromGWTRaw . PHP_EOL .
'Decoded using urldecode(): ' . $nameDecodedFromGWTSimple . PHP_EOL .
'Cleaned name for rawurldecode(): ' . cleanImageName($nameDecodedFromGWTRaw) . PHP_EOL .
'Cleaned name for urldecode(): ' . cleanImageName($nameDecodedFromGWTSimple);
echo PHP_EOL . '===============================================' . PHP_EOL;
echo 'Name from PHP: ' . $nameEncodedFromPHP . PHP_EOL .
'Decoded using rawurldecode(): ' . $nameDecodedFromPHPRaw . PHP_EOL .
'Decoded using urldecode(): ' . $nameDecodedFromPHPSimple . PHP_EOL .
'Cleaned name for rawurldecode(): ' . cleanImageName($nameDecodedFromPHPRaw) . PHP_EOL .
'Cleaned name for urldecode(): ' . cleanImageName($nameDecodedFromPHPSimple);
/**
* Uses preg_replace to replace german umlauts
*/
function cleanImageName($name)
{
$clean = preg_replace(
array(
'/\|/',
'/[äÄ]/u',
'/[öÖ]/u',
'/[üÜ]/u',
'/ß/',
'/([a-zA-Z0-9]+)/i',
'/ - /','/ /','/-/','/&/',
'/[á|à|À|Á]/u',
'/[é|è|É|È]/u',
'/[_\x7c-\xff\$\%\=\?\@\(\)§!\|`´\*#;,:\.<>\/"\'#\t\r\n]/'
),
array(
' ',
'ae',
'oe',
'ue',
'ss',
'$1',
' ',
' ',
' ',
'und',
'a',
'e',
' ',
),
$name);
return str_replace(' ', '-', $clean);
}
?>
preferences:
44.54 ms | 402 KiB | 5 Q