Foros del Web » Programando para Internet » PHP »

problema con arrays :S

Estas en el tema de problema con arrays :S en el foro de PHP en Foros del Web. tengo un archivo de texto que esta asi: 123.123.123-1 123.222.222-0 127.0.0.1-0 192.168.0.1-0 45.85.248.15-1 y tengo esto: revizar.php <? $some_arr = file("a.txt"); $a = "127.0.0.1"; $ar ...
  #1 (permalink)  
Antiguo 22/09/2008, 00:31
 
Fecha de Ingreso: septiembre-2008
Mensajes: 242
Antigüedad: 15 años, 7 meses
Puntos: 3
problema con arrays :S

tengo un archivo de texto que esta asi:

123.123.123-1
123.222.222-0
127.0.0.1-0
192.168.0.1-0
45.85.248.15-1

y tengo esto:
revizar.php

<?

$some_arr = file("a.txt");

$a = "127.0.0.1";
$ar = array("$a-1", "$a-0");

$a0 = in_array($ar[0], $some_arr);
$a1 = in_array($ar[1], $some_arr);

if($a1 == true)
{
echo "si";
}
else
{
echo "no";
}

?>

si revizamos bien en $some_arr, existe 127.0.0.1-0 y el $ar[1] es 127.0.0.1-0, entoces por que en el if me tira el else, siendo que deberia ser true?
  #2 (permalink)  
Antiguo 22/09/2008, 00:34
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 8 meses
Puntos: 416
Respuesta: problema con arrays :S

Talvez este tomando el $a-1 como una resta.
Trata:
$ar[0] = $a.'-1';
$ar[1] = $a.'-0';
  #3 (permalink)  
Antiguo 22/09/2008, 03:33
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema con arrays :S

Si ves la documentación de la función file, verás que...
Cita:
Cada línea en la matriz resultante incluye el final de línea, a menos que se use FILE_IGNORE_NEW_LINES
De modo que $some_arr[1] no es "127.0.0.1-0" sino "127.0.0.1-0\n".

Para leer el fichero sin añadir saltos de línea al final de cada elemento de la matriz, usa:

Código PHP:
<?php
$some_arr 
file("a.txt"FILE_IGNORE_NEW_LINES);
//...
  #4 (permalink)  
Antiguo 22/09/2008, 13:01
 
Fecha de Ingreso: septiembre-2008
Mensajes: 242
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: problema con arrays :S

ahi lo arregle :P


Código PHP:
<?

$file 
file("a.txt");
$cnt count($file);

$a '127.0.0.1';
$ars0 ''.$a.'-1';
$ars1 ''.$a.'-0';

$ar0 rtrim($ars0"\r\n");
$ar1 rtrim($ars1"\r\n");

for(
$i=0$i<=$cnt$i++)
{
$c rtrim($file[$i], "\r\n");
if(
$c == $ar0 || $c == $ar1)
{
$b $c;
break;
}
else
{
countinue;
}

}

echo 
$b;

?>

Última edición por AlvaroX; 22/09/2008 a las 14:34
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:51.