|
Posted by Kim Andrι Akerψ on 04/11/07 12:56
programming wrote:
> On Apr 11, 7:08 pm, Toby A Inkster <usenet200...@tobyinkster.co.uk>
> wrote:
> > programming wrote:
> > > say i would like to delete the middle line of this txt, in
> > > member.txt what php code or logic would help me accomplish this?
> >
> > For a small file:
> >
> > 1. Read member.txt into an array (the "file" function is
> > your friend);
> > 2. Make the changes to the array (the "unset" function is
> > your friend);
> > 3. Output the array to "member-new.txt";
> > 4. Delete "member.txt";
> > 5. Rename "member-new.txt" to "member.txt";
> >
> > If the file is larger (more than say, 500 kB) this might become a
> > bit memory-hungry, and it's worth looking at iterating over each
> > line of the file individually rather than reading it all into
> > memory at once.
>
> Thanks for you steps, i had a go at doing it..is this what you meant
> by any chance?
>
> <?php
>
> $line = file ("./member.txt", "w");
> unset($line);
>
> $line = fopen("./member-new.txt");
>
> unlink("./member.txt")
>
> rename("member-new.txt","member.txt");
>
> fclose($line);
>
>
> ?>
>
> I am getting a parse error, and i am not sure if i am doing this
> right??
>
> Parse error: syntax error, unexpected T_STRING in /volumes/data1/home/
> pioannou/public_html/php/Assignment11/admin/delete_member.php on line
> 11
The parse error itself comes from the missing semicolon on the line
with the unlink() function.
Second, you have placed the "w" parameter on the wrong function (on the
file() function instead of the fopen() function).
Thirdly, you're attempting to move/rename the new file BEFORE closing
the file handle for it. This could cause problems in terms of
locking/permissions.
Fourthly, you still haven't output the updated array to the new file
yet. Also, you're unsetting (deleting) the entire array instead of just
a single item.
After fixing the errors, the final source code snippet should look
something like this (with comments attached):
<?php
// Which line number (counting from 0) should we delete?
$line_to_delete = 4;
// Load the lines into an array; newlines are still attached
$lines = file ("./member.txt");
// Delete the line number from the array
unset($lines[$line_to_delete]);
// Open the new file for writing
$lines_update = fopen("./member-new.txt", "w");
// 1. Join the array to a single string (newlines are already attached)
// 2. Write the updated array to the new file
fwrite($lines_update, join("", $lines);
// Close the file handle to allow other operations on the file
fclose($lines_update);
// Remove the old file
unlink("./member.txt");
// Rename the new file to use the old filename, replacing the old file
rename("member-new.txt","member.txt");
?>
--
Kim AndrΓ© AkerΓΈ
- kimandre@NOSPAMbetadome.com
(remove NOSPAM to contact me directly)
Navigation:
[Reply to this message]
|