Script - Conteudo Array

1. Script - Conteudo Array

E Barbosa Junior
tux-junior

(usa Debian)

Enviado em 24/07/2009 - 12:42h

Abaixo o script.

<?php
$a = $_POST['a'];
$b = $_POST['b'];
if ( $a == "casa")
$opcao = ("A casa é $b");
else {
$opcao = ("A casa não é $b");
}
$array = file("casa.txt");
if (in_array("$opcao", $array))
echo $opcao;
else
echo "Nao foi encontrado o OPÇÃO";
?>

No meu texto tenho as seguintes frases

A casa é amarela
A casa não é amarela

O que estou querendo fazer é comparar uma das opçoes passadas com o conteudo do array que foi obtido atraves de um texto.


  


2. Seu caso tem solucao

Gedalias Costa
gedalinux

(usa Slackware)

Enviado em 25/07/2009 - 11:49h

vc não está localizando corretamente este texto porque
a comparação feita em in_array é sequencialmente e com cada
valor de texto correspondendo exatamente ao texto no elemento
buscado no momento. A melhor maneira de vc ver isto é debugando
com var_dump, por exemplo.

o var_dump($array) irá lhe mostrar um caracter a mais, que no seu exemplo
"a casa é amarela" contem apenas 16 caracteres porem por todo o array
vc perceberá que suas frases terão o comprimento (frase+1), exceto para o
ultimo elemento que terá o comprimento (frase);
para vc ter uma visao mais clara aumente o numero de frases e veja este acrescimo
de um espaço em branco no final da frase trazido por file() para o elemento atual.

Mas o problema é gerado extamente no file(), conforme documentado no php.net, veja sempre a documentação do php, existe o parametro "flags"

FILE_IGNORE_NEW_LINES

$array = file("casa.txt",FILE_IGNORE_NEW_LINES);

e os espaços em branco sumirão, dái seu estudo pode continuar.


Estude os outros exemplos de flags








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts