在php中怎样用正则表达式从一个字符串中提取url地址

2024-11-01 17:53:50
推荐回答(2个)
回答1:

1楼纳什从源码中找超链接。

楼主说从字符串中找url,这个真的是不好实现。开头可以凭"http://或者https://",但是结尾就不好说了,如果只针对首页那就没有文件名,地址里有可能以汉字结尾,及时有指定文件名,万一有get值是汉字呢?并且还是结尾。。
关键就是结尾。。
“http://baidu.com/空间” (这个成立。。我的空间就是汉字地址。)
“http://baidu.com/page.php?id=1&ac=百度” (这个成立,有些小网站传递一个标题之类的)
还有get值可以是空的,万一“=”后面是我们其他内容而不属于url,而且还是英文???
“http://baidu.com/page.php?id=1&ac=url url” (这个也成立,不能以空格过滤呀。。)
这个问题的答案我也等。。

提交了才发现,百度都不能实现这一点,答案难寻呀。。呵呵

回答2:

这个想完美的实现是很难的。完全取决于你这个字符串的具体内容
url的开头好认,但是结尾就很难说了。如果字符串里的url结束后没有刻意的分隔,比如空格,直接继续别的字符,那怎么区分?比如 "http://www.blah.com/?var=string看看这个"