Message-ID: <[EMAIL PROTECTED]>
Date: Sat, 22 Jul 2006 21:31:35 -0400
From: "Dave W" <[EMAIL PROTECTED]>
To: Php-Db <php-db@lists.php.net>
MIME-Version: 1.0
Content-Type: multipart/alternative;
        boundary="----=_Part_157142_2227727.1153618295222"
Subject: making an array from data in textfile

OK, so I have this text file that holds a list of ip addresses like this:
127.0.0.1,127.0.0.1,127.0.0.1,127.0.0.1,127.0.0.1


Which are strings... You with me OK so far ?
Numeric [float] values only have 1 period.
There's no numeric datatype which has 3.

Currently, here is my code:

   $file = 'ip.txt';
   $fh = fopen($file, 'r');
$theData = fread($fh, filesize($file));
fclose($fh);
$ips = array($theData);

Since it's a numeric array,


No, it isn't. It's an array of strings which has numeric indices
(or keys depends what you call em)


I shouldn't need quotes around the ip octets.


Yes, you should : They're strings unless you use inet_pton to convert them to numeric values.


When I try to echo certain parts of the array like:

echo $ips[0];

It's returning the whole array.


If you print_r($ips) you'll see the array structure (View -> Source if you're looking at it in a browser). My guess is your lines aren't terminated in \r\n, which PHP uses to split the lines to array values.

You'll probably have to use some other method such as explode(',', $ips) to break the individual comma separated entries into a set of values. Other methods such as file_get_csv are generally more efficient than reading line by line :
http://uk.php.net/manual/en/function.fgetcsv.php


 The text file is exactly like an array so it
shouldn't be a problem.


It's exactly like a CSV, from the example data you provided.
PS, please don't feel the need to prove it by posting the entire log file ;-)

Cheers - Neil

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to