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

时间:2012-03-02 10:22:42

标签: php preg-match

您能告诉我如何验证来自不同超链接的超链接。例如

我想从网站使用简单的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脚本.. 你能解释一下这意味着什么

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

preg_match中那些随机查找的字符是什么?这些人物是什么意思?

2 个答案:

答案 0 :(得分:1)

如果您想了解正则表达式,我认为您可以在regular-expressions.info网站上找到一个良好的开端。

如果你想更多地使用它们,那么必须阅读这本书Mastering Regular Expressions

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

  • preg_match的第一个参数是regexp字符串。第二个是你正在测试的字符串。可以使用第三个选项,并且可以是一个数组,在其中存储捕获的所有内容。
  • |用于分隔您的正则表达式及其选项。第一个是正则表达式之间的区别,最后的i是一个选项(意味着你的正则表达式不区分大小写)
  • 第一个^标记您想要匹配的字符串
  • 然后(s)?意味着你想要一个或者没有一个角色,并且你想要“捕获它”
  • [a-z0-9] +是任何数字(偶数为0)的字母数字字符
  • (。[a-z0-9 - ] +)*错了。它应该是(\。[a-z0-9 - ] +)*来捕获由点形成的任意数量的序列,然后至少有一个字母数字字符
  • (:[0-9] +)?将捕获一个或不由以下形成的序列:后跟任何数字。它用于获取URL端口
  • (/.*)?捕获url的结尾,斜杠后跟任意数量的任何字符
  • $是字符串的结尾

答案 1 :(得分:0)