За последние 24 часа нас посетили 16655 программистов и 1681 робот. Сейчас ищут 839 программистов ...

Как убрать симболы из названия?

Тема в разделе "Прочие вопросы по PHP", создана пользователем job3507, 18 май 2014.

  1. job3507

    job3507 Новичок

    С нами с:
    31 дек 2013
    Сообщения:
    16
    Симпатии:
    0
    Столкнулся с такой вот проблемой не знаю как удалить символы (точки, запятые и прочее) из названий файлов.
    Например: есть файл с названием "3.14 Имя файла.txt", на выходе надо получить название в транслите, то есть "imja_fayla.txt". Как перевести в транслит я разобрался, а вот как удалить лишнее не знаю....

    Вот сам код обработчика
    Код (Text):
    1. <?php
    2.  
    3. $fname = $_FILES['load']['name'];
    4. $tmp = $_FILES['load']['tmp_name'];
    5.  
    6. function translitLT($fname) {
    7.     $amasiv =  array(
    8.       "А" => "A","а" => "a",
    9.       "Б" => "B","б" => "b",
    10.       "В" => "V","в" => "v",
    11.       "Г" => "G","г" => "g",
    12.       "Д" => "D","д" => "d",
    13.       "Е" => "E","е" => "e",
    14.       "Ё" => "JO","ё" => "jo",
    15.       "Ж" => "ZH","ж" => "zh",
    16.       "З" => "Z","з" => "z",
    17.       "И" => "I","и" => "i",
    18.       "К" => "K","к" => "k",
    19.       "Л" => "L","л" => "l",
    20.       "М" => "M","м" => "m",
    21.       "Н" => "N","н" => "n",
    22.       "О" => "O","о" => "o",
    23.       "П" => "P","п" => "p",
    24.       "Р" => "R","р" => "r",
    25.       "С" => "S","с" => "s",
    26.       "Т" => "T","т" => "t",
    27.       "У" => "U","у" => "u",
    28.       "Ф" => "F","ф" => "f",
    29.       "Х" => "H","х" => "h",
    30.       "Ц" => "C","ц" => "c",
    31.       "Ч" => "CH","ч" => "ch",
    32.       "Ш" => "SH","ш" => "sh",
    33.       "Щ" => "SHH","щ" => "shh",
    34.       "Ъ" => "#","ъ" => "#",
    35.       "Ы" => "Y","ы" => "y",
    36.       "Ь" => "`","ь" => "`",
    37.       "Э" => "JE","э" => "je",
    38.       "Ю" => "JU","ю" => "ju",
    39.       "Я" => "JA","я" => "ja",
    40.       " " => "_", "0" => "",
    41.       "2" => "","3" => "",
    42.       "4" => "","5" => "",
    43.       "6" => "","7" => "",
    44.       "8" => "","9" => ""
    45.     );
    46.     return strtr($fname, $amasiv);
    47. }
    48.  
    49. $fname = translitLT($fname);
    50.  
    51. @mkdir("upload", 0777);
    52.  
    53. $copy = copy ($tmp, "upload/".  basename($fname));
    54.  
    55. if($copy){
    56.     echo 'Все прошло успешно <br>';
    57.     echo "<a href=\"/upload/$fname\">Скачать</a> | <a href=\"/\">Назад</a>";
    58. }
    59.  else {
    60.     echo 'Возникла проблема при загрузке<br>';
    61.     echo "<a href=\"/\">Назад</a>";
    62. }
    При добавлении в массив нового элемента "."=>"", получаю название в виде "imja_faylatxt"
     
  2. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Код (PHP):
    1. <?php
    2. echo preg_replace("/[^a-zA-z]/", "", "121hello12sdfs-&&world!");
    3.  
    Логика думаю ясна.
     
  3. BaranPHP

    BaranPHP Новичок

    С нами с:
    24 янв 2014
    Сообщения:
    356
    Симпатии:
    0
    Код (PHP):
    1. $filename ="3.14 Имя файла.txt";
    2. $filename = substr($filename, 0,-4);
    3. твоя_функция($filename);
    4. $filename = $filename . ".txt"; 
     
  4. job3507

    job3507 Новичок

    С нами с:
    31 дек 2013
    Сообщения:
    16
    Симпатии:
    0
    Спасибо, я так понимаю, что надо указывать только то что надо оставить?
     
  5. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Да. В остальном разберешься?
     
  6. job3507

    job3507 Новичок

    С нами с:
    31 дек 2013
    Сообщения:
    16
    Симпатии:
    0
    Да, спасибо огромное