239

$_POST["url"]いくつかの URL 文字列を値として持つHTML フォーム フィールドがあります。

値の例は次のとおりです。

https://example.com/test/1234?email=xyz@test.com
https://example.com/test/1234?basic=2&email=xyz2@test.com
https://example.com/test/1234?email=xyz3@test.com
https://example.com/test/1234?email=xyz4@test.com&testin=123
https://example.com/test/the-page-here/1234?someurl=key&email=xyz5@test.com

emailこれらの URL/値からパラメーターのみを取得するにはどうすればよいですか?

ブラウザのアドレス バーからこれらの文字列を取得していないことに注意してください。

4

13 に答える 13

485

parse_url()そのためにandを使用できますparse_str()

$parts = parse_url($url);
parse_str($parts['query'], $query);
echo $query['email'];

PHP で動的に取得したい場合は$url、次の質問をご覧ください。

PHP で完全な URL を取得する

于 2012-07-14T03:47:17.973 に答える
134

以降のすべてのパラメータは、配列?を使用してアクセスできます。$_GETそう、

echo $_GET['email'];

URLからメールを抽出します。

于 2012-07-14T03:29:15.770 に答える
50

parse_url()およびparse_str()メソッドを使用します。parse_url()URL 文字列をその部分の連想配列に解析します。URL の 1 つの部分だけが必要なため、ショートカットを使用して、必要な部分だけを含む文字列値を返すことができます。次に、parse_str()クエリ文字列の各パラメーターの変数を作成します。現在のコンテキストを汚染するのは好きではないので、2 番目のパラメーターを指定すると、すべての変数が連想配列に入れられます。

$url = "https://mysite.com/test/1234?email=xyz4@test.com&testin=123";
$query_str = parse_url($url, PHP_URL_QUERY);
parse_str($query_str, $query_params);
print_r($query_params);

//Output: Array ( [email] => xyz4@test.com [testin] => 123 ) 
于 2012-07-14T04:01:07.080 に答える
8

$_GET['email']URLのパラメータに使用します。$_POST['email']スクリプトに投稿されたデータに使用します。または_$REQUEST両方に使用します。また、前述のように、parse_url()URLのすべての部分を返す関数を使用できます。'query'という部分を使用します-そこにあなたの電子メールパラメータがあります。詳細:http://php.net/manual/en/function.parse-url.php

于 2012-07-14T03:56:42.560 に答える
7

?以下のコードを使用して、URL の後に電子メール アドレスを取得できます。

<?php
if (isset($_GET['email'])) {
    echo $_GET['email'];
}

于 2016-02-08T10:18:16.123 に答える