-2

重複の可能性:
TLD なしでドメイン名を取得する

だから私は私が取り組もうとしている Web サイトを持っています。URL には情報があり、それを解析して、それを使用して mysql への db 呼び出しを行いたい:

http://www.relevant-info.org/home.html

URLを文字列に入れたいと思います。

次に、URLから「関連情報」のみを取得したい。

$webaddress = $_SERVER["SERVER_NAME"];
$parts = parse_url($webaddress);
$url = substr($Parts, 4, -4);

^私はそれを使用していて、これをテストしているVMでIPアドレス(centos 5.8ランプです)を取得しました。

4

3 に答える 3

1

Relentlessへのクレジット

PHP parse-url 関数で簡単に見つけることができます: parse_url

使用例: 「relevant-info」を取得したい場合、PHP 5.4の有効なコードは次のようになります。

$Url = substr(parse_url("http://www.relevant-info.org/home.html")[1], 4, -4);

出力

関連情報

PHP 5.3 以下の場合

$Parts = parse_url("http://www.relevant-info.org/home.html");
$Url = substr($Parts, 4, -4);

将来的に、parse-url のような派手な関数がない場合は、Regexを使用するか、str_splitを使用できます。

str_split はより少ないリソースを必要とすることに注意してください

于 2013-01-09T21:15:15.713 に答える
0

私は別の素晴らしいアイデアを持っています!

爆発はどうですか?

var_dump(explode('.', 'http://www.relevant-info.org/home.html'));
array(4) {
  [0]=>
  string(10) "http://www"
  [1]=>
  string(13) "relevant-info"
  [2]=>
  string(8) "org/home"
  [3]=>
  string(4) "html"
}
于 2013-01-09T21:54:43.740 に答える
-1

parse_url はドメインを分割しないため、役に立ちません。

正規表現をお勧めします。www サブドメインのみを使用しているかどうかに応じて、次のようになります。

preg_match(#http(s)?://(www.)?(.+?)\..*#, $subject, $matches)

$matches[3]TLDのサブドメインを含める必要があります

于 2013-01-09T21:14:35.397 に答える