Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 17.06.2010, 14:13
kodemak вне форума Посмотреть профиль Отправить личное сообщение для kodemak Найти все сообщения от kodemak
  № 1  
Ответить с цитированием
kodemak

Регистрация: Sep 2009
Сообщений: 95
Attention Помогите с алгоритмом преобразования URL адреса

есть переменная:
Код AS1/AS2:
url = "http://www.youtube.com/watch?v=NR_E_B8k-cI&playnext_from=TL&videos=LUGpwNqSBXo&feature=grec_index"
//или
url = "youtube.com/watch?v=NR_E_B8k-cI&playnext_from=TL&videos=LUGpwNqSBXo&feature=grec_index"
//в общем любой URL
нужно ее преобразовать в:
Код AS1/AS2:
site = "http://www.youtube.com"
с начало нужно определить есть ли в начале переменной "http://", если есть то дописать.
Затем стереть все что стоит после третьего слеша "/", вмести со слешем.

стоит отметить что адреса есть и такие:
Код:
http://mysite.ru?topic=http://site.com
так что к стиранию всего что после 3его слеша нужно применить условия..

помогите с реализацией!
__________________
=)

Старый 17.06.2010, 14:26
Хемуль вне форума Посмотреть профиль Отправить личное сообщение для Хемуль Найти все сообщения от Хемуль
  № 2  
Ответить с цитированием
Хемуль
Квач
 
Аватар для Хемуль

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
2 kodemak:
Так вам путь к корню сайта нужно получить? А то я что-то не понял про "третьи слеши".
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого

Старый 17.06.2010, 14:32
kodemak вне форума Посмотреть профиль Отправить личное сообщение для kodemak Найти все сообщения от kodemak
  № 3  
Ответить с цитированием
kodemak

Регистрация: Sep 2009
Сообщений: 95
ну да
__________________
=)

Старый 17.06.2010, 14:52
Fatality вне форума Посмотреть профиль Отправить личное сообщение для Fatality Найти все сообщения от Fatality
  № 4  
Ответить с цитированием
Fatality
 
Аватар для Fatality

Регистрация: Jan 2009
Адрес: Одесса
Сообщений: 309
Отправить сообщение для Fatality с помощью ICQ
Код AS1/AS2:
var strURL:String = "http://www.youtube.com?fgdfgd";
var validUrl:String = makeValidURL(strURL);
trace(validUrl);
function makeValidURL(strURL:String):String {
	var strValidURL:String = strURL;
	var strHTTPPrefix:String = "http://";
	if (strValidURL.indexOf(strHTTPPrefix) != 0) {
		if (strValidURL.indexOf("/") != -1) strValidURL = strValidURL.substr(0, strValidURL.indexOf("/"));
		strValidURL = strHTTPPrefix + strValidURL;   
	} else if (strValidURL.indexOf("/", strHTTPPrefix.length) != -1) strValidURL = strValidURL.substr(0, strValidURL.indexOf("/", strHTTPPrefix.length));
	if (strValidURL.indexOf("?") != -1) strValidURL = strValidURL.substr(0, strValidURL.indexOf("?"));
	return strValidURL;
}


Последний раз редактировалось Fatality; 17.06.2010 в 15:13.
Старый 17.06.2010, 14:58
Хемуль вне форума Посмотреть профиль Отправить личное сообщение для Хемуль Найти все сообщения от Хемуль
  № 5  
Ответить с цитированием
Хемуль
Квач
 
Аватар для Хемуль

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
2 kodemak:
Ну, либо переделать флексовый URLUtil под AS2:
Код AS1/AS2:
var url = "http://flasher.ru/find.php?query=http://google.com";
 
trace(getProtocol(url) + "://" + getServerName(url));
 
function getServerName(url:String):String
{
	var sp:String = getServerNameWithPort(url);
	var delim:Number = sp.indexOf("]");
	delim = (delim > -1) ? sp.indexOf(":", delim) : sp.indexOf(":");   
	if (delim > 0)
		sp = sp.substring(0, delim);
	return sp;
}
 
function getServerNameWithPort(url:String):String
{
	var start:Number = url.indexOf("/") + 2;
	var length:Number = url.indexOf("/", start);
	return length == -1 ? url.substring(start) : url.substring(start, length);
}
 
function getProtocol(url:String):String
{
	var slash:Number = url.indexOf("/");
	var indx:Number = url.indexOf(":/");
	if (indx > -1 && indx < slash)
	{
		return url.substring(0, indx);
	}
	else
	{
		indx = url.indexOf("::");
		if (indx > -1 && indx < slash)
			return url.substring(0, indx);
	}
	return "";
}
У Fatality более простое решение, которое обрабатывает только http-протокол, скажем. Так что выбирайте, что вам удобнее и более подходяще.
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого

Создать новую тему Ответ Часовой пояс GMT +4, время: 17:02.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
адрес , преобразование , сайт , слеш

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 17:02.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.