0

target_passthroughというグローバル変数でさまざまなURLを渡しているので、ページのURLは次のようになります 。http ://www.mysite.com/index.php?target_passthrough = example.com

またはそのようなもの。その変数の形式は、(引用符を引いた)などのさまざまなものになります。

  1. 「www.example.com」
  2. 「.example.com」
  3. 「example.com」
  4. http://www.example.com
  5. ".example.com/subdir/"
  6. ".example.com/subdir/page.php"
  7. "example.com/subdir/page.php"

2、5、6など、最初の文字としてピリオドが含まれているものがあることに注意してください。

今、私がやろうとしているのは、PHPで考えられるシナリオのいずれかから「example.com」だけを取り出し、後でエコーアウトするために変数に格納することです。parse_urlを試しましたが、それが存在する場合は「www」が表示されますが、これは望ましくありません。URLが「example.com」の場合はnull値を返します。

正規表現のマッチングを行う方法がよくわかりません。それが必要な場合でも、ガイダンスをいただければ幸いです。phpではそれほど高度ではありません。

4

2 に答える 2

2

ご指摘のとおり、 parse_urlを使用して多くの作業を実行し、wwwドットまたは先頭のドットが存在する場合はそれを削除することができます。

のようなドメインがあるため、最後の2つの「単語」を取得する別の戦略が常に機能するとは限りませんwww.example.co.uk。この戦略を使用すると、co.ukの代わりにが得られますexample.co.uk。どの部分がドメインまたはサブドメインであるかを決定するための簡単なルールはありません。

于 2010-09-04T21:10:08.170 に答える
0

parse_url() は、URL のさまざまな部分の配列を出力します。配列の最初の項目のみを参照しているため、null 値を取得しています。parse_url()

 Array (
        [scheme] => http
        [host] => hostname
        [user] => username
        [pass] => password
        [path] => /path
        [query] => arg=value
        [fragment] => anchor 
         )
于 2010-09-04T21:18:22.113 に答える