PHP を使用して URL から情報を抽出したいと考えています。URLから値「マット」を取得するにはどうすればよいですか:
www.shareit.me/matt
また、そもそもそこに値があるかどうかを確認するにはどうすればよいですか?
PHP を使用して URL から情報を抽出したいと考えています。URLから値「マット」を取得するにはどうすればよいですか:
www.shareit.me/matt
また、そもそもそこに値があるかどうかを確認するにはどうすればよいですか?
ここで物事を過度に複雑にする必要はありません:
$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
出来上がり、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
parse_url関数を使用できます。これにより、URLに関するすべての情報を含む配列が返されます。このようなものはおそらくあなたが望むものです:
echo explode('/', parse_url('http://www.shareit.me/matt')['path'])[1];
スクリプトの参照に使用されるURLを取得する場合は、$_SERVER['REQUEST_URI']
変数を使用します。あなたの場合、それはこれを返します:
/matt
ただし、実際に必要な情報を除外する必要があります。そのためには、preg_match
または別の方法を使用できます。$_SERVER
変数の詳細については、このページを参照してください。
URLを含む文字列の情報を取得する場合は、次を使用できます。
explode( "/"、$ url);
$url = "http://www.shareit.me/matt";
$parts = Explode('/', $url);
$id = $parts[count($parts) - 1];
ところで、文字列から部分を取得します。
で正規表現を使用できますpreg_match
preg_match("/.\/(.*)$/",$url,$matches);
必要なものが含まれているかどうかをチェックするよりも