13
2021
02

易语言URL链接转换 相对地址转绝对地址

.版本 2

.程序集 链接转换类

.子程序 相对地址转绝对地址, 文本型
.参数 基址, 文本型
.参数 相对地址, 文本型
.局部变量 临时文本, 文本型

.如果真 (文本_寻找文本 (相对地址, “/”) = 1)  ' 相对目录为根目录
    .如果 (取文本左边 (基址, 5) = “https”)
        返回 (“https://” + 文本_取出中间文本 (基址, “//”, “/”, , 真) + 相对地址)
    .否则
        返回 (“http://” + 文本_取出中间文本 (基址, “//”, “/”, , 真) + 相对地址)
    .如果结束

.如果真结束

.如果真 (文本_寻找文本 (相对地址, “/”) ≠ 1)  ' 相对目录低于基址
    .如果真 (文本_寻找文本 (相对地址, “.”) ≠ 1)
        .判断循环首 (取文本右边 (基址, 1) ≠ “/”)
            基址 = 文本_删右边 (基址, 1)
        .判断循环尾 ()
        返回 (基址 + 相对地址)
    .如果真结束

.如果真结束

.如果真 (文本_寻找文本 (相对地址, “/”) = -1)  ' 相对目录与基址同级
    .如果真 (文本_寻找文本 (相对地址, “.”) ≠ 1)
        .判断循环首 (取文本右边 (基址, 1) ≠ “/”)
            基址 = 文本_删右边 (基址, 1)
        .判断循环尾 ()
        返回 (基址 + 相对地址)
    .如果真结束

.如果真结束

.如果真 (文本_寻找文本 (相对地址, “./”) = 1)  ' 相对目录与基址同级
    .判断循环首 (取文本右边 (基址, 1) ≠ “/”)
        基址 = 文本_删右边 (基址, 1)
    .判断循环尾 ()
    相对地址 = 文本_删左边 (相对地址, 2)
    返回 (基址 + 相对地址)

.如果真结束

.如果真 (文本_寻找文本 (相对地址, “../”) = 1)  ' 相对目录引用上级
    .判断循环首 (文本_寻找文本 (相对地址, “../”) = 1)
        相对地址 = 文本_删左边 (相对地址, 3)
        .判断循环首 (取文本右边 (基址, 1) ≠ “/”)
            基址 = 文本_删右边 (基址, 1)
        .判断循环尾 ()
        基址 = 文本_删右边 (基址, 1)
        .判断循环首 (取文本右边 (基址, 1) ≠ “/”)
            基址 = 文本_删右边 (基址, 1)
        .判断循环尾 ()
    .判断循环尾 ()
    返回 (基址 + 相对地址)

.如果真结束


返回 (“Error”)  ' 防故障

.子程序 URL链接转换, 文本型
.参数 当前页面链接, 文本型, 可空
.参数 待解析链接, 文本型

.如果真 (文本_寻找文本 (待解析链接, “http”, , 真) ≠ -1)
    返回 (待解析链接)
.如果真结束

.如果真 (是否为空 (当前页面链接) = 真)
    返回 (相对地址转绝对地址 (_启动窗口.网络URL模式_编辑框_网站首页.内容, 待解析链接))
.如果真结束
返回 (相对地址转绝对地址 (当前页面链接, 待解析链接))


« 上一篇 下一篇 »

返回顶部
请先 登录 再评论,若不是会员请先 注册