За последние 24 часа нас посетили 15436 программистов и 1639 роботов. Сейчас ищут 896 программистов ...

Ссылка на файл содержащий в названии пробел или кирилицу.

Тема в разделе "PHP для новичков", создана пользователем NoobPhp, 12 июл 2008.

  1. NoobPhp

    NoobPhp Активный пользователь

    С нами с:
    8 июл 2008
    Сообщения:
    15
    Симпатии:
    0
    Есть такой скрипт, который выводит последовательно список ссылок на скачивания файлов из каталога. Все бы хорошо, но если в названии файла присутствуют пробелы или русские буквы(например 'new file.txt'), то ссылка получается вида 'http://localhost/files/user/new' а должна быть 'http://localhost/files/user/new%20file.txt'. Собственно вопрос в том как заменить пробелы в ссылках на %20?

    PHP:
    1.  
    2. <?php
    3. if ($handle = opendir('files/'.$dir)) {
    4.     while (false !== ($file = readdir($handle))) {
    5.         if ($file != "." && $file != "..") {
    6.             echo "<a href=http://localhost/files/$dir/$file>$file</a><br>";
    7.         }
    8.     }
    9.     closedir($handle);
    10. }
    11. ?>
    12.  
     
  2. блудный сын

    блудный сын Активный пользователь

    С нами с:
    18 июн 2008
    Сообщения:
    632
    Симпатии:
    0
    А ты попробуй ссылку формировать по кусочкам:
    PHP:
    1. echo "<a href=http://localhost/files/".$dir.$file.">$file</a><br>";
    должно получиться
     
  3. NoobPhp

    NoobPhp Активный пользователь

    С нами с:
    8 июл 2008
    Сообщения:
    15
    Симпатии:
    0
    блудный сын
    После $dir еще надо слэш вставить. Но какой толк от ссылки на русском? Броузер этого не понимает. И от пробелов в именах файлов тоже не спасает =(
     
  4. блудный сын

    блудный сын Активный пользователь

    С нами с:
    18 июн 2008
    Сообщения:
    632
    Симпатии:
    0
    Я так недавно делал и у меня браузер прекрасно все понимал и пробел заменялся на %20. Правда если буквы русские то ссылка выглядит не очень красивой, но работать - работает.

    Хотя может это у меня прокатило, потому что делал под Виндой...
     
  5. eduha

    eduha Активный пользователь

    С нами с:
    8 ноя 2006
    Сообщения:
    278
    Симпатии:
    0
    Адрес:
    Караганда
    http://php.net/urlencode

    А вообще, параметры тегов надо заворачивать в кавычки или апострофы.