Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cruzverme

[Resolvido] Transformar uma String em Array

Recommended Posts

Bem Galera, tenho uma String que pego de um servidor via ssh, a string me retorna isto abaixo, como uma string unica e preciso que cada linha desta vire uma frase:

 

0024.a089.8748 C5/0/0/U1   93    2378  299   0    !23881 23991 Nov 23 02:36:13
0021.4338.1c02 C5/0/0/U1   110   4196  874   0     3576  3733  Nov 24 15:23:32
0015.d00c.1d5f C5/0/0/U1   101   3859  1180  0     1780  1979  Nov 23 02:35:29
0023.edae.ef0a C5/0/0/U1   22    2637  434   0     1319  1367  Nov 23 10:21:38
0023.edc8.570a C5/0/0/U1   81    3592  1403  0     1034  1152  Nov 23 02:35:43
0015.cf24.5ffb C5/0/0/U1   30    1849  520   0     929   990   Nov 24 11:02:55
0023.754d.4988 C5/0/0/U1   21    2971  263   0     817   853   Nov 23 02:35:51
0023.edaf.d7c0 C5/0/0/U1   72    3293  648   0     680   781   Nov 24 13:58:52
0015.d060.692f C5/0/0/U1   33    3060  522   0     584   644   Nov 23 02:35:39
0015.ce82.59c6 C5/0/0/U1   175   3357  1512  0     23    314   Nov 23 02:35:38
0021.8097.7e4e C5/0/0/U1   15    3081  346   0     270   310   Nov 23 02:35:31

 

 

Já fiz explode, por ultimo fiz str_split definindo um limite da contagem de caracteres e mesmo assim não vem com as linhas, devido a variação da contagem de caracteres, tem alguma forma de realizar o que quero?

 

Abaixo segue um pedaço do código se necessitarem observar, tem os comentários de algumas coisas que fiz.

 <?php  
     if (ssh2_auth_password($connection, $user, $psk)) {
  
        $cmd = 'show cable flap-list  | I C5/0/0/U1 ';
        $stream = ssh2_exec($connection, $cmd);
        $errorStream = ssh2_fetch_stream($stream, SSH2_STREAM_STDERR);
        if($stream == true){
          stream_set_blocking($stream, true);
          stream_set_blocking($errorStream, true);
 
          $string = str_split(stream_get_contents($stream),78);
          #$explo = explode(" ",stream_get_contents($stream) );
          #echo $explo;
 
          foreach($string as $linha){
            echo $linha;echo "</br>";
		  }
          #echo "\n Output: " . stream_get_contents($stream). " + WTF"  ;
          echo "\nError: " . stream_get_contents($errorStream);
          fclose($errorStream);
    	  fclose($stream);
       }else{
    	echo "N▒o Foi Possivel Executar!";
       }
    } else {
      die('Authentication Failed...');
    }
 ?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite.

 

Aqui no imasters tem vários artigos  sobre isso.. Como é um texto de arquivo, pode usar o fopen sem medo, podes percorrer linha a linha com um conjunto de funções, o artigo no link abaixo tem um exemplo:

https://imasters.com.br/artigo/1134/php/php-lendo-um-arquivo-txt?trace=1519021197&source=single

 

$ponteiro = fopen ($textoPegoDoServer,"r");

 

Pra colocar num array, apenas cria o array, coloca um contador e vai aplicando a variavel..

 

tipo:


$arr = array();
$posicao = 1;
for({comparação linhas} as $linha){
  $arr[$posicao] = $linha;
  $posicao++;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw Galera, consegui realizar aqui. Só pra deixar ok aqui, não se tratava de um arquivo txt, mas sim, de uma chamada direta do comando. Ele só exibe na tela, não gera arquivo nenhum, ainda. Só depois de tratado. Obrigado Pessoal

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala galera, tudo bem?
       
      Tenho o seguinte codigo:
       
       class Data {
      public static function ExibirTempoDecorrido($date)
      {
          if(empty($date))
          {
              return "Informe a data";
          }
          $periodos = array("segundo", "minuto", "hora", "dia", "semana", "mês", "ano", "década");
          $duracao = array("60","60","24","7","4.35","12","10");
          $agora = time();
          $unix_data = strtotime($date);
          // check validity of date
          if(empty($unix_data))
          {  
              return "Bad date";
          }
          // is it future date or past date
          if($agora > $unix_data) 
          {  
              $diferenca     = $agora - $unix_data;
              $tempo         = "atrás";
          } 
          else 
          {
              $diferenca     = $unix_data - $agora;
              $tempo         = "agora";
          }
          for($j = 0; $diferenca >= $duracao[$j] && $j < count($duracao)-1; $j++) 
          {
              $diferenca /= $duracao[$j];
          }
          $diferenca = round($diferenca);
          if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
          return "$diferenca $periodos[$j] {$tempo}";
      }
      }
       
      Funciona redondinho se o valor retornado for de algumas horas, mas...
      Quando passa de dois meses, ele retorna a palavra mess. Deve ser por conta dessa linha
      if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
       
      Quero que modre:
       
      2 meses atrás
      e não
      2 mess atrás.
       
      Espero que tenham entendido.
       
      Valeu
    • Por Carlos Web Soluções Web
      Olá...
      Estou tentando fazer o seguinte !!
      Listando dados em tabela !!
      Gostaria que....se na listagem houver 4 linhas...indepedente de seu número de ID, faça a listagem em ID ser em ordem 1 2 3 4 !!
      Exemplo...se tiver uma listagem de dados que está em ID 1 3 3...faça ficar 1 2 3 !!

       
      echo "<table class='tabela_dados' border='1'> <tr> <td>ID</td> <td>Nome Empresa</td> <td>Responsável</td> <td>Telefone 1</td> <td>Telefone 2</td> <td>E-mail 1</td> <td>E-mail 2</td> <td>Endereço</td> <td>CEP</td> <td>Bairro</td> <td>AÇÃO 1</td> <td>AÇÃO 2</td> </tr> "; $sql = "SELECT ID FROM usuarios_dados WHERE Usuario='$usuario'"; $result = $conn->query($sql); $num_rows = $result->num_rows; $Novo_ID = 1; for ($i = 0; $i < $num_rows; $i++) { $registro = $result -> fetch_row(); $sql2 = "UPDATE usuarios_dados SET ID='$Novo_ID' WHERE ID='$Novo_ID'"; $result2 = $conn->query($sql2); $Novo_ID++; } $sql = "SELECT * FROM usuarios_dados"; $result = $conn->query($sql); if ($result->num_rows > 0) { // output data of each row while($row = $result->fetch_assoc()) { echo "<tr> <td>$row[ID]</td> <td>$row[Nome_Empresa]</td> <td>$row[Responsavel]</td> <td>$row[Telefone_1]</td> <td>$row[Telefone_2]</td> <td>$row[Email_1]</td> <td>$row[Email_2]</td> <td>$row[Endereço]</td> <td>$row[CEP]</td> <td>$row[Bairro]</td> <td> <form method='post' action='Editar_Dados.php'> <input type='hidden' name='usuario' value='$usuario'> <input type='hidden' name='senha' value='$senha'> <input type='hidden' name='ID' value='$row[ID]'> <input type='submit' style='padding: 10px;' value='EDITAR'> </form> </td> <td> <form method='post' action='Deletar_Dados.php'> <input type='hidden' name='usuario' value='$usuario'> <input type='hidden' name='senha' value='$senha'> <input type='hidden' name='ID' value='$row[ID]'> <input type='submit' style='padding: 10px;' value='DELETAR'> </form> </td> </tr> "; } } else { echo "0 results"; } $conn->close();  
    • Por ILR master
      Boa tarde pessoal, tudo bem ?
       
      Eu uso o tinymce para cadastro de textos no meu siite, porém, quero fazer um sistema para que os colunistas possam fazer o próprio post.
      O problema do tinymce, é que ele mantém a formatação do texto copiado, como tamanho de fonts, negritos, etc... Quero que o usuário cole o texto e a própria textarea limpe a formatação para que ele formate como quiser.
       
      A pergunta é:
       
      O tinymce tem uma opção para desabilitar a formatação quando um texto é colocado?
      Tem alguma função via java ou php para retirar a formatação assim que o texto é colado?
      Ou é melhor usar um outro editor?
       
      Agradeço deste já.
    • Por Giovanird
      Olá a todos!
      Tenho uma pagina que possui uma DIV onde coloquei uma pagina PHP.
      Uso a função setInterval para atualizar a pagina inclusa dentro da DIV.
      O problema é que ao acessar o site , a DIV só me mostra a pagina inclusa somente quando completo o primeiro minuto.
      Preciso que a pagina inclusa já inicie carregada
       
      Meu código JavaScript e a DIV com a pagina PHP
       
      <script> function atualiza(){ var url = 'direita.php'; $.get(url, function(dataReturn) { $('#direita').html(dataReturn); }); } setInterval("atualiza()",60000); </script> <div> <span id="direita"></span> </div>  
    • Por ILR master
      Fala pessoal.
       
      Seguinte:
       
      Quero selecionar duas tabelas e mostrar com resultados intercalados. Abaixo segue um código explicando para vcs terem uma ideia.
       
      $consulta = "SELECT A.*, B.* FROM tabela1 A, tabela2 B'";
      $resultado = mysqli_query($conexao, $consulta) or die ("erro");
      while($busca = mysqli_fetch_array($resultado)){
       
      print $busca['cod_evento']; --> traz o código da tabela1 
      print $busca['titulo_evento']; -->  traz o titulo da tabela1
      print $busca['cod_noticia']; --> traz o código da tabela2
      print $busca['titulo_noticia']; --> traz o tituloda tabela2
       
      }
       
      Espero que entendam. Grato
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.