Jump to content


Photo

Algum programador PHP expert?

php funcoes javascript

  • Faça o login para participar
2 replies to this topic

#1 GreenOverflow

GreenOverflow

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Masculino

Posted 24/03/2016, 12:41

Boa tarde galera, é o seguinte, eu ja tinha criado um post relacionado, eu tenho urgencia nesse código e como ja tinha feito uma vez com um cara aqui do fórum eu vou pagar pra quem me ajudar, pois como eu disse tenho urgencia nesse código, bom é o seguinte, tenho um script funcionando perfeitamente em javascript, onde você coloca a conexão em bytes da internet e o tamanho do arquivo e ele informa o tempo estimado para baixar este arquivo, só que eu queria que funcionasse em PHP, alguém ai consegue transformar ou reprogramar o código para funções em PHP? segue o código:

http://pastebin.com/ctA09Y8S

Eu consegui converter metade, porém tem algumas funções que não consegui, olhem: 

http://pastebin.com/Bfare4CT

Quem me ajudar, entrarei em contato para dar uma recompensa em dinheiro, por favor eu preciso muito desse código, desde já agradeço, fiquem com Deus.



#2 Goku Jr

Goku Jr

    Nilson

  • Usuários
  • 3757 posts
  • Sexo:Masculino

Posted 24/03/2016, 20:43

Cara a questão não é nem por dinheiro, mesmo porque aqui é um fórum para compartilhar idéias, ajudar, etc....

Mas só uma pergunta: porque exatamente você precisa converter em PHP?

 

Mas em fim, pelo que vejo nada mais é que um for comum onde varre uma matriz e a partir desta matriz que contém os valores vai fazendo as demais contas. Contém uma pergunta simples, onde se segundos for igual a zero, para o for.

Ex:

<?php
 for ($i = 0; $i < count($units); $i++) {
  $n = $seconds % $units[$i];
  # E ASSIM VAI....
 }
?>

 

O função "array.unshift" insere valores no início de uma matriz, veja mais em "http://php.net/manual/pt_BR/function.array-unshift.php" 

 

O resto acredito que você consiga fazer, qualquer coisa é só adicionar sua dúvida.

 

Abraços !!!


-----------------------------------------------------------------------
PALMEIRAS - Primeiro campeão do mundo em 1951

#3 GreenOverflow

GreenOverflow

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Masculino

Posted 25/03/2016, 01:46

Amigo não é uma questão de PAGAR, é que eu não vejo mais do que justo uma recompensa, e não faço nada por obrigação é de coração mesmo, pois eu preciso muito mesmo desse código e eu agradeço por ter respondido, fico muito grato, mais voltando ao assunto, eu vi que vc criou um laço mais creio que não é bem isso que o começo do código pede, eu creio que seria um foreach o ideal, olha até onde cheguei, ve se pode me ajudar a terminar:

<?

function tamanho($conexao, $arquivo){

if($conexao == "56"){$kbps = "56 Kbps";}
if($conexao == "128"){$kbps = "128 Kbps";}
if($conexao == "256"){$kbps = "256 Kbps";}
if($conexao == "512"){$kbps = "512 Kbps";}
if($conexao == "1024"){$kbps = "1 Mbps";}
if($conexao == "2048"){$kbps = "2 Mbps";}
if($conexao == "4096"){$kbps = "4 Mbps";}

if(preg_match("/ B/", $arquivo)){$bytes = "1";}
if(preg_match("/ KB/", $arquivo)){$bytes = "1024";}
if(preg_match("/ MB/", $arquivo)){$bytes = "1048576";}
if(preg_match("/ GB/", $arquivo)){$bytes = "1073741824";}

$arquivo = str_replace(",", ".", $arquivo);
$arquivo = preg_replace("/B|KB|MB|GB/", "", $arquivo);

$segundos = ($arquivo * $bytes) / ($conexao * 1000 / 8);$unidades = array("segundo" => "60", "minuto" => "60", "hora" => "24", "dia" => "365", "ano" => time());$tempo = "";if($segundos > 0 and $segundos < .001){$tempo = "1 segundo";}else{if($segundos < 1){$tempo = round($segundos * 1000)." segundos";}else{if($segundos < 60){$tempo = number_format($segundos, 2, ".", "")." segundos";}

else{

$segundos = round($segundos);

foreach($unidades as $chave => $valor){

$n = $segundos % $valor;
$segundos -= $n;
$segundos /= $valor;
$tempo .= "$n $chave".($n!=1?"s":"").", ";
if($segundos == 0){break;}

}

}}}

return"<b>$kbps</b> - $tempo";}

echo tamanho("2048", "99999 MB");

//Valor retornado: 2 Mbps - 36 segundos, 46 minutos, 17 horas, 4 dias

//O objetivo agora é virar a variável dos avessos, pois é para começar com os "4 dias" e terminar nos "36 segundos", mais não estou conseguindo transformar em array, pois está dentro do foreach, se eu colocar o return dentro ele vai dar um break e não vai printar todo o resultado.

?>

Valeu mano, quebrei a cabeça mas consegui:

 

$n = $segundos % $valor;
$segundos -= $n;
$segundos /= $valor;
$a1[] = "$n $unidade".($n !=1 ? "s" : "")."";
$a2 = array_reverse($a1);
$a3 = array_slice($a2, 0, 3);
if(count($a1) > 2){array_splice($a3, 1, 0, ", ");}
array_splice($a3, -1, 0, " e ");
if($segundos == 0){break;}

Coloquei um laço no final, deu tudo certo, valew, abraço.







Veja alguns posts relacionados com: php, funcoes, javascript

0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq