Ir para conteúdo
Fórum Script Brasil
  • 0

Imprimir resultados em rempo real


Doctor X

Pergunta

Olá Pessoal,

Bom sou iniciante no php e estou começando fazer alguns cógidos para ir treinando devagar.

tenho aqui um código simples, porém não está comportando da maneira como gostaria.

O código simplesmente imprime um nome, dá um sleep de 1 segundo e imprime o próximo nome, assim até terminar.

Meu problema é que, eu gostaria de ver os nomes sendo impressos em tempo real, do jeito que tá, o cógido processa tudo pra só no final mostrar o resultado. gostaria que os nomes fossem sendo impressos em tempo real, como se fosse um programinha em C ou shell script.

mas não faço a menor idéia de como fazer isso.

segue o código:

index.php

<!DOCTYPE html>
<html>
<head>
        <meta charset=utf-8 />
        <title>Testando php...</title>
        <!-- ==teste de css== -->
        <style type="text/css" media="screen">
                body {
                        width: 800px;
                        margin: 0 auto;
                }
                h1 {
                        text-align: center;
                        font-size: 26px;
                        font-family: Arial;
                }
                textarea {
                        width: 50%;
                        height: 500px;
                        text-align: center;
                        float: left;

                        background-color: #ffffff;
                  border: 1px solid #cccccc;
                  -webkit-border-radius: 3px;
                     -moz-border-radius: 3px;
                          border-radius: 3px;
                  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
                     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
                          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
                  -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
                     -moz-transition: border linear 0.2s, box-shadow linear 0.2s;
                      -ms-transition: border linear 0.2s, box-shadow linear 0.2s;
                       -o-transition: border linear 0.2s, box-shadow linear 0.2s;
                          transition: border linear 0.2s, box-shadow linear 0.2s;
                }
                input[type=text] {
                        background-color: #ffffff;
                        width: 40%;
                        height: 20px;
                        margin-left: 15px;
                        margin-bottom: 10px;
                  border: 1px solid #cccccc;
                  -webkit-border-radius: 3px;
                     -moz-border-radius: 3px;
                          border-radius: 3px;
                  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
                     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
                          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
                  -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
                     -moz-transition: border linear 0.2s, box-shadow linear 0.2s;
                      -ms-transition: border linear 0.2s, box-shadow linear 0.2s;
                       -o-transition: border linear 0.2s, box-shadow linear 0.2s;
                          transition: border linear 0.2s, box-shadow linear 0.2s;
                }
                textarea:focus, input[type=text]:focus {
                        border-color: rgba(82, 168, 236, 0.8);
                          outline: 0;
                          outline: thin dotted \9;
                          /* IE6-9 */

                          -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
                             -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
                                  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
                }
                input[type=submit] {
                        margin-left: 125px;
                }
                div {
                        float: right;
                        width: 40%;
                        margin-top: 20px;
                        margin-right: 50px;
                        font-family: Arial;
                }
        </style>
        
</head>
<body>
        <h1>Imprime nomes (php iniciante)</h1>

        <form method="post" action="final.php">

                <textarea name="data" required id="data">ze
antonio
maria
joao
pedro
joaquim
bruno</textarea>
                <input type="submit" value="Iniciar">

                <div>Teste de impressão de nomes e resultados em tempo real.</div>
        </form>
</body>
</html>
final.php
<?php

error_reporting(-1);
set_time_limit(0);
ignore_user_abort(true);


if(trim($_POST['data']) == "") {
        echo "Sem dados.";
        exit();
}


$data = trim($_POST['data']);

$info = explode("\n", $data);
foreach ($info as $key => $value) {
        echo "Nome: $value <br>";
        sleep(1);
}

Como podem ver, o código é todo processado pra só no final ser mostrado. eu gostaria de acompanhar

a impressão dos nomes em tempo real na página. apenas isso.

Bom, pode ser algo fácil, mas pra quem tá começando ainda é um mistério, por isso conto com a ajuda da galera.

Desde já agradeço!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Não sei se entendi direito mas pelo pouco que sei o php é uma linguagem server-side então quer dizer que o script é rodado no servidor

então para rodar deve-se dar um submit no form -> ele envia a msg -> executa o script -> retorna para o browser em html

você só consegue se mesclar com javascript (jquery)

Abs

Link para o comentário
Compartilhar em outros sites

  • 0

Bom é possivel fazer mas o PHP puro não tem como, o fonseca já explico que o PHP é rodado no servidor. sendo assim o que voc?ê pode fazer é a busca deles com o Ajax / Json e ele vai puxando 1 a 1 ... de uma pesquisada a respeito que vai entende melhor.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...