Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde galera;
Alguém me ajuda
Eu estou integrando o Instagram em meu sistema e precisava pegar o token do **"[http://localhost/login/admin/index.php?id=social#access_token=32](http://localhost/login/admin/index.php?id=social&access_token=#access_token=3225360069.6bb2e5f.7dad79f0da5e46ccad645f75f7f83130)xxxxxxxxxxxxxxxxx**" e jogar em uma variável através do **$_GET**.
Eu só consigo se eu substituir o **"#" **do access_token por **"&"** diretamente na barra de endereços.
Queria saber se tem alguma forma no PHP que eu pudesse substituir o **"#"** por **"&"** ou que eu possa remover o **"#access_token=" **e deixar somente o token.
Gerei um arquivo "token.php" que captura o token gerado, porém ele captura o **"#access_token=32xxxxxxxxxxxxxxxxx"** inteiro, conforme abaixo:
<?php
$token = $_GET['access_token'];
header("location:../../../index.php?id=social&access_token=$token");
?>
Se remover esse **"#access_token="** já resolveria meu problema, pois jogaria somente o "**32xxxxxxxxxxxxxxxxx" **dentro da variável $token.
Alguém teria uma solução?>
7 minutos atrás, marsolim disse:
talvez...
$full_token = explode('#access_token=', $_GET['access_token']);
$token = $full_token[1];
ou se a parte antes do token nunca mudar
$token = str_replace('http://localhost/login/admin/index.php?id=social#access_token=', '', $_GET['access_token']);
Ainda não funcionou amigo, ele continua puxando o "#access_token="dá um echo $token; pra ver o que aparece e cola aqui pra gente substituindo as partes sensiveis por x claro
<?php
$url = 'http://localhost/login/admin/index.php?id=social#access_token=32xxxxxxxxxxxxxxxxx';
parse_str( parse_url( $url, PHP_URL_FRAGMENT ), $result );
var_dump( $result[ 'access_token' ] );>
Em 13/04/2017 at 19:59, Carlos Coelho disse:
<?php
$url = 'http://localhost/login/admin/index.php?id=social#access_token=32xxxxxxxxxxxxxxxxx';
parse_str( parse_url( $url, PHP_URL_FRAGMENT ), $result );
var_dump( $result[ 'access_token' ] );
Ainda não rolou amigo
O Access Token vem do aplicativo do Instagram.
O unico link que é fixo é a parte "http://localhost/login/admin/index.php?id=social" o #access_token=**32xxxxxxxxxxxxxxxxx **vem do aplicativo.
Ele não está removendo o # e nem o #access_token. Precisava apenas da numeração após o "="Tente usando parse_url.
>
1 hora atrás, Maykel-ctba disse:
Tente usando parse_url.
http://php.net/manual/pt_BR/function.parse-url.php
Poderia me ajudar como eu poderia pegar apenas o conteúdo após o #?
No exemplo 01 da página da documentação tem exatamente o que você precisa! ;-)
Ainda não rolou!
Estou tentando pesquisar outras formas aqui
Tenta expressão regular.
Pq não usar o str_replace?
<?php
$stringToClean = "#access_token=32xxxxxxx";
$stringClean = str_replace ('#access_token=', '', $stringToClean);
echo $stringClean; //32xxxxxxx>
1 minuto atrás, gabrieldarezzo disse:
Pq não usar o str_replace?
<?php
$stringToClean = "#access_token=32xxxxxxx";
$stringClean = str_replace ('#access_token=', '', $stringToClean);
echo $stringClean; //32xxxxxxx
Esse "#access_token=32xxxxxxx" está vindo da URL da barra de navegação, ele não é fixo.
Com JavaScript eu consegui capturar a URL inteira da barra de navegação e colocar em uma variável $url.
Como posso aplicar o str_replace na variável $url?
Tentei usar o parse_url na variável para pegar apenas o que estava após o # mas não funcionou.
Segue codigo abaixo que fiz para capturar a URL
<?php
$url = '<script>document.write(document.URL);</script>';
echo $url;
?>Fiz o teste com o str_replace digitando o endereço fixo e vi que resolverá meu problema.
Só que a variável $url não está passando pelo str_replace
Se passar, já resolve o problema
defina 'passando'
Olha o que eu fiz, só que ta trazendo a URL inteira no resultado, ou seja, não remove o #access_token
<?php
$url = '<script>document.write(document.URL);</script>';
$stringToClean = $url;
$stringClean = str_replace ('#access_token=', '', $stringToClean);
echo $stringClean;
?>Substituir a stringToClean por isso?
http://stackoverflow.com/questions/6768793/get-the-full-url-in-php
ainda n entendi como o 'resultado' funcinou
Já vi transformar dados do PHP para JS
Agora o inverso nunca vi (sem utilizar ajax)
o que acontece que pro php o valor de $url é '<script>document.write(document.URL);</script>' porque isso que foi passado pra essa var, o php não reconhece o link na string, um jeito de contornar talvez seja se der passar a url pra uma textbox e por $_POST[''] pegar esse valor ou então um jeito de passar por parametro e pegar com $_GET['']
@marsolim queria dizer algo como...
isso:
$url = '<script>document.write(document.URL);</script>';
Não tem o menor sentido... (Misturar script server side com Client Side)
Toma ai ...
<?php
$url = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$stringToClean = $url;
$stringClean = str_replace ('#access_token=', '', $stringToClean);
echo $stringClean;>
2 minutos atrás, gabrieldarezzo disse:
@marsolim queria dizer algo como...
isso:
$url = '<script>document.write(document.URL);</script>';
Não tem o menor sentido... (Misturar script server side com Client Side)
Toma ai ...
<?php
$url = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$stringToClean = $url;
$stringClean = str_replace ('#access_token=', '', $stringToClean);
echo $stringClean;
Sim, eu ja tentei fazer isso também, só que através do "$_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];" ele não traz as informações após o #access_tokententa $url = basename($_SERVER['REQUEST_URI']);
>
6 minutos atrás, marsolim disse:
tenta **$url = basename($_SERVER['REQUEST_URI']);**
Ele puxa só "token.php"Se o #access_token=32xxxxx é criado após o php 'cuspir' o html... nada mais você pode fazer (com php)
Ai só com JavaScript xD
<?php
$url = "http://localhost/login/admin/index.php?id=social#access_token=32xxxxxxxxxxxxxxxxx";
$urlFragmento = parse_url($url, PHP_URL_FRAGMENT);
$urlFragmento = str_replace ('access_token=', '', $urlFragmento);
echo $urlFragmento; // * Resultado: 32xxxxxxxxxxxxxxxxx
?>
**EDIT**
Ops, vi que a situação mudou uhahuauhauh vou pensar em algo!Tive uma idéia... primitiva, mas tive.
Pegue esta URL via javascript (já que o Anchor é comportamento do navegador, não do servidor), e via ajax, execute as limpezas (se quiser fazer no js mesmo, pode fazer, mas aí não sei como faz... mas eu mandaria para o PHP com a URL captada no JS).
@Maykel-ctba fala isso não broo doí meu coração..
@diogosilvasantana
Pode explicar o objetivo de toda essa labaça de códigos que estamos fazendo?
O motivo do #access_token= aparecer ? (é um evento ? O que faz isso disparar?)
O que você pretende fazer com essa url 'tratada'?
talvez...