0

LEITURA DE ARQUIVOS

criado por Gustavo Villa em 15/11/2003 3:16pm
Não consigo fazer comparação de String de um array formado por um arquivo.

Abaixo está o exemplo do que desejo fazer...

$nomedoarquivo = "pesquisa.html";
$fp = file($nomedoarquivo); // $fp é o array onde cada linha do arquivo corresponde a um índice dele

$linhas_arq = count($fp);

if ($fp[0] == "<novo>"){
echo $fp[0];
}


O curioso é q ao digitar echo $fp[0]; antes do IF, o que é impresso na tela é <novo>

Por que esta comparação não está funcionando? alguém sabe me dizer?

Lista de Respostas:

0
17/11/2003 3:38pm
(~20 anos atrás)
Victor Henrique respondeu:
Tente verificar se a linha do arquivo não contém, por exemplo, espaços no início ou final. Pode ser também que, dentro do arquivo, você tenha &lt; e &gt;, que são substituídos por <> na hora de enviar para o browser.

0
17/11/2003 4:31pm
(~20 anos atrás)
bom, não sei até que ponto é interessante para você estar fazendo isso
mas antes da verificação você poderia fazer algo como

$nova_var = substr($str, 1 strlen($str)-1);

isso vai remover os dois < e > e dai você trabalha no seu if verificando só o conteúdo da tag.. e na hora de mostrar você trabalha normal.. mostra do jeito que achar melhor..

espero ter ajudado (que aliás deveria ser sempre o intuito dos posts :))

Abraços.

0
17/11/2003 5:30pm
(~20 anos atrás)
Diogo Gomes respondeu:
Não tenho certeza, mas será que não é porque existe um \n no final da linha, tente "<novo>\n"...

0
17/11/2003 8:58pm
(~20 anos atrás)
Silvano Girardi Jr. respondeu:
Tente fazer usando o trim(), exatamente para livrar dos caracteres de quebra:

if (trim($fp[0]) == "<novo>") {
echo "novo... :P";
}

Se você der um strlen no $fp[0], notará que o valor não é 6, como deveria ser.

[z]

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)