2010-05-13 3 views
0

при работе на Facebook Connect, я должен получить маркер доступа из URL (не в самом URL, но в файле подкладке с этим URL), так это то, что я делаюразбора через HTML с PHP

$url = "https://graph.facebook.com/oauth/access_token?client_id=".$facebook_app_id."&redirect_uri=http://www.example.com/facebook/oauth/&client_secret=".$facebook_secret."&code=".$code;" 

function get_string_between($string, $start, $end){ 
    $string = " ".$string; 
    $ini = strpos($string,$start); 
    if ($ini == 0) return ""; 
    $ini += strlen($start); 
    $len = strpos($string,$end,$ini) - $ini; 
    return substr($string,$ini,$len); 
} 


$access_token = get_string_between(file_get_contents($url), "access_token=", "&expires="); 

Это выглядит уродливым и неуклюжим, есть лучший способ сделать это? Спасибо .

ответ

2

Вы можете использовать функцию PHP parse_str

"https://graph.facebook.com/oauth/access_token?client_id=".$facebook_app_id."&redirect_uri=http://www.example.com/facebook/oauth/&client_secret=".$facebook_secret."&code=".$code; 

parse_str(file_get_contents($url)); 

echo $access_token; 

Из PHP инструкции: (link)

недействительным parse_str (строка $ Обл [, массив & $ обр])

Анализирует ул как будто это строка запроса , переданная через URL-адрес, и устанавливает переменных в текущей области.

+0

Awesome !! он работал как шарм :) спасибо – salmane

Смежные вопросы