Выручайте - тону....

123
A4
На сайте с 05.01.2012
Offline
55
#11
bndr:
Это самый оптимальный вариант. Все переделайте в транслит и не будет проблем.

да, я сам так хотел, честно. но беспокоюсь что при расшифровке транслита будут бяки вида ja=йа(надо я)

---------- Добавлено 11.06.2012 в 21:42 ----------

Liave:
и в результате что вы будете делать ? ) я что то не вкурю с каким советом вы согласились )))

Исчу функцию пхп по переименовыванию файлофф. то есть уже нашел - rename. теперь кой чего подправлю, авось сгодится)

---------- Добавлено 11.06.2012 в 22:25 ----------

bndr:
Как это упрощает работу, если у вас УЖЕ проблемы? В место того чтобы сделать все с нормальной базой данных(Куда можно добавить и id, и название, и перевод, и текст и т.д) вы решили все сделать через жопу

Дошло что вы имели в виду, медленно конечно...)) Нет, вы ошибаетесь, проект сделан не на файлах, есть скрипт, который полностью сканирует папку/audio/ и заносит названия всех треков, альбомов и исполнителей в базу данных. Например таблица songs имеет структуру вида: id songname url hits album author

где хитс - число прослушиваний... Урл, при размещении на сайте берется из бд простеньким запросом. После чего отправляется аяксом на страницу. Примерно такой там код:

echo "<li><a href='".$row['url']."'>".$row['title']."</a><li>";

Тут косяков ясное дело вообще нет. косяк у меня оказался в скрипте сканирующем папку с файлами(название совершено секретно + он в папке запаролен хтакессом отдельным хДД). там такой код есть(да да я его написал и теперь правлю хД) $title=substr(дальше вы знаете)

после чего идет запрос такого вида: insert into `songs`(title,url,и прочее) values('".$title."'....."

Вот потому я так и написал выше)) сори за непонимание в самом начале))

Coolmac
На сайте с 08.09.2011
Offline
60
#12

А не проще на ходу использовать транслит? Имеется ввиду, написать функцию автозамены и отдавать скрипту название латиницей, а сам файл хранить в кириллице. Как по мне так рациональней.

Доступные vps/ds с грамотной тех. поддержкой (https://my.friendhosting.net/pl.php?11304)
DV
На сайте с 01.05.2010
Offline
644
#13

На сервере в шелле наберите locale. Делайте выводы.

VDS хостинг ( http://clck.ru/0u97l ) Нет нерешаемых задач ( https://searchengines.guru/ru/forum/806725 ) | Перенос сайтов на Drupal 7 с любых CMS. ( https://searchengines.guru/ru/forum/531842/page6#comment_10504844 )
zhitov
На сайте с 30.01.2005
Offline
219
#14

aftamat4ik, вы не туда копали изначально.

Дело в том, что ни кодировка, ни htaccess здесь ни при чем.

Любой браузер перекодирует Моя песня.mp3 в %D0%9C%D0%BE%D1%8F%20%D0%BF%D0%B5%D1%81%D0%BD%D1%8F.mp3, хоть и покажет в адресной строке Моя песня.mp3

Тут надо использовать urldecode

Строительные калькуляторы ( https://www.zhitov.com/ )
A4
На сайте с 05.01.2012
Offline
55
#15

Вы билин не поверите - под файерфоксом ВСЕ! играет о_0 То есть под хромом не играет, а вот под фаерфокс вполне можно послушать музыку. Вопрос - Какого?..😕😕) Так...

Я вообще в осадочном состоянии разлагаюсь на мелкие малекулы моска.

Знач так. Урл песни под firefox(firebug) :

/audio/Катарсис/Воин Света/Катарсис - Вечный Странник.mp3

вот что дает хромиум(тот же урл):

/audio/%D0%94%D0%BE%D0%BC%20%D0%92%D0%B5%D1%82%D1%80%D0%BE%D0%B2/%D0%9A%D0%B8%D1%82%D0%BE%D0%B1%D0%BE%D0%B9/%D0%94%D0%BE%D0%BC%20%D0%92%D0%B5%D1%82%D1%80%D0%BE%D0%B2%20-%20%D0%BE%D0%B3%D0%BE%D0%BD%D1%8C.mp3

такэ. в общем конечно ясно что urlencode и urldecode...

есть возможность на стороне сервера все урл песен обработать через urlencode, и я бы это все сделал. Но загвоздка в том, что треки добавляются динамически через ajax.

Когда страница загружается $(document).ready(бла бла бла...

Выполняется аякс запрос к файлу(который собственно и дает нам список песен)

Предположим в этом файле код:

echo "<li><a href="/audio/песня.mp3l">песня.mp3</a></li> и тут дальше еще много таких-же";

аякс делается примерно так

$.ajax({

//тут урл к файлу и начальные данные

}).done(function(data){//в данный момент data = <li><a href="/audio/песня.mp3l">песня.mp3</a></li>

//после чего

elem = $(data);

$("ul#list").append(elem);//добавляем элемент на страницу

});

Это примитивнейший пример, на самом деле все в разы сложнее, но писать тут 50 страниц я не хочу)

Вопрос: КАК применить javascrit функцию decodeURIComponent(урл) к списку песен, сформированному через аякс метод?)))

То есть если мы напишем

newurl = urlencode($('ul#list li a').attr('href'));

$('ul#list li a').attr('href',newurl);

- это вообще все к чертовой китайской бабушке испортит.

У всех треков на странице становится 1 урл - newurl(тут я не удивляюсь), но оно не играет. вообще не воспроизводит его хром ((

Короче тупик ребята. Кто знает как с этим бороться, напишите пожалуйста)

___________________________________________________

Знаете о чем я мечтаю - вставлять php код в яваскрипт...

zhitov
На сайте с 30.01.2005
Offline
219
#16
aftamat4ik:
//тут урл к файлу и начальные данные
}).done(function(data){//в данный момент data = <li><a href="/audio/песня.mp3l">песня.mp3</a></li>
//после чего

Вы хотите urldecode и снова отдать результат на откуп какому-либо браузеру?

Я бы сделал так.

Пишим скрипт music.php и в нем urldecode строку %D0%BE%D0%B3%D0%BE%D0%BD%D1%8C.mp3 в "песня.mp3"

(По идее она сама декодируется автоматом)

Далее или редиректом, или читаем файл песня.mp3 и отдаем его как .mp3

В htacess добавляем

RewriteRule ^audio/(.*)$ music.php?file=$1 [L]

Таким образом при обращении к любому файлу из папки audio будет отдаваться файл music.php?file=песня.mp3

А ваш код оставить без изменений.

Как-то так...

A4
На сайте с 05.01.2012
Offline
55
#17

Да) Идея отличная, но. В общем в хтакесс написал так(у меня там еще картинки в jpg формате)

RewriteRule ^audio/(.mp3)$ urlencode.php?file=$1 [L]

в файлеге urlencode.php так:

$get=urldecode($_GET['file']);

header("Location: $get");
exit();

ровно ничего не поменяло.

Тогда я решил проверить - пашет ли данный метод. Файл urlencode.php изменил так:

$get=urldecode($_GET['file']);

header("Location: фывфвфыв");
exit();

Все как было - По старому. Музыка играет под файрфоксом и не играет под хромом)

Вообще здравый метод, но он применим, если выполняется полноценный клик по ссылке! То есть Полноценный. У меня на ссылке висит javascript обработчик. там есть return false; Вот так вот) То есть перехода не происходит => хтакесс не задействован.

Но способ очень полезный, надо запомнить, благодарю. Думаю не раз мне еще поможет, но только не в этом проекте. Тут все не так как на обычных сайтах, к сожалению)

_____________________________

Кривая подсветка синтаксиса....

siv1987
На сайте с 02.04.2009
Offline
427
#18
^audio/(.mp3)$

И снова лол.

^audio/(.+\.mp3)$

zhitov
На сайте с 30.01.2005
Offline
219
#19
aftamat4ik:
То есть Полноценный. У меня на ссылке висит javascript обработчик. там есть return false; Вот так вот) То есть перехода не происходит => хтакесс не задействован.

Не бывает неполноценных переходов... :) - они или есть, или их нет.

Ваш js-проигрыватель запрашивает файл у сервера (и получает его - вполне "полноценно") => хтакесс отдает не сам файл, а файл urlencode.php, который, в свою очередь делает что хочет...

A4
На сайте с 05.01.2012
Offline
55
#20
И снова лол.

^audio/(.+\.mp3)$

Не) Теперь только когда фывфыв пишу музыка не играет, а так все то-же)) Хром упертый. Я ведь так его любил за то что он css3 тянет лучше всех... Ситуация повторяется - Firefox играет, хром нет. К сожалению гугл хром настолько пропиарен даже тнт и 1 каналом, что на нем даже старушки теперь сидят... Не. Уж лучше я 1000 записей руками вдолблю, чем потеряю 1000 посетителей.

можете просмотреть сам сайт тут(пока во всяком случае, я его на другом домене буду держать, а этот под блог личный наверное отведу....):http://aftamat4ik.ru/unt.php

______________

ладно щас еще поковыряю....

123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий