В общем поменял на это:
$get = iconv('UTF-8','windows-1251',$_GET['file']);
И вы не поверите! Произошло чудо. Все 3 броузера наконец то сошлись на 1 - в них музыка не играет!))
гет запрос и так в утф передается, я его 2 раза в 1 и ту-же кодировку переводил - это было не правильно, но косяков не вызывало, что естественно. Теперь же я возвратил ссылку в win-1251,ясное дело она не заиграет)) Может наоборот о_0 хром как раз в cp-1251 урл читает а 2 остальных в утф? Хотя нет. под хромом же тоже не воспроизводит...
И вообще почему не эскейп! строка вида /audio/Дом Ветров/ в хроме выглядит так: /audio/Дом%20Ветров/ Ну я какбэ знаю что %20 - это код пробела(в escape последовательности), но в файрфоксе и опере ссылка без этого символа,а в хроме с ним. Как уже говорилось ссылка не подвергалась php urlencode(); Хотя проблемма не в %20, потому что из папки Катарсис тоже не играет хД---------- Добавлено 12.06.2012 в 22:15 ----------
Знаю. и к стати правильно писать cp-1251, именно через тире( на хабре вчера прочел де-то) и utf-8, тоже через тире:)---------- Добавлено 12.06.2012 в 22:27 ----------
я же говорю - ВСЕ аякс запросы то есть Get и Post кодируются(сразу) в утф-8, хочешь ты этого или нет. То есть здесь почему то все броузеры(даже о ,нет интернет эксплорер!) имеют единое мнение. Можно передавать строку хоть в ср-1251 она все равно в утф будет преобразована, и на обработчике придется писать так:
как к стати у меня и написано, но у меня сайт на утф-8 сделан, а значит это без надобности.
Если требуется передать данные в запросе какой-либо другой(специальной) кодировкой надо юзать это:
header('Content-type: text/html; charset=ср-1251');
У меня таких строк ни в 1 скрипте никогда не появится)
Точно) что то я совсем... ладно судя по всему "магического" способа не существует. придется методом "я в танке" менять всю базу данных и писать скрипт по переименовыванию папки, после занесения ее названия в бд...---------- Добавлено 12.06.2012 в 22:00 ----------
Аха! так щщас. То есть надо попробовать переделать урл в cp-1251. К стати я это уже делал) вроде не прокает, щас еще раз...
При выводе ссылки используется код:
$url = iconv('windows-1251','UTF-8',$arr['url']);
это вроде как преобразовывает из вин в утф, или нет?)
= к тому же в файле прописан header('Content-type: text/html; charset=utf-8');
хотя по умолчанию все аякс запросы в утф идут...
Я же говорю - как только не вертел...
Я вообще не знаю с чем связан тот факт что в опере таки играет...
Согласившись с вашим предоположением таки наваял в файле urlencode.php
$get = iconv('windows-1251','UTF-8',$_GET['file']);
Не играет. хоть тресни зарраза под хромом не играет.(надо заметить на денвере везде нормально играет и тут rotmaister.narod2.ru тоже. Последнее - это собственно проигрыватель который я наваял. Вывод - ошиппка не в яваскрипте...))
______________
к слову играет там не везде, и не всегда. я каждые 5 минут что-то правлю. Играют треки исполнителей, например тут можно послушать:http://aftamat4ik.ru/unt.php#authorname=Грот.
На главной нельзя - там у меня другой скрипт за все отвечает,и там ничего не подправлено, пока...
Не) Теперь только когда фывфыв пишу музыка не играет, а так все то-же)) Хром упертый. Я ведь так его любил за то что он css3 тянет лучше всех... Ситуация повторяется - Firefox играет, хром нет. К сожалению гугл хром настолько пропиарен даже тнт и 1 каналом, что на нем даже старушки теперь сидят... Не. Уж лучше я 1000 записей руками вдолблю, чем потеряю 1000 посетителей.
можете просмотреть сам сайт тут(пока во всяком случае, я его на другом домене буду держать, а этот под блог личный наверное отведу....):http://aftamat4ik.ru/unt.php
ладно щас еще поковыряю....
Да) Идея отличная, но. В общем в хтакесс написал так(у меня там еще картинки в 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; Вот так вот) То есть перехода не происходит => хтакесс не задействован.
Но способ очень полезный, надо запомнить, благодарю. Думаю не раз мне еще поможет, но только не в этом проекте. Тут все не так как на обычных сайтах, к сожалению)
_____________________________
Кривая подсветка синтаксиса....
Ну тоогда попробуй так:
<div class="itemlistframe">
<div class="itemlistinframe1">
<a class='test'>
<div class="iverticalcell">
<?php echo $this->item->id;?>
</div>
</a>
и в стили напиши например так:
a.test:visited{
opacity:0.8;
}
попробуй, я фиг его знает как там, но может прокатит))
Так у тебя что только 2 файла что-ли о_0) аа ээ ну типа подробная информация о квартире где показывается?)
Я думал типа например тыкаешь по ссылке "Копия квартира в центре недорого" - окно обновляется, загружается php файл в котором вся подробная инфа о квартире. Или у тебя не так?) А тогда как о_0 ну просто я бы так сделал хД
О НЕТ ЭТО же К2!!!! ААА, щас вкурю))
Бэлин я думал ты руками писал.... К2 осложняет задачку раз в 100) вот я даже сам не знаю куда теперь все это пихать) нее, не знаю.
Под джумлой я сам много чего ковал на к2, но просто такой задачи себе не ставил))
По моему лучше тебе не заморачиваться ато попортишь еще) там ведь у каждого материала уникальный id его в яваскрипте не узнать. короче забей, мой здравый(наверное) совет.
А что a:visited уже не пашет?
К стати:
Можно, я даже делал вот смотри внизу в футере http://www.zfbsau.ru/
только надо тегу a дать стиль display:block ибо по умолчанию внутрь строчных элементов(ссылка строчный элемент) нельзя засовывать блочные(див то есть)
такая конструкция канает:
<a style="display:block;"><div></div></a>
_____________________________________________
Я в этом самом универе учусь, я сделал им сайт(отличный имхо), и они не хотят мне ставить зачеты! Адалт выложу!)
Оно у тебя на аяксе работает? если нет - то фиг его знает как....
О! Юзай кукиз! точно. В кукиз прописывай данные по элементам которые просмотрены.
А потом через javascriptом считывай куки и конструкцией типа $(имя дива из куков).css("background-color","#121212"); это jquery.
к стати у jquery даже плагин для работы с кукиз есть cookie и называется.
пользователь переходит по ссылке из дива, заносим это в куки через php, там есть функции.
если каждому куку присваивать название от 0 до число просмотров, то данные можно считать так:
var cc = 0;
while($.cookie(cc.toString())){
$($.cookie(cc.toString()).css("background-color","#121212");
сс++
то есть читаются куки от 1 до сколько там просмотрел пользователь и ко всем стиль применяется.
У меня работает, не барахлит и не пыхтит, но на денвере. На серваке проблемы с кодировкой в русскоязычных ссылках.---------- Добавлено 12.06.2012 в 14:55 ----------Даже подробнее напишу.
В файле который отображает список квартир в секции
$(document).ready(function(....
делаете так:
- то есть если пользователь просмотрев инфу о квартире вернулся на страницу со списком квартир, то изменить стили.
В пхп файле, отвечающем за отображение квартир в секции $(document).ready(function(....
n = 0;
while($.cookie(n)){//зато сердито и работает
n++;
$.cookie(n,'тут твой div.itemlistframe+n, наверное...',30);
30- время хранения, в днях. вообще 1 поставьте)
Вы билин не поверите - под файерфоксом ВСЕ! играет о_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 код в яваскрипт...
да, я сам так хотел, честно. но беспокоюсь что при расшифровке транслита будут бяки вида ja=йа(надо я)---------- Добавлено 11.06.2012 в 21:42 ----------
Исчу функцию пхп по переименовыванию файлофф. то есть уже нашел - rename. теперь кой чего подправлю, авось сгодится)---------- Добавлено 11.06.2012 в 22:25 ----------
Дошло что вы имели в виду, медленно конечно...)) Нет, вы ошибаетесь, проект сделан не на файлах, есть скрипт, который полностью сканирует папку/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."'....."
Вот потому я так и написал выше)) сори за непонимание в самом начале))