0

我需要一个正则表达式来查找给定的 URL 是否在我的网站下。

例如 :

http://www.my_domain.com/internal_page should give true.
www.my_domain.com/internal_page should give false.
http://www.my_domain.com should give false. ( should have a "/" after .com  ).
http://www.my_domain.com:dfdf should give false.

- 谢谢

4

4 回答 4

1

下面是你想要的图案,

  $pattern = "#^https?://www.my_domain\.com(/.*)?$#";

  $test    = 'http://www.google.com';

  if ( preg_match( $pattern, $test ) )
  {
      echo $test, " <strong>matched!</strong><br>";
  } else {
      echo $test, " <strong>did not match.</strong><br>";
  }
于 2013-06-04T06:13:30.477 回答
1

用这个

http:\/\/www\.my_domain\.com\/.*

你真的应该在发布之前表现出一些努力。

  • http:\/\/- 表示 http://

  • www\.my_domain\.com等于 www.mydomain.com

  • \/.*表示 / 和 0 或表达式末尾的任何字符。
于 2013-06-04T06:13:38.877 回答
0

这个怎么样?

http:\/\/www\.my_domain\.com\/(.+)

它通过了你给出的四项测试

于 2013-06-04T06:11:11.887 回答
0

你可以这样做

 $url = "http://www.my_domain.com/internal_page";
 $host = "www.my_domain.com";
 if(strpos($url, "http://".$host."/") === 0){
      // we have a winner
 } else {
      // no good
 }
于 2013-06-04T06:12:52.037 回答