首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >针对不同URL的PHP Regex

针对不同URL的PHP Regex
EN

Stack Overflow用户
提问于 2010-01-11 06:28:25
回答 1查看 421关注 0票数 1

我试图找出一种方法来匹配3种不同的URL类型,它们是;

  1. http://(www.)domain.com www.domain.com
  2. http://(www.)domain.com/image.jpg/.png/gif www.domain.com/image.jpg/.png/.gif
  3. http://(www.)youtube.com/watch?v=Li1zXaEYol8 www.youtube.com/watch?v=Li1zXaEYol8

注意,我不希望它们被解析,如果它们只是没有http或www的domain.com。

我面临的问题是让这三个-甚至2个一起工作,我有一个类可以自动链接,所以如果有什么与http://或www。它将链接它,但是如果我在其中放置一个图像,它将解析图像中URL的HTML,如下所示:

代码语言:javascript
复制
<img src="<a href="www.domain.com">domain.com</a>" />

这是垃圾:

我还想扫描YouTube URL,然后用嵌入代码替换URL,以便视频显示而不是URL。我已经从URL中提取出了ID,但无法完成替换工作。

请注意,这是一个文本区域,比如注释字段,人们在其中输入注释,因此自动链接URL、解析图像和YouTube视频是很好的。

这些数据是通过SQL查询显示的,并回显$comments‘’message‘,并设置了一些str_replace内容来完成一些简单的格式化。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2010-01-11 06:40:14

给你:

代码语言:javascript
复制
(?:http:\/\/www\.|http:\/\/|www\.)(?:youtube\.com\/watch\?v=(?:\w+)|domain\.com\/image.(?:jpg|png|gif)|domain\.com)

或用分隔符:

代码语言:javascript
复制
~(?:http:\/\/www\.|http:\/\/|www\.)(?:youtube\.com\/watch\?v=(?:\w+)|domain\.com\/image.(?:jpg|png|gif)|domain\.com)~i

你可以测试上面的RegExs @ Robular.

为了找出URL是否在不需要的HTML标记中,我建议您使用DOM解析器。

另外,请查看以下相关问题:如何模拟StackOverflow自动链接行为

关于YouTube替换,您可以这样做:

代码语言:javascript
复制
echo preg_replace('~youtube\.com\/watch\?v=(\w+)~i', 'embed code $1', $comments['message']);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2040284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档