开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 4096|回复: 7
收起左侧

[已回应] 网页_取单条Cookie 改进建议

[复制链接]
结帖率:50% (1/2)
发表于 2018-1-1 05:52:19 | 显示全部楼层 |阅读模式   山东省聊城市


精易模块源码:

  
子程序名返回值类型公开备 注
网页_取单条Cookie文本型 从左往右获取
参数名类 型参考可空数组备 注
Cookie文本型
名称文本型
不附带名称逻辑型
变量名类 型静态数组备 注
t文本型 
Cookie = 删首尾空 (Cookie)
如果真 (取文本右边 (Cookie, 1)“;”)
Cookie = Cookie + “;”
t = 取单条Cookie (Cookie, 名称)
判断 (不附带名称 t = “”)
返回 (t)
返回 (名称 + “=” + t)

子程序名返回值类型公开备 注
取单条Cookie文本型 
参数名类 型参考可空数组备 注
原Cookies文本型
单条Cookie名称文本型
变量名类 型静态数组备 注
Cookies文本型0
i整数型 
Name文本型 
Cookies = 分割文本 (原Cookies, “;”, )
计次循环首 (取数组成员数 (Cookies), i)
Name = 文本_取左边 (删首尾空 (Cookies [i]), “=”, , )
如果真 (到小写 (Name)到小写 (单条Cookie名称))
如果真 (寻找文本 (删首尾空 (Cookies [i]), “:”, , ) ≠ -1)
返回 (文本_取出中间文本 (删首尾空 (Cookies [i]), “=”, “:”, ))
返回 (文本_取右边 (删首尾空 (Cookies [i]), “=”))

计次循环尾 ()
返回 (“”)



优化代码[正则] : ---->>>

  
子程序名返回值类型公开备 注
正则_取单条Cookie文本型 
参数名类 型参考可空数组备 注
Cookie文本型
名称文本型
不附带名称逻辑型
区分大小写逻辑型
变量名类 型静态数组备 注
正则正则表达式 
结果搜索结果 
文本型 
正则.创建 (“(?:^|;+|\s+)*(”删首尾空 (名称)“=(?:([^;]*)))”, 区分大小写)
结果 = 正则.搜索 (Cookie, 1, )
值 = 结果.取子匹配文本 (Cookie, 选择 (不附带名称, 2, 1), )
返回 (删首尾空 ())


i支持库列表   支持库注释   
RegEx正则表达式支持库




有何不同?  对比一下:

Cookie文本取值网页_取单条Cookie正则_取单条Cookie
取重复文本(20,"a=1;b=2;c=3;d=4;e=5;")+"z=100;"z执行10000次4.649秒执行10000次0.671秒
a=1;b=2;c=3;d=4;e=5;z=100;z取值正常取值正常
; ;a=1; ; b=2;c=3;d=4;e=5; ; z=100 ; ;z取值正常取值正常
a=1;b=2;c=3;d=4;e=5;z=k=1*100z值等于1*100值等于k=1*100
a=1;b=2;c=3;d=4;e=5;y=100Y不支持区分大小写支持区分大小写



为何要区分大小写?

  1. 原文  http://www.cftea.com/c/823.asp

  2. cookie 名称区分大小写吗?

  3. ASP 里 cookie 名称是不区分大小写的,比如:
  4. response.cookies("aa") 与 response.cookies("AA") 是指的同一个 cookie。

  5. 但 JS(JavaScript) 里则是区分大小写的,比如:
  6. document.cookie = "aa=1";
  7. document.cookie = "AA=2";
  8. 运行这两句之后,就存在两个 cookie。

  9. 其实,cookie 名称本是区分大小写的,只不过由于 ASP 进行了封装,使得 cookie 名称不区分大小写,我们也可以对 JS 封装,以使 cookie 名称不区分大小写。
复制代码


哦, 对了, 精易模块的原则是不调用核心库以外的其他库,
那么, 正则对象吧

  
子程序名返回值类型公开备 注
正则_取单条Cookie2文本型 
参数名类 型参考可空数组备 注
Cookie文本型
名称文本型
不附带名称逻辑型
区分大小写逻辑型
变量名类 型静态数组备 注
正则对象 
搜索变体型 
结果对象 
匹配对象 
文本型 
正则.创建 (“VBScript.RegExp”, )
正则.写属性 (“IgnoreCase”, 区分大小写)
正则.写属性 (“Pattern”, “(?:^|;+|\s+)*(”删首尾空 (名称)“=(?:([^;]*)))”)
搜索.赋值 (Cookie, )
结果 = 正则.对象型方法 (“Execute”, 搜索)
匹配 = 结果.读对象型属性 (“Item”, 0)
值 = 匹配.读属性 (“Item”, 选择 (不附带名称, 1, 0)).取文本 ()
返回 (删首尾空 ())


i支持库列表   支持库注释   
RegEx正则表达式支持库



不过 , 这么一改之后.....

Cookie文本取值网页_取单条Cookie正则_取单条Cookie
取重复文本(20,"a=1;b=2;c=3;d=4;e=5;")+"z=100;"z执行10000次4.649秒执行10000次10.905秒
a=1;b=2;c=3;d=4;e=5;z=100;z取值正常取值正常
; ;a=1; ; b=2;c=3;d=4;e=5; ; z=100 ; ;z取值正常取值正常
a=1;b=2;c=3;d=4;e=5;z=k=1*100z值等于1*100值等于k=1*100
a=1;b=2;c=3;d=4;e=5;y=100Y不支持区分大小写支持区分大小写


算了, 就当是一次学习笔记吧...恩




.


结帖率:0% (0/1)

签到天数: 3 天

发表于 2018-3-11 11:02:32 | 显示全部楼层   浙江省金华市
每次我遇见此类贴子时,我都会不由自主的盘膝而坐、气沉丹田,红唇白齿间冷爆出一句 厉害
回复 支持 反对

使用道具 举报

结帖率:0% (0/3)
发表于 2018-2-7 16:34:16 | 显示全部楼层   山东省泰安市

我轻轻的来正如我轻轻的走!!
回复 支持 反对

使用道具 举报

发表于 2018-2-1 23:10:28 | 显示全部楼层   湖南省益阳市
这样取,有什么优势呢,多谢分享
回复 支持 反对

使用道具 举报

发表于 2018-1-16 15:19:22 | 显示全部楼层   江苏省淮安市
我轻轻的来正如我轻轻的走!!
回复 支持 反对

使用道具 举报

结帖率:80% (59/74)

签到天数: 2 天

发表于 2018-1-1 08:43:43 | 显示全部楼层   四川省内江市
正则要初始化com库吧
回复 支持 反对

使用道具 举报

头像被屏蔽
结帖率:36% (4/11)
发表于 2018-1-1 07:17:40 高大上手机用户 | 显示全部楼层   陕西省延安市
如果只是单纯的网页取单条cookie,不用这么复杂,直接取就行了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表