Проблем с проверяване на папка, ако е на кирилица?

Ticketa

Registered
Давам примерен код, с които ще проверим дали дадена директория е директория.

PHP:
$dir = (isSet($_REQUEST['dir'])) ? addslashes(htmlspecialchars($_REQUEST['dir'])) : ".";
if(is_dir($dir)) { //проверяваме дали това е директория
echo "ОК";
} else {
echo "Invalid dir $dir";
}

Ако имаме връзка: test.php?dir=/home/user/public_html/Нова папка

ми връща грешка, че не е валидна папката:

Invalid dir /home/user/public_html/Нова папка

Но ако си е на латиница.. няма проблем. Идея как може да се оправи?
 
Код:
$dir = (isSet($_REQUEST['dir'])) ? addslashes(htmlspecialchars($_REQUEST['dir'])) : ".";
$dir = iconv("Windows-1251", "UTF-8//TRANSLIT", $dir);
if(is_dir($dir)) { //проверяваме дали това е директория
echo "ОК";
} else {
echo "Invalid dir $dir";
}

Би трябвало да работи така :)
 
big_boy каза:
Код:
$dir = (isSet($_REQUEST['dir'])) ? addslashes(htmlspecialchars($_REQUEST['dir'])) : ".";
$dir = iconv("Windows-1251", "UTF-8//TRANSLIT", $dir);
if(is_dir($dir)) { //проверяваме дали това е директория
echo "ОК";
} else {
echo "Invalid dir $dir";
}

Би трябвало да работи така :)


Същата работа. Сега забелязах и че ако имаме папка: Neshto & Neshto

Пак не я отваря чупи се кода и вместо да вземе Neshto & Neshto взима само първото Neshto
 
Грешката е моя при гет ти е нужно urldecode, а не iconv
Код:
<?php
$dir = (isSet($_REQUEST['dir'])) ? addslashes(htmlspecialchars($_REQUEST['dir'])) : "./";
$dir = urldecode($dir);
if(is_dir($dir)) { //проверяваме дали това е директория
echo "ОК";
} else {
echo "Invalid dir $dir";
}
?>

ПС: За 'Neshto & Neshto' проблема ти е във следния символ '&' който разделя гет заявките
 

Back
Горе