Muchas gracias a todos, como decía abrahams, el while o un foreach estaba de más.
Y si, los nombres de variables no eran los mejores.
Ya quedo funcionando asi:
Código PHP:
<?php
$directorio = opendir("/var/spool/sms/incoming/"); //ruta actual
while ($archivo = readdir($directorio)) //obtenemos un archivo y luego otro sucesivamente
{
$vlineas = file("/var/spool/sms/incoming/".$archivo);
foreach ($vlineas as $sLinea){
echo "<br/>";
$from = $vlineas[0];
$enviado = $vlineas[3];
$recibido = $vlineas[4];
$imsi = $vlineas[7];
$mensaje= $vlineas[12];
$from_ok = ereg_replace("[^0-9]", "", $from);
$enviado_ok = ereg_replace("[^0-9]", "", $enviado);
$recibido_ok = ereg_replace("[^0-9]", "", $recibido);
$imsi_ok = ereg_replace("[^0-9]", "", $imsi);
echo $from_ok;
echo "<br>";
echo $enviado_ok;
echo "<br>";
echo $recibido_ok;
echo "<br>";
echo $imsi_ok;
echo "<br>";
echo $mensaje;
} //cierro foreach linea
} //cierra while