Ir para conteúdo

POWERED BY:

Arquivado

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

gabrielfalieri

Undefined offset

Recommended Posts

Bom dia galera.

Eu estou tendo que ler o conteúdo de um arquivo no formato

Quando ele chega no final, da ultima linha do arquivo, ele da erro pois parece que pega uma linha em branco.

Notice: Undefined offset: 1

#NOTE: Changing any part of this file will invalidate the license.
#Wed Jun 15 16:36:35 UTC 2016
site-servers-licensed=1
organization-type=COMMERCIAL
issued-by=PaperCut Software International Pty. Ltd.
edition=MF
advanced-clients-licensed=2
modules-licensed=PRINT
licensed-version=16
release-stations-licensed=1
issued-date=2016-06-15
order-reference=95188
customer-reference-no=C-GVL2X5
users-purchased=150
expiry-date=indefinite
unique-id=1466008595627
created-by=brenda.beenken@papercut.com
updates-expiry-policy=ALLOW_UPDATES_WITHIN_SAME_VERSION
support-expiry-date=2017-06-15
users-licensed=150
ext-devices-samsung=2
organization-name=Costazul Alimentos Eireli
updates-expiry-date=2017-06-15
signature=XS3cqhtTV9Xxbfd5ysRue2/fQ/ycWKEk8YYZkSMQuX/O83++++cVLklGFWiTEjAL9qiIyOelPmjOrtLFDa/L7E4Og95HfT65jw7Q2QDD/CccBnQZNfOKleGshBNaiNELmq3JlaL1r2NdryzPJOIaDcKasow4o10vZgdgKUt07/o=
public function pegarDadosArquivo($arquivo) {

        try {

            //Abre o arquivo
            $file = fopen($arquivo, "r+");

            //lê arquivo até o final
            while (!feof($file)) {
                
                $linha = fgets($file, 4096);
                $ignorado = "#";
                $pos = strripos($linha, $ignorado); //verificamos se ele está na linha, se estiver é ignorado
                if ($pos === false) {
                    
                    $separacao =  explode("=",$linha);
                    $matriz = array(
                        "campos" => array($separacao[0]),
                        "values" => array($separacao[1])
                    );
                }
            }
            //fecha o ponteiro do arquivo
            fclose($file);
        } catch (Exception $ex) {
            echo $ex->getMessage();
        }
    }

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valide se o explode irá "funcionar" ou se realmente "funcionou".

 

Pode ser de duas formas, validar se existe o elemento do explode antes do explode:

if(strpos($linha , '=') !== false) {
}

Ou, após o explode, conforme descrito no manual (a parte em negrito e sublinhada):

 

If delimiter is an empty string (""), explode() will return FALSE. If delimiter contains a value that is not contained in string and a negative limit is used, then an empty array will be returned, otherwise an array containing string will be returned.

 

Ou seja:

$separacao = explode('=' , $linha);
if($linha != $separacao[0]) {
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

A primeira eu fui de cabeça e errei a ordem dos parâmetros, seria o seguinte:

if(strpos($linha , '=') !== false) {
}

Corrigi para evitar possíveis eventualidades.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por DouglasAlmeida2016
      Pessoa, boa tarde!
      Preciso de uma ajuda, estou tentando exibir o resultado de um select realizado pelo PHP em um arquivo externo, no um formulário HTML. Estou usando JSON para receber as variáveis, porém nada é exibido.
      Alguém pode me ajudar a descobrir o erro ou me explicar uma forma melhor de exibir os dados, já pesquisei e não encontrei nada!
      Muito obrigado!
      Página do formulário.
      function Select_Produto(valor){ IDProduto = valor; if(window.XMLHttpRequest) { req = new XMLHttpRequest(); } else if(window.ActiveXObject) { req = new ActiveXObject("Microsoft.XMLHTTP"); } var url = "PHP/Produto_SelectVar.php?valor="+valor; req.open("Get", url, true); req.onreadystatechange = function() { if(req.readyState == 4 && req.status == 200) { var resposta = JSON.parse(req.responseText); document.getElementById('Dados_cProd').value = resposta.Dados_cProd; document.getElementById('Dados_xProd').value = resposta.Dados_xProd; document.getElementById('Dados_NCM').value = resposta.Dados_NCM; document.getElementById('Dados_EXTIPI').value = resposta.Dados_EXTIPI; document.getElementById('Dados_CEST').value = resposta.Dados_CEST; document.getElementById('Dados_CFOP').value = resposta.Dados_CFOP; document.getElementById('Dados_uCom').value = resposta.Dados_uCom; document.getElementById('Dados_qCom').value = resposta.Dados_qCom; document.getElementById('Dados_vUnCom').value = resposta.Dados_vUnCom; document.getElementById('Dados_uTrib').value = resposta.Dados_uTrib; document.getElementById('Dados_qTrib').value = resposta.Dados_qTrib; document.getElementById('Dados_vUnTrib').value = resposta.Dados_vUnTrib; document.getElementById('Dados_vSeg').value = resposta.Dados_vSeg; document.getElementById('Dados_vDesc').value = resposta.Dados_vDesc; document.getElementById('Dados_vFrete').value = resposta.Dados_vFrete; document.getElementById('Dados_cEAN').value = resposta.Dados_cEAN; document.getElementById('Dados_cEANTrib').value = resposta.Dados_cEANTrib; document.getElementById('Dados_vOutro').value = resposta.Dados_vOutro; document.getElementById('Dados_vProd').value = resposta.Dados_vProd; document.getElementById('Dados_xPed').value = resposta.Dados_xPed; document.getElementById('Dados_nItemPed').value = resposta.Dados_nItemPed; document.getElementById('Dados_nFCI').value = resposta.Dados_nFCI; document.getElementById('Dados_NVE').value = resposta.Dados_NVE; } } req.send(null); } Consulta echo $array = array('Dados_cProd'=>$Dados_cProd, 'Dados_xProd'=>$Dados_xProd, 'Dados_NCM'=>$Dados_NCM, 'Dados_EXTIPI'=>$Dados_EXTIPI, 'Dados_CEST'=>$Dados_CEST, 'Dados_CFOP'=>$Dados_CFOP, 'Dados_uCom'=>$Dados_uCom, 'Dados_qCom'=>$Dados_qCom, 'Dados_vUnCom'=>$Dados_vUnCom, 'Dados_uTrib'=>$Dados_uTrib, 'Dados_qTrib'=>$Dados_qTrib, 'Dados_vUnTrib'=>$Dados_vUnTrib, 'Dados_vSeg'=>$Dados_vSeg, 'Dados_vDesc'=>$Dados_vDesc, 'Dados_vFrete'=>$Dados_vFrete, 'Dados_cEAN'=>$Dados_cEAN, 'Dados_cEANTrib'=>$Dados_cEANTrib, 'Dados_vOutro'=>$Dados_vOutro, 'Dados_vProd'=>$Dados_vProd, 'Dados_xPed'=>$Dados_xPed, 'Dados_nItemPed'=>$Dados_nItemPed, 'Dados_nFCI'=>$Dados_nFCI, 'Dados_NVE'=>$Dados_NVE); echo json_encode($array);
    • Por 006pedrosa
      Bom dia, estou desenvolvendo um sistema em php e tive que fazer um auto-complete, para isso utilizei o select2 ( http://select2.github.io/ ).
      O meu problema é o seguinte, tenho dois selects, no primeiro eu preciso pegar o nome de um estado, já no segundo eu preciso pegar apenas as cidades referentes a este estado. Não tenho muito conhecimento em JavaScript, será que alguém pode me dar uma dica?
      Agradecido pela atenção de todos!
    • Por MariaLS1997
      ------------------------------------------------------------------------------------------------------------------------
      Quando clica no botão de alterar é redirecionado para uma página em branco e não atualiza os dados.
      -------------------------------------------------------------------------------------------------------------------------



      <?php
      include("conexao.php");
      ?>
      <?php
      [FONT=Trebuchet MS] // Recupera os dados dos campos
      $id = $_POST['id'];
      $nome = $_POST['nome'];
      $apelido = $_POST['apelido'];
      $email = $_POST['email'];
      $foto = $_FILES["foto"];
      $curso = $_POST['curso'];
      $turma = $_POST['turma'];
      $data_nascimento = $_POST['data_nascimento'];
      $telefone= $_POST['telefone'];
      $responsavel= $_POST['responsavel'];
      $contato_responsavel= $_POST['contato_responsavel'];
      $login= $_POST['login'];
      $senha= MD5 ($_POST['senha']);

      // Se a foto estiver sido selecionada
      if (!empty($foto["name"])) {

      // Largura máxima em pixels
      $largura = 128;
      // Altura máxima em pixels
      $altura = 227;
      // Tamanho máximo do arquivo em bytes
      $tamanho = 3000;

      // Verifica se o arquivo é uma imagem
      if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $foto["type"])){
      $error[1] = "Isso não é uma imagem.";
      }

      // Pega as dimensões da imagem
      $dimensoes = getimagesize($foto["tmp_name"]);

      // Verifica se a largura da imagem é maior que a largura permitida
      if($dimensoes[0] > $largura) {
      $error[2] = "A largura da imagem não deve ultrapassar ".$largura." pixels";
      }

      // Verifica se a altura da imagem é maior que a altura permitida
      if($dimensoes[1] > $altura) {
      $error[3] = "Altura da imagem não deve ultrapassar ".$altura." pixels";
      }

      // Verifica se o tamanho da imagem é maior que o tamanho permitido
      if($arquivo["size"] > $tamanho) {
      $error[4] = "A imagem deve ter no máximo ".$tamanho." bytes";
      }

      // Se não houver nenhum erro
      if (count($error) == 0) {

      // Pega extensão da imagem
      preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $foto["name"], $ext);

      // Gera um nome único para a imagem
      $nome_imagem = md5(uniqid(time())) . "." . $ext[1];

      // Caminho de onde ficará a imagem
      $caminho_imagem = "fotos/" . $nome_imagem;

      // Faz o upload da imagem para seu respectivo caminho
      move_uploaded_file($foto["tmp_name"], $caminho_imagem);

      //***************************** Insere os dados no banco ***********************************************
      // Insere os dados no banco
      $up = "UPDATE aluno SET nome='$nome',apelido='$apelido',email='$email',foto='$caminho_imagem',
      curso='$curso', turma='$turma', data_nascimento='$data_nascimento',telefone='$telefone',
      responsavel='$responsavel',contato_responsavel ='$contato_responsavel',
      login ='$login', senha ='$senha' WHERE id='$id'";[/LEFT]
      $sql_ = mysql_query($up);

      // Se os dados forem inseridos com sucesso
      if ($sql){
      echo "Você foi cadastrado com sucesso.";


      }
      }

      // Se houver mensagens de erro, exibe-as
      if (count($error) != 0) {
      foreach ($error as $erro) {
      echo $erro . "<br />";
      }

      } }
      ?>



×

Informação importante

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