2

PHP を使用して URL から情報を抽出したいと考えています。URLから値「マット」を取得するにはどうすればよいですか:

www.shareit.me/matt 

また、そもそもそこに値があるかどうかを確認するにはどうすればよいですか?

4

6 に答える 6

4

ここで物事を過度に複雑にする必要はありません:

$url  = 'www.shareit.me/matt';
$segs = explode('/', $url);
echo $segs[1]; // matt

それが存在するかどうかを確認するのは簡単ですif ( !empty($segs[1]) ) {}

「パス」だけでなく値が必要だとするとmatt、これは次のすべてで機能します。

www.shareit.me/matt // matt
www.shareit.me/matt/photos
www.shareit.me/matt/photos/vacation/nebraska/cows/ // matt
www.shareit.me/matt/photos?vacation=mexico&gallery=donkeyshow // matt
www.shareit.me/matt/loves/cheese // matt

マットがチーズを愛していることを実際に人々に知ってもらいたい場合は、代わりにparse_url()を使用する必要があります。

parse_url('www.shareit.me/matt/loves/cheese', PHP_URL_PATH); // /matt/loves/cheese
于 2013-03-04T17:46:38.833 に答える
3

出来上がり、RTM: http://php.net/manual/en/function.parse-url.php

<?php

$url = 'http://username:password@hostname/path?arg=value#anchor';
print_r(parse_url($url));
echo parse_url($url, PHP_URL_PATH);
?>

上記の例では、次のように出力されます。

Array
(
    [scheme] => http
    [host] => hostname
    [user] => username
    [pass] => password
    [path] => /path
    [query] => arg=value
    [fragment] => anchor
)
/path
于 2013-03-04T17:45:34.150 に答える
2

parse_url関数を使用できます。これにより、URLに関するすべての情報を含む配列が返されます。このようなものはおそらくあなたが望むものです:

echo explode('/', parse_url('http://www.shareit.me/matt')['path'])[1];
于 2013-03-04T17:46:17.613 に答える
1

スクリプトの参照に使用されるURLを取得する場合は、$_SERVER['REQUEST_URI']変数を使用します。あなたの場合、それはこれを返します:

/matt 

ただし、実際に必要な情報を除外する必要があります。そのためには、preg_matchまたは別の方法を使用できます。$_SERVER変数の詳細については、このページを参照してください。

URLを含む文字列の情報を取得する場合は、次を使用できます。

explode( "/"、$ url);

于 2013-03-04T17:47:09.140 に答える
1

コード:

$url = "http://www.shareit.me/matt";

$parts = Explode('/', $url);

$id = $parts[count($parts) - 1];

デモンストレーション:

ところで、文字列から部分を取得します

于 2013-03-04T17:52:18.120 に答える
0

で正規表現を使用できますpreg_match

preg_match("/.\/(.*)$/",$url,$matches);

必要なものが含まれているかどうかをチェックするよりも

于 2013-03-04T17:43:45.330 に答える