PHP получить параметр из строки URL (не текущей страницы) - PullRequest
0 голосов
/ 28 ноября 2011

Я знаю, что вы можете легко получить параметр со страницы, на которой вы сейчас находитесь, но можете ли вы легко сделать то же самое с любой строкой URL?

Мне нужно извлечь параметр "id" изстрока как https://market.android.com/details?id=com.zeptolab.ctr.paid?t=W251bGwsMSwxLDIxMiwiY29tLnplcHRvbGFiLmN0ci5wYWlkIl0.

Как я могу сделать это с PHP?Есть ли встроенная функция, или я должен использовать регулярное выражение?

Ответы [ 4 ]

4 голосов
/ 28 ноября 2011

Вы можете использовать комбинацию parse_url и parse_str :

$url = 'https://market.android.com/details?id=com.zeptolab.ctr.paid?t=W251bGwsMSwxLDIxMiwiY29tLnplcHRvbGFiLmN0ci5wYWlkIl0';
$arr = parse_url($url);
parse_str($arr['query']);
echo $id; //com.zeptolab.ctr.paid?t=W251bGwsMSwxLDIxMiwiY29tLnplcHRvbGFiLmN0ci5wYWlkIl0
2 голосов
/ 28 ноября 2011

Да, вы можете.

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
2 голосов
/ 28 ноября 2011

Там parse_url():

function extractGETParams($url)
{
  $query_str = parse_url($url, PHP_URL_QUERY);
  $parts = explode('&', $query_str);
  $return = array();

  foreach ( $parts as $part )
  {
    $param = explode('=', $part);
    $return[$param[0]] = $param[1];
  }

  return $return;
}

$url = 'http://username:password@hostname/path?arg=value&arg2=value2#anchor';

var_dump( extractGETParams($url) );

На Codepad.org: http://codepad.org/mHXnOYlc

0 голосов
/ 28 ноября 2011

Вы можете использовать parse_str () , а затем получить доступ к переменной $ id.

...