<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xml:base="https://www.webmaster-forums.net/crss/node/1022185" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title></title>
    <link>https://www.webmaster-forums.net/crss/node/1022185</link>
    <description></description>
    <language>en</language>
          <item>
    <title></title>
    <link>https://www.webmaster-forums.net/web-database-development/working-flatfile-databases#comment-1136865</link>
    <description> &lt;p&gt;Cool, thanks Mark &lt;img src=&quot;https://www.webmaster-forums.net/misc/smileys/big.png&quot; title=&quot;Laughing out loud&quot; alt=&quot;Laughing out loud&quot; class=&quot;smiley-content&quot; /&gt;&lt;/p&gt;
 </description>
     <pubDate>Tue, 26 Aug 2003 21:08:12 +0000</pubDate>
 <dc:creator>Renegade</dc:creator>
 <guid isPermaLink="false">comment 1136865 at https://www.webmaster-forums.net</guid>
  </item>
  <item>
    <title></title>
    <link>https://www.webmaster-forums.net/web-database-development/working-flatfile-databases#comment-1136845</link>
    <description> &lt;p&gt;That&#039;s too restrictive.  You have to know what the whole record looks like.  Not just which &quot;primary field&quot; you wish to work on.&lt;/p&gt;
&lt;p&gt;Perl code converted to PHP...&lt;br /&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #000000&quot;&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&amp;lt;?php&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;// suck the flat file into an array&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$database &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;file&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(\&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&quot;/path/to/flatfile\&quot;, \&quot;r+\&quot;);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$fp&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt; = fopen(\&quot;/path/to/flatfile\&quot;, \&quot;w\&quot;);&lt;br /&gt;if (&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$fp&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // loop through records&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$database&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt; as &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$record&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$fields&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt; = explode(\&quot;:\&quot;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$record&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$field&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt; == \&quot;bin\&quot;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // this is the record we want to modify/delete&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // if you want to delete this record,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // simply do not print it to the OUTFILE&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$field&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt; = 2;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$record&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt; = implode(&#039;:&#039;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$field&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fwrite(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$fp&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$record&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fclose(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$fp&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;);&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/p&gt;
 </description>
     <pubDate>Tue, 26 Aug 2003 16:50:57 +0000</pubDate>
 <dc:creator>Mark Hensler</dc:creator>
 <guid isPermaLink="false">comment 1136845 at https://www.webmaster-forums.net</guid>
  </item>
  <item>
    <title></title>
    <link>https://www.webmaster-forums.net/web-database-development/working-flatfile-databases#comment-1136840</link>
    <description> &lt;p&gt;&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #000000&quot;&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&amp;lt;?php&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;foreach (&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$array &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;as &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$value&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;){&lt;br /&gt;&amp;nbsp; if(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$value &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;bin:x:1:1:bin:/bin:/bin/sh&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$value &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;bin:x:2:1:bin:/bin:/bin/sh&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;;&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;to remove...&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #000000&quot;&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&amp;lt;?php&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;function &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;remove_path&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$array&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$string&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;){&lt;br /&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$newarray&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=array();&lt;br /&gt;&amp;nbsp; foreach (&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$array &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;as &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$value&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$value &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;!= &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;$string&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$newarray&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;[]=&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$value&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; return &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$newarray&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$paths&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;remove_path&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$paths&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;bin:x:1:1:bin:/bin:/bin/sh&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/p&gt;
 </description>
     <pubDate>Tue, 26 Aug 2003 16:42:38 +0000</pubDate>
 <dc:creator>m3rajk</dc:creator>
 <guid isPermaLink="false">comment 1136840 at https://www.webmaster-forums.net</guid>
  </item>
  <item>
    <title></title>
    <link>https://www.webmaster-forums.net/web-database-development/working-flatfile-databases#comment-1136839</link>
    <description> &lt;p&gt;I&#039;ve only worked flat files from Perl...&lt;br /&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;# suck the flat file into an array&lt;br /&gt;open (INFILE, &amp;quot;&amp;lt;/path/to/flatfile&amp;quot;) or die &amp;quot;Cannot open file for input: $!&amp;quot;;&lt;br /&gt;@database = &amp;lt;INFILE&amp;gt;;&lt;br /&gt;close INFILE or die &amp;quot;Cannot close filename: $!&amp;quot;;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;open (OUTFILE, &amp;quot;&amp;gt;/path/to/flatfile&amp;quot;) or die &amp;quot;Cannot open file for output: $!&amp;quot;;&lt;br /&gt;&lt;br /&gt;# loop through records&lt;br /&gt;foreach $record (@database) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @fields = split(/:/, $record);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ($field{0} eq &amp;quot;bin&amp;quot;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # this is the record we want to modify/delete&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # if you want to delete this record,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # simply do not print it to the OUTFILE&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $field{2} = 2;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $record = join(&amp;#039;:&amp;#039;, @field);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print OUTFILE $record;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;close OUTFILE or die &amp;quot;Cannot close filename: $!&amp;quot;;&lt;/code&gt;&lt;/div&gt;&#039;&lt;/p&gt;
 </description>
     <pubDate>Tue, 26 Aug 2003 16:41:53 +0000</pubDate>
 <dc:creator>Mark Hensler</dc:creator>
 <guid isPermaLink="false">comment 1136839 at https://www.webmaster-forums.net</guid>
  </item>
  <item>
    <title></title>
    <link>https://www.webmaster-forums.net/web-database-development/working-flatfile-databases#comment-1136806</link>
    <description> &lt;p&gt;To me, the first one with arrays look a bit better.&lt;/p&gt;
&lt;p&gt;If you wanted to change bin:x:1:1:bin:/bin:/bin/sh to something like bin:x:2:1:bin:/bin:/bin/sh how would yo go about doing it? or if you wanted to delete it.&lt;/p&gt;
 </description>
     <pubDate>Tue, 26 Aug 2003 05:46:09 +0000</pubDate>
 <dc:creator>Renegade</dc:creator>
 <guid isPermaLink="false">comment 1136806 at https://www.webmaster-forums.net</guid>
  </item>
  <item>
    <title></title>
    <link>https://www.webmaster-forums.net/web-database-development/working-flatfile-databases#comment-1136800</link>
    <description> &lt;p&gt;&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;root&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; root&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /root&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /bin/bash&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;bin&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; bin&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /bin&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /bin/sh&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;daemon&amp;nbsp;&amp;nbsp;&amp;nbsp; x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp; daemon&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /sbin&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /bin/sh&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;/div&gt;&#039;&lt;br /&gt;
This time, the fields are fixed length...&lt;br /&gt;
field 1 - 10 characters&lt;br /&gt;
field 2 - 10 characters&lt;br /&gt;
field 3 - 5 characters&lt;br /&gt;
field 4 - 5 characters&lt;br /&gt;
field 5 - 20 characters&lt;br /&gt;
field 6 - 20 characters&lt;br /&gt;
field 7 - 15 characters&lt;br /&gt;
(record - 85 characters + 1 newline character)&lt;/p&gt;
&lt;p&gt;To read this file, you do not need to suck the whole file into memory.  You may simply read 86 bytes at a time.&lt;/p&gt;
&lt;p&gt;You don&#039;t really need to suck the other format discussed into memory.  You could simply read the file one character at a time until you read a newline character (\n).  But that can get tedious.  I&#039;ve never seen anyone handle a delimited file without sucking the file into memory first.&lt;/p&gt;
&lt;p&gt;&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #000000&quot;&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&amp;lt;?php&lt;br /&gt;$fptr &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;fopen&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;file&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, \&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&quot;r\&quot;);&lt;br /&gt;if (&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$fptr&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;) {&lt;br /&gt;do {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$data&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt; = fread(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$fptr&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;, 86);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (strlen(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$data&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;) == 0)&amp;nbsp; break;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$username&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&amp;nbsp;&amp;nbsp; = substr(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$data&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;, 0, 10);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$password&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&amp;nbsp;&amp;nbsp; = substr(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$data&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;, 10, 10);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$userid&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = substr(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$data&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;, 20, 5);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$groupid&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; = substr(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$data&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;, 25, 5);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$notes&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = substr(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$data&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;, 30, 20);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$home&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = substr(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$data&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;, 50, 20);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$shell&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = substr(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$data&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;, 70, 15);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$username&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt; != &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$the_record_to_edit&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;) continue;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // this is the record i&#039;m interested in&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } while(true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fclose (&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$handle&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;);&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;I just checked the PHP manual, and there is an fgets() funciton which reads up to X bytes of data or until EOL (end of line) or EOF (end of file) is reached.  This would be usefull for reading delimited files one record at a time.&lt;/p&gt;
 </description>
     <pubDate>Tue, 26 Aug 2003 03:35:08 +0000</pubDate>
 <dc:creator>Mark Hensler</dc:creator>
 <guid isPermaLink="false">comment 1136800 at https://www.webmaster-forums.net</guid>
  </item>
  <item>
    <title></title>
    <link>https://www.webmaster-forums.net/web-database-development/working-flatfile-databases#comment-1136795</link>
    <description> &lt;blockquote class=&quot;bb-quote-body&quot;&gt;&lt;p&gt;Quote: &lt;em&gt;Originally posted by Mark Hensler &lt;/em&gt;&lt;br /&gt;
&lt;strong&gt;No.  I just decided to use arrays to examine the file.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A flat file could use fixed length fields.  In which case, you&#039;d be using substr(). (do you want to see an example of that?)&lt;br /&gt;
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Yes please&lt;/p&gt;
 </description>
     <pubDate>Tue, 26 Aug 2003 01:46:02 +0000</pubDate>
 <dc:creator>Renegade</dc:creator>
 <guid isPermaLink="false">comment 1136795 at https://www.webmaster-forums.net</guid>
  </item>
  <item>
    <title></title>
    <link>https://www.webmaster-forums.net/web-database-development/working-flatfile-databases#comment-1136761</link>
    <description> &lt;blockquote class=&quot;bb-quote-body&quot;&gt;&lt;p&gt;Quote: So, when people say something is using a flat file database they really mean an array thats in an external file?&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;No.  I just decided to use arrays to examine the file.&lt;/p&gt;
&lt;p&gt;A flat file could use fixed length fields.  In which case, you&#039;d be using substr(). (do you want to see an example of that?)&lt;/p&gt;
&lt;blockquote class=&quot;bb-quote-body&quot;&gt;&lt;p&gt;Quote: They arrays, they start with a 1? I thought they started with a 0?&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;They do.  Sorry about that.&lt;/p&gt;
 </description>
     <pubDate>Mon, 25 Aug 2003 16:14:44 +0000</pubDate>
 <dc:creator>Mark Hensler</dc:creator>
 <guid isPermaLink="false">comment 1136761 at https://www.webmaster-forums.net</guid>
  </item>
  <item>
    <title></title>
    <link>https://www.webmaster-forums.net/web-database-development/working-flatfile-databases#comment-1136735</link>
    <description> &lt;p&gt;So, when people say something is using a flat file database they really mean an array thats in an external file?&lt;/p&gt;
&lt;p&gt;They arrays, they start with a 1? I thought they started with a 0?&lt;/p&gt;
 </description>
     <pubDate>Sun, 24 Aug 2003 11:07:02 +0000</pubDate>
 <dc:creator>Renegade</dc:creator>
 <guid isPermaLink="false">comment 1136735 at https://www.webmaster-forums.net</guid>
  </item>
  <item>
    <title></title>
    <link>https://www.webmaster-forums.net/web-database-development/working-flatfile-databases#comment-1136733</link>
    <description> &lt;p&gt;The way I&#039;ve done it in the past is use rows as records and a delimeter for fields.  Similar to the passwd file on a linux box.&lt;/p&gt;
&lt;p&gt;First 3 lines of my /etc/passed file...&lt;br /&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;root:x:0:0:root:/root:/bin/bash&lt;br /&gt;bin:x:1:1:bin:/bin:/bin/sh&lt;br /&gt;daemon:x:2:2:daemon:/sbin:/bin/sh&lt;/code&gt;&lt;/div&gt;&#039;Each row is a record.  The colon (&lt;img src=&quot;https://www.webmaster-forums.net/misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; class=&quot;smiley-content&quot; /&gt; seperates the fields.&lt;/p&gt;
&lt;p&gt;How do you read it?  Basically...&lt;/p&gt;
&lt;p&gt;Suck the entire file into memory.  If possible, make each line in the file a seperate element in an array.&lt;/p&gt;
&lt;p&gt;If not, then suck the file into a string, then explode on the newline character (\n) to create an array with each element being one of the lines in the file.&lt;br /&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;Array&lt;br /&gt;&amp;nbsp; (&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [1] =&amp;gt; root:x:0:0:root:/root:/bin/bash&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [2] =&amp;gt; bin:x:1:1:bin:/bin:/bin/sh&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [3] =&amp;gt; daemon:x:2:2:daemon:/sbin:/bin/sh&lt;br /&gt;&amp;nbsp; )&lt;/code&gt;&lt;/div&gt;&#039;&lt;br /&gt;
Then iterate (loop) through the first array, and explode on the colorn (&lt;img src=&quot;https://www.webmaster-forums.net/misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; class=&quot;smiley-content&quot; /&gt; to create a second array of the fields for the current element in the first array.&lt;br /&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;Array&lt;br /&gt;&amp;nbsp; (&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [1] =&amp;gt; root&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [2] =&amp;gt; x&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [3] =&amp;gt; 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [4] =&amp;gt; 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [5] =&amp;gt; root&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [6] =&amp;gt; /root&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [7] =&amp;gt; /bin/bash&lt;br /&gt;&amp;nbsp; )&lt;/code&gt;&lt;/div&gt;&#039;&lt;br /&gt;
Now its important for you to know the format of your file.  Meaning, the order of your fields within each line.  In this case, the fields are as follows:&lt;br /&gt;
1 - user&lt;br /&gt;
2 - password&lt;br /&gt;
3 - user id&lt;br /&gt;
4 - group id&lt;br /&gt;
5 - name, notes, or short description&lt;br /&gt;
6 - home directory&lt;br /&gt;
7 - shell&lt;/p&gt;
&lt;p&gt;Now, you will want to identify the record (first array) you wish to read/modify by examing the fields (second array).  So, lets say you want to edit the &#039;bin&#039; user.  Within the loop, you would test the first element (or field) in the second array against the string &#039;bin&#039;.  If you have a match, then this is record you wish to modify.  If not, you continue with the iteration until you find a match or you reach the end of the array.&lt;/p&gt;
 </description>
     <pubDate>Sun, 24 Aug 2003 07:14:02 +0000</pubDate>
 <dc:creator>Mark Hensler</dc:creator>
 <guid isPermaLink="false">comment 1136733 at https://www.webmaster-forums.net</guid>
  </item>
  </channel>
</rss>
