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 Pessoal!
Quem pode me ajudar nesta dúvida?
Tenho um scriptzinho em javascript para pegar resolução, e ai armazeno em uma variavel php. E por se tratar de numeros, eu preciso depois manipular esta variavel, mas ela permanece como tipo string, gostaria de transformar ela sem perder seu valor ou formatação para INT.
Tentei isso, mas não rolou, quando mando dar echo na variavel resolução, ele retorna 0.
<?php
$resolucao = "<script language=\"javascript\">var scr = screen.width; document.write(scr);</script>";
settype($resolucao, "integer");
echo $resolucao;
?>
Eu havia tentando deste jeito, mas também não rolou... o método anterior foi o que chegou mais perto:
<?php
$resolucao = "<script language=\"javascript\">var scr = screen.width; document.write(scr);</script>";
$resolucao = (int)$resolucao;
echo $resolucao;
?>
Grato quem puder me ajudar.
Atenciosamente
Lucas Borges
<?php
$resolucao = "<script type='text/javascript'>document.write(screen.width);</script>";
print $resolucao;
?>Obrigado pessoal por dedicar tempo a esta minha dúvida.
Acho que vocês não me entenderam...
Da forma que estou fazendo eu até consigo obter o valor... Por exemplo, aqui no meu monitor este script retorna o valor de 1280, que de fato é...
Bom acontece que ele é retornado em forma de string e não de INT, pois se eu quiser fazer por exemplo:
<?php
$resolucao = "<script language=\"javascript\">var scr = screen.width; document.write(scr);</script>";
$teste = $resolucao + 1;
?>
Lógicamente tendo como base da minha resolução, retornaria 1281, mas ele não retorna pois seria como se eu estivesse somando texto com número.
Acho que fico mais claro.... Tentem reproduzir meu script mas também tentando manipular a variavel $resolução, tentem realizar operações matemáticas com ela, ai verão o que acontece.
Muito obrigado novamente pela atenção.
Abraços
Atenciosamente
Lucas Borges
Oi ! Mr.Borges, como o Fvox já disse, não é possível interpretar javascript no server-side e obter o retorno no server-side como você está tentando fazer, para você fazer o que deseja, terá que ser algo nesse sentido:
<script type="text/javascript">
window.onload = function(){
window.location = 'p.php?width=' + screen.width + '&height=' + screen.height;
}
</script>
Então na página 'p.php', você coloca:
<?php
$Altura = isset( $_GET[ 'height' ] ) ? ( integer ) $_GET[ 'height' ] : 0;
$Largura = isset( $_GET[ 'width' ] ) ? ( integer ) $_GET[ 'width' ] : 0;
Então você vai obter altura / largura do cliente.
Ou salvando em cookies os valores altura/largura e dar um reload na pagina com javascript, o php com $_COOKIE['size']; iria obter esse valor... o que seria um trabalho porco...
>
Ou salvando em cookies os valores altura/largura e dar um reload na pagina com javascript, o php com $_COOKIE['size']; iria obter esse valor... o que seria um trabalho porco...
Não necessariamente .. até que seria uma boa idéia, você ia poder transportar esses dados em quanto seu cliente / usuário navega, então utiliza um .unload() pra quando o navegador for fechado, remover todos os cookies, para gravar os novos.
o "trabalho porco" é no fato que seria necessario a pagina ser atualizada, para que o php le-se o cookie.ou seja fica estranho entrar no site, e depois de tantos segundos ele ser atualizado automaticamente.
Normal .. vários sites que vejo as vezes fazem isso, se você tem uma conexão lenta, claro é um saco ! , mas se sua conexão é boa, eu digo 2mb+ .. você nem repara a diferença .
Da forma que estou fazendo eu até consigo obter o valor...
como fez isso, compartinhe este conhecimento supremo.
> <?php$resolucao = "<script language=\"javascript\">var scr = screen.width; document.write(scr);</script>";
$teste = $resolucao + 1;
?>
Lógicamente tendo como base da minha resolução, retornaria 1281, mas ele não retorna pois seria como se eu estivesse somando texto com número.
isso nunca dara certo, ja que $resolução não retorna valor numerico algum, apenas tem esse valor -> "<script language=\"javascript\">var scr = screen.width; document.write(scr);</script>"
Quanto trasnformar string em int
<?php
$str2 = '12Aeeee';
$int = (int)$str2;
$s = $int+2;
echo $s;
?>Pessoal
Consegui resolver.
Estive analisando o rumo da conversa, lendo as sugestões e do nada consegui enxergar que eu poderia resolver tudo com javascript mesmo...
Mas ainda sim serviu como aprendizado, visto que as sugestões que foram colocadas são ótimas para demais outros casos.
Quero agradecer a paciência de todos!
Atenciosamente
Lucas Borges
----------------------------------------
H. Romeu
Cara
<?php
$resolucao = "<script language=\"javascript\">var scr = screen.width; document.write(scr);</script>";
echo $resolucao;
?>
Desta forma ele escreve minha resolução, que no caso seria 1280. O que não tava rolando era manipular a variável.
Obrigado
Cara, qual a lógica do que você tá tentando fazer?
A conversão com casts retorna 0 porque não há números no início da string.
Você quer tirar tudo e deixar apenas números?
Não entendo o resultado que você quer ter.
EDIT: Agora entendi.
Você quer capturar a resolução do cliente? Tá no caminho errado.
Não se interpreta javascript server-side através do PHP ao armazenar isso numa variável.
[]'s