У меня есть сценарий, который принимает аргумент g
, После этого ожидается относительное имя файла.
Итак, у меня есть https://server.com/index.php?g=test/test.php. Я знаю, что вы говорите, но это не касается безопасности.
Теперь я хочу использовать этот скрипт изнутри сервера. Я немец, поэтому мои файлы иногда имеют умлауты.
Когда используешь shell_exec('wget --user username --password pw -qO- --no-check-certificate https://server.com/index.php?g=test/test%F6.jpg &> /dev/null');
скрипт правильно получает имя файла.
Но при попытке запустить его изнутри, т.е.
$_GET['g'] = 'test/test%F6.jpg';
include('index.php');
или же
$_GET['g'] = 'test/testö.jpg';
include('index.php');
или же
$_GET['g'] = utf8_decode('test/testö.jpg');
include('index.php');
или же
$_GET['g'] = utf8_encode('test/testö.jpg');
include('index.php');
он никогда не находит файл.
Как мне кодировать / декодировать строку $ _GET [‘g’], чтобы она успешно передавала умляуты?
РЕДАКТИРОВАТЬ: я нашел, что это работает, изменив кодировку моего тестового файла на ANSI. В основном скрипте это работает. Так что это было просто форматирование самого файла скрипта в ansi.
Задача ещё не решена.
Других решений пока нет …