Как извлечь две переменные из этой строки в PHP - PullRequest
0 голосов
/ 18 декабря 2010

У меня есть такая строка:

oauth_token=1%2F7VDUGD4tKIqSu4jX4DoeCRD1KbqqgTxFnFFliVgbSss&oauth_token_secret=Rk%2FwejMIg6t%2BFphvRd%2BZ5Wkc

Как мне извлечь две переменные oauth_token и oauth_token_secret из строки about с помощью PHP

ПРИМЕЧАНИЕ: это неисходя из URL (мы можем сделать это, используя $_GET)

Спасибо

Ответы [ 4 ]

4 голосов
/ 18 декабря 2010

Используйте parse_str() для анализа параметров строки запроса.

// Extract into current scope, access as if they were PHP variables
parse_str($str);
echo $oauth_token;
echo $oauth_token_secret;

// Extract into array
parse_str($str, $params);
echo $params['oauth_token'];
echo $params['oauth_token_secret'];

Вы можете пожелать urldecode() переменных после их извлечения.

1 голос
/ 18 декабря 2010

попробуйте

$text = "oauth_token=1%2F7VDUGD4tKIqSu4jX4DoeCRD1KbqqgTxFnFFliVgbSss&oauth_token_secret=Rk%2FwejMIg6t%2BFphvRd%2BZ5Wkc"
;
$i=explode('&',$text);
$j=explode('=',$i[0]);
$k=explode('=',$i[1]);
echo $j[0]."<br>";
echo $j[1]."<br>";
echo $k[0]."<br>";
echo $k[1]."<br>";
0 голосов
/ 18 декабря 2010

Лучший способ (наиболее повторно используемый) - использовать функцию, которая возвращает массив, аналогичный $ _GET.

edit Для этого уже есть функция: http://www.php.net/manual/en/function.parse-str.php Это также будет работать с массивом get values.

$ values ​​= array ();parse_str ($ query_strng, $ values);

Довольно уродливая функция, почему она не может просто вернуть массив значений.Он либо вставляет их в отдельные переменные, либо вам нужно передать ссылку.Давай на php, ты можешь сделать лучше./ Декламация

0 голосов
/ 18 декабря 2010

1, разделите две части строки $,

$str_array = explode('&',$string);

2, получить часть после знака "=", поэтому для части oauth_token:

 $oauth_token_array = explode('=',$str_array[0]);
 $oauth_token = $oauth_token_array[1];

РЕДАКТИРОВАТЬ: игнорировать это, это определенно многословно. BoltClock - это решение.

...