Re: multi-dim array from text file
| From: | Burhan Khalid | Date: | Sat, 27 Mar 2004 14:43:53 +0000 |
| Subject: | Re: multi-dim array from text file | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-181612@lists.php.net to get a copy of this message | ||
Larry Pisani wrote:
Hi, I need to do some text file manipulation of a text file from an html interface. I have a file with multiple lines where each line has 2 fields each (a mac address and an associated vlan). Here's an example of rht text file: /tmp/TEST: ==================== a1b2.c3d4.e5cc VLAN3 a1b2.c3d4.e5dd VLAN4 a1b2.c3d4.e5ee IS a1b2.c3d4.e5ff VLAN6 a1b2.c3d4.e5a1 VLAN7 a1b2.c3d4.e5b2 VLAN8 a1b2.c3d4.e5c3 Printer a1b2.c3d4.e5d4 Guest a1b2.c3d4.e5e5 IS a1b2.c3d4.e5f6 VLAN6 a1b2.c3d4.e5a2 VLAN2 a1b2.c3d4.e5a3 VLAN4 ==================== Being an admin and not a developer of any kind, I'm having trouble reading in the file and being able to output specific lines and fields of a php array.[ snip ] Try this <?php $infile = "/tmp/TEST"; $contents = file($infile); if (!$contents) { die("Could not read ".$infile); }
$tmp = array();$lookup = array(); while(list($num,$line) = each($contents)) {
$tmp = explode(" ",$line);
$lookup[$tmp[0]] = $tmp[1];
}
?>
Now you have an array with the "key" being the mac address, and the value being your vlan, something like this (actual output of the snippet above):
Array
(
[a1b2.c3d4.e5cc] => VLAN3
[a1b2.c3d4.e5dd] => VLAN4
)
You can search this array for the mac address, and then output the associated lan, or you be a bit more on-topic, create a form with the associated data, like so :
<?php
echo '<table border="0">';
echo '<tr><td colspan="2">VLAN Editor</td></tr>';
while(list($mac,$vlan) = each($lookup))
{
echo '<tr><td>';
echo $mac;
echo '</td><td>';
echo '<input type="text" name="'.$mac.'" value="'.$vlan."' />';
echo '</td></tr>';
}
echo '</table>';
?>
You can add the form bits however you like :)
What I want to eventually do is read in the "records" and fields of this file, present it as a form, allow admins to modify the second field and write that back to the text file (while backing up the original file).In order to preserve your original data, I would suggest you make a backup of it first (copy the file if you have to). If you will be doing a lot of read/writes and updates, consider using a database to store the information. [ trimmed rest ] Hope this helps, Burhan