LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 866|回复: 6

求一个比较好的分析URL的算法

[复制链接]
发表于 2004-7-29 11:52:55 | 显示全部楼层 |阅读模式
一个象这样的URL:

  1. 前面有文字scheme://user:pass@host:port/path?query后面也有文字
复制代码

怎样把URL比较完整的提取出来?论坛输入框也有这个功能,但是有时也会出错。我是用PHP的,不过有什么语言的都一样。
发表于 2004-7-29 13:04:39 | 显示全部楼层
先不谈算法,首先解决一个问题:
从概念上如何判断前面的文字和后面的文字不是这个URL的一部分?
 楼主| 发表于 2004-7-29 13:28:17 | 显示全部楼层
是啊,我的想法是只能用“蒙“了。
我的初步设想的算法是,以字符串"http://"或"ftp://”之类的为启动条件进行判断,以“.htm"、".html"、".php"、“/”等为结尾并且结尾后面不是”?"。

如果是问号的带参数怎么办呢?我还没有想到好的解决方法,因为参数有多长,是什么形式根本不懂。
只能寄希望于最后一个是空格,如果超过一定长度没有空格或非-可视ASCII码的话(也没有‘&’和‘=’的话),就放弃问号后面的所有字符
发表于 2004-7-29 13:47:03 | 显示全部楼层
如果放弃问号后面所有字符,基本可以肯定是错误的。
到是可以考虑放弃问号后面的中文字符。因为通常用get方式传参数,都是用utf-8编码的。中文会表现为%xx%xx%xx的形式
发表于 2004-7-29 17:59:41 | 显示全部楼层
最好是让输入的人在前后都以空格为界。
发表于 2004-7-29 19:36:33 | 显示全部楼层
先搞清楚url编码的标准。
 楼主| 发表于 2004-7-29 21:40:52 | 显示全部楼层
最初由 kj501 发表
先搞清楚url编码的标准。

就象本论坛的php程序也是有这种功能的啊,编码应该是通用吧。
只不过本论坛的url有时会分析错误。但是有这种效果我就满足了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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