把URL转换成绝对URL
来源:互联网 发布:mac口红国内专柜价格 编辑:程序博客网 时间:2024/05/17 20:54
/************************************************************************
* 功能: 把URL转换成绝对URL
* 输入参数:strUrl 要转换的URL
strWebUrl 当前网页的URL,它是绝对地址
* 输出参数:strUrl 转换过后的URL,若为空则转化失败
* 返回值: 无
************************************************************************/
void Common::ChangUrl(CString &strUrl, const CString &strWebUrl)
{
if (strUrl.IsEmpty())
{
return;
}
strUrl.MakeLower();
if (strUrl.Find(_T("http://")) == 0)
{
return;
}
if (strUrl == _T("#"))
{
strUrl = strWebUrl;
return;
}
TCHAR TchTmp = strUrl[0];
if (TchTmp == _T('/'))
{//相对地址格式如:/a/b.html的,其绝对地址为:主域名+相对地址的路径
//从参考URL中提取主域名
int nIndex = strWebUrl.Find(_T("http://"));
if (nIndex == -1)
{
strUrl.Empty();
return;
}
nIndex += 8;
nIndex = strWebUrl.Find(_T('/'), nIndex);
CString strDiamon;
if (nIndex == -1)
{
strDiamon = strWebUrl;
}
else
{
strDiamon = strWebUrl.Left(nIndex);
}
strUrl = strDiamon + strUrl;
return;
}
else
{//相对地址格式如:a/b.html,其绝对地址为:当前目录+相对地址路径
CString strCurPath(strWebUrl);
strCurPath.MakeLower();
int nLength = strCurPath.GetLength();
if (strCurPath[nLength - 1] == _T('/'))
{
strCurPath.Delete(nLength - 1);
}
//从参考URL中提取主域名
int nIndex = strWebUrl.Find(_T("http://"));
if (nIndex == -1)
{
strUrl.Empty();
return;
}
nIndex += 8;
nIndex = strWebUrl.Find(_T('/'), nIndex);
CString strDiamon;
if (nIndex == -1)
{
strDiamon = strWebUrl;
}
else
{
strDiamon = strWebUrl.Left(nIndex);
}
if (strDiamon == strCurPath)
{
if (strUrl.Left(3) == _T("../"))
{
strUrl.Empty();
}
else
{
strUrl = strCurPath + _T('/') + strUrl;
}
return;
}
nIndex = strCurPath.ReverseFind(_T('/'));
if (nIndex == -1)
{
strUrl.Empty();
return;
}
CString strFile(strCurPath.Mid(nIndex + 1));
if (strFile.Find(_T('.')) != -1)
{
strCurPath = strCurPath.Left(nIndex);
}
//相对地址格式如:../a/b.html的
int nStart = -1;
do
{
nStart = strUrl.Find(_T("../"));
if (nStart == 0)
{
strUrl.Delete(0, 3);
}
else
{
break;
}
nIndex = strCurPath.ReverseFind(_T('/'));
if (nIndex != -1)
{
if (strDiamon == strCurPath && nStart == 0)
{
strUrl.Empty();
return;
}
strCurPath = strCurPath.Left(nIndex);
}
} while (nStart == 0);
strUrl = strCurPath + _T('/') + strUrl;
return;
}
}
- 把URL转换成绝对URL
- java语言把网页相对URL转换成绝对URL
- 插件21:把URL相对地址转换为绝对地址
- 怎么把汉字转换成URL编码
- 如何将相对URL 转换为绝对URL
- 绝对URL和相对URL
- 什么是绝对URL、相对URL
- 相对URL与绝对URL
- 什么是绝对URL、相对URL
- 绝对URL和相对URL
- url传值把utf-8转换成gbk
- url 转换成ip
- url 转换成ip
- url转换
- URL转换
- 关于相对URL和绝对URL
- 把绝对时间转换成当前时间
- 图片URL 转换成CCSprite
- Resource Configuration
- SQL Server BI Step by Step SSRS 1-Reporting Service 2008的新特性
- 用递归获取组织机构
- 只有“第四驾马车”才能拉动中国经济
- Format Specifiers for memo
- 把URL转换成绝对URL
- Java操作Excel(一)Poi简介
- 什么是BADI,如何从SAP中查找BADI?
- Java操作Excel(二)将数据库中的数据导出到Excel中
- 78 76
- Java操作Excel(三)将Excel中的数据批量的导入数据库
- Delphi分解模块的技术
- 开始记点东西吧……
- n73 电池“万能充”充电的问题