我做的Object Pascal中的一个站点地图生产商,需要一个良好的功能或LIB效仿parse_url PHP的功能。
有谁知道任何好的吗?
我做的Object Pascal中的一个站点地图生产商,需要一个良好的功能或LIB效仿parse_url PHP的功能。
有谁知道任何好的吗?
FreePascal的具有与ParseURI功能单元URIParser。 一个例子如何使用它可以在例如一个被发现FreePascal的的来源 。 或老例子是比较容易理解。
我不熟悉PHP上的parse_url功能,但你可以尝试TIdURI附带类印 (这又是包含在最新的德尔福版本)。 我想他们也移植到FreePascal的为好。
TIdURI是TObject的后代封装统一资源标识符,作为互联网标准文档中描述:
RFC 1630 -统一资源标识符在WWW
TIdURI提供了组装和使用的组成部件构成的URI,包括URI的拆卸方法和属性:协议,主机,端口,路径,文档,和书签。
如果还是不行,请给你所要完成什么具体的例子- 你在试图分析出一个URL的 。
小心Indy的TIdURI类。 它应该是一个通用的解析器,但它在这几个错误和设计缺陷,防止它被完全兼容的解析器。 我目前在从头开始编写一个新的类印11,以取代TIdURI的过程。 这将是一个完全符合URI语法分析器,它也将支承实IRI(RFC 3987)解析为好。
如果您使用的wininet.dll你也可以使用自己的InternetCrackUrl API。
该URI RFC列出了URI的解析正则表达式:
^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?
12 3 4 5 6 7 8 9
当数字是这些群体:
$1 = http:
$2 = http
$3 = //www.ics.uci.edu
$4 = www.ics.uci.edu
$5 = /pub/ietf/uri/
$6 = <undefined>
$7 = <undefined>
$8 = #Related
$9 = Related
对于这个URI:
http://www.ics.uci.edu/pub/ietf/uri/#Related
正则表达式是相当简单,没有使用特殊功能的正则表达式的lib必须提供,因此,抓住一个与您的帕斯卡实现兼容,你去那里。