简体   繁体   English

在PHP中创建非英语目录

[英]Create non English directories in PHP

I want to be able to create folders for the registered users under their names. 我希望能够以其名称为注册用户创建文件夹。 Their info is stored in my db in Cyrillic characters and pulled from their when creating the folder. 他们的信息以西里尔字符存储在我的数据库中,并在创建文件夹时从他们的信息中删除。 The thing is if the info is in English everything is ok, if in Cyrillic I get something like Кульчманова. 问题是,如果信息是英文的,一切都还可以,如果在西里尔语中,我会得到像Кульчманова这样的东西。 Everything is set to utf-8. 一切都设置为utf-8。 If I set folder name to ie 'фыва' it creates it no problem. 如果我将文件夹名称设置为'фыва',它就没有问题。

        $this->load->model('users_model');
    $i=$this->session->userdata('uid');
    $new_name=$this->input->post('doc_name');
    $folder=$this->users_model->getFullName($i); //$folder='фыва' works fine

    if(!is_dir("./uploads/".$folder)){
        mkdir("./uploads/".$folder , 0777);
    }
    $config['file_name'] = $new_name;
    $config['upload_path'] = './uploads/'.$folder.'/';

Will appreciate any help 将不胜感激任何帮助

I strongly recommend you to use only plain ASCII characters in directory names on servers, or even better: only numbers, lowercase letters, and underscore. 强烈建议您在服务器上的目录名中使用纯ASCII字符,甚至更好:仅限数字,小写字母和下划线。 Using special characters quite always brings trouble, and seems like you are already having some. 使用特殊字符总是带来麻烦,看起来你已经有了一些。

I suggest you to name the directory as the numeric user ID (they surely have one), padding with zeroes if you find it looks better (all the names have equal length). 我建议你将目录命名为数字用户ID(它们肯定有一个),如果你发现它看起来更好(所有名称都有相同的长度),用零填充。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM