如何使用php验证来自不同链接的超链接


How to validate a hyperlink from different links using php

你能告诉我如何从不同的超链接中验证超链接吗。例如

我想使用简单的html dom 从网站上单独获取这些链接,从粗体地址开始(两颗星之间)

1 http://**www.website1.com**/1/2/
2 http://**news.website2.com**/s/d
3 http://**website3.com/news**/gds

我知道我们可以使用preg_match;但我很难理解赛前比赛。有人能给我一个preg_match脚本来验证这些网站吗。。你能解释一下是什么意思吗

preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url)

preg_match中那些看起来随意的角色是什么?这些字的意思是什么?

如果你想学习正则表达式,我想你可以在regular-expressions.info网站上有一个好的开始。

如果你想更多地使用它们,《掌握正则表达式》一书是必读的。

编辑:这是一个简单的演练tho:

  • pregmatch的第一个参数是regexp字符串。第二个是你正在测试的字符串。可以使用第三个选项,它将是一个数组,其中存储捕获的所有内容
  • |用于分隔regexp及其选项。介于第一个之间的是regexp,末尾的i是一个选项(意味着您的regexp不区分大小写)
  • 第一个^标记要匹配的字符串的起始位置
  • 然后(s)?意思是你想要一个或没有s的角色,你想"捕捉它"
  • [a-z0-9]+是任意数字(偶数为0)的字母数字字符
  • (.[a-z0-9-]+)*错误。它应该是(''.[a-z0-9-]+)*,以捕获由一个点和至少一个字母数字字符组成的任意数量的序列
  • (:[0-9]+)?将捕获一个或不捕获由以下组成的序列:后跟任意数字。它用于获取url端口
  • (/.*)?捕获url的末尾,后面跟着任意数字的任意字符的斜杠
  • $是字符串的末尾

看看In search of the perfect URL validation regex。