|
|
|
| Здравствуйте!
Файлы загружаются на сервер и в названии всех файлов пробелы заменяются на знак "_".
При удалении файлов с англоязычным названием - все проходит успешно.
При удалении файлов с русским названием - не совсем.
Например:
Имя файла "Методические.doc" удаляется успешно.
а файл с именем "Методические_указания.doc" не удаляется.
В чем может быть проблема?
удаление
unlink("./files/$id/$filename");
|
ошибка
A PHP Error was encountered
Severity: Warning
Message: unlink(./files/0006/Методих|zє9W) [function.unlink]: Invalid argument
Filename: controllers/file.php
Line Number: 24 | |
|
|
|
|
|
|
|
для: TOOX
(14.06.2011 в 16:52)
| | Не следует использовать русские имена файлов, даже если операционная система использует для хранения названий файлов UTF-8, и вы в свою очередь в скрипте также не используете UTF-8, в ядре PHP UTF-8 не поддерживается. Лучше все русские названия транслировать в английские. | |
|
|
|
|
|
|
|
для: cheops
(14.06.2011 в 18:26)
| | Спасибо, за ответ. Скажите, а в php есть стандартная функция трансляции? или нужно самому создавать?) | |
|
|
|
|
|
|
|
для: TOOX
(14.06.2011 в 18:31)
| | воть из ДЛЕ
function totranslit($var, $lower = true, $punkt = true) {
if ( is_array($var) ) return "";
$NpjLettersFrom = "абвгдезиклмнопрстуфці";
$NpjLettersTo = "abvgdeziklmnoprstufcyi";
$NpjBiLetters = array ("ы" => "yj", "й" => "j",
"ё" => "yo", "ж" => "zh", "х" => "x", "ч" => "ch",
"ш" => "sh", "щ" => "shh", "э" => "ye", "ю" => "yu",
"я" => "ya", "ъ" => "", "ь" => "", "ї" => "yi",
"є" => "ye" );
$NpjCaps = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЪЫЭЮЯЇЄІ";
$NpjSmall = "абвгдеёжзийклмнопрстуфхцчшщьъыэюяїєі";
$var = str_replace( ".php", "", $var );
$var = trim( strip_tags( $var ) );
$var = preg_replace( "/\s+/ms", "-", $var );
$var = strtr( $var, $NpjCaps, $NpjSmall );
$var = strtr( $var, $NpjLettersFrom, $NpjLettersTo );
$var = strtr( $var, $NpjBiLetters );
if ( $punkt ) $var = preg_replace( "/[^a-z0-9\_\-.]+/mi", "", $var );
else $var = preg_replace( "/[^a-z0-9\_\-]+/mi", "", $var );
$var = preg_replace( '#[\-]+#i', '-', $var );
if ( $lower ) $var = strtolower( $var );
//if( strlen( $var ) > 200 ) {
// $var = substr( $var, 0, 200 );
// if( ($temp_max = strrpos( $var, '-' )) ) $var = substr( $var, 0, $temp_max );
//}
return $var;
}
| можете от нее отталкиваться. | |
|
|
|
|
|
|
|
для: Добрый кот
(14.06.2011 в 19:28)
| | Еще раз спасибо! | |
|
|
|