RE: [PHP] delete() and unlink()

2002-12-19 Thread @ Nilaab
Thanks Jason,

That makes much more sense now. I forgot about recursive functions, as I
don't use them often. I should look into it further. It seems to be very
helpful in some cases. Thanks again for your help.

- Nilaab

> -Original Message-
> From: Jason Wong [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, December 19, 2002 3:53 AM
> To: [EMAIL PROTECTED]
> Subject: Re: [PHP] delete() and unlink()
>
>
> On Thursday 19 December 2002 17:39, [EMAIL PROTECTED] wrote:
> > Hello Everyone,
> >
> > I'm using a test server on Windows XP. I have the following
> function (which
> > I got from the comment notes on php.net) that works wonders
> when deleting
> > directories that are not empty on a Windows system.
>
> Good.
>
> > But, I'm a bit
> > confused. I searched for the delete() function on php.net and
> it said that
> > delete() was not a real function, but a dummy manual entry for those who
> > are actually looking for the unlink() function.
>
> delete() is a dummy entry in the manual so people looking for
> said function
> will be directed to unlink() which is the correct function to use.
>
> > So then why does the
> > delete() function work in my script?
>
> delete() is undefined in php, that is why you can define your own
> function
> called delete().
>
> > I tried using the unlink() function in
> > place of the delete() function, but unlink() gave me many
> errors (possibly
> > because of permissions).
>
> unlink() can only remove/delete directories that are empty.
>
> > Is there an error in the manual or is it just me?
>
> There's no error in the manual (with regards to this subject). Probably a
> misunderstanding on your part.
>
> > Is there a difference in the two functions? Does the delete()
> function not
> > care about permissions as opposed to the unlink() function?
> This is really
> > bugging me. Can someone clear the air?
>
> The delete() function as defined below is recursive and will
> automatically go
> inside non-empty directories and empty them first.
>
> > $c_dir = "$DOCUMENT_ROOT/world/admin/backup2";  // current directory
> >
> > function delete($dir) {
> >  if (file_exists($dir)) {
> > umask(0);
> > chmod($dir,0777);
> >if (is_dir($dir)) {
> >  $handle = opendir($dir);
> >  while($dirname = readdir($handle)) {
> >if ($dirname != "." && $dirname != "..") {
> > delete($dir."/".$dirname);
> >}
> >  }
> > closedir($handle);
> >  rmdir($dir);
> >} else {
> > unlink($dir);
> >}
> >  }
> > }
> >
> > delete ($c_dir);
>
> To summarise -- there is no delete() function in php, the
> delete() function
> you're using is a user-defined function and as such will do
> whatever you can
> make it do.
>
> --
> Jason Wong -> Gremlins Associates -> www.gremlins.biz
> Open Source Software Systems Integrators
> * Web Design & Hosting * Internet & Intranet Applications Development *
>
> /*
> Garbage In -- Gospel Out.
> */
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>


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




Re: [PHP] delete() and unlink()

2002-12-19 Thread Jason Wong
On Thursday 19 December 2002 17:39, [EMAIL PROTECTED] wrote:
> Hello Everyone,
>
> I'm using a test server on Windows XP. I have the following function (which
> I got from the comment notes on php.net) that works wonders when deleting
> directories that are not empty on a Windows system.

Good.

> But, I'm a bit
> confused. I searched for the delete() function on php.net and it said that
> delete() was not a real function, but a dummy manual entry for those who
> are actually looking for the unlink() function. 

delete() is a dummy entry in the manual so people looking for said function 
will be directed to unlink() which is the correct function to use.

> So then why does the
> delete() function work in my script? 

delete() is undefined in php, that is why you can define your own function 
called delete().

> I tried using the unlink() function in
> place of the delete() function, but unlink() gave me many errors (possibly
> because of permissions).

unlink() can only remove/delete directories that are empty.

> Is there an error in the manual or is it just me?

There's no error in the manual (with regards to this subject). Probably a 
misunderstanding on your part.

> Is there a difference in the two functions? Does the delete() function not
> care about permissions as opposed to the unlink() function? This is really
> bugging me. Can someone clear the air?

The delete() function as defined below is recursive and will automatically go 
inside non-empty directories and empty them first.

> $c_dir = "$DOCUMENT_ROOT/world/admin/backup2";  // current directory
>
> function delete($dir) {
>  if (file_exists($dir)) {
> umask(0);
> chmod($dir,0777);
>if (is_dir($dir)) {
>  $handle = opendir($dir);
>  while($dirname = readdir($handle)) {
>if ($dirname != "." && $dirname != "..") {
> delete($dir."/".$dirname);
>}
>  }
> closedir($handle);
>  rmdir($dir);
>} else {
> unlink($dir);
>}
>  }
> }
>
> delete ($c_dir);

To summarise -- there is no delete() function in php, the delete() function 
you're using is a user-defined function and as such will do whatever you can 
make it do.

-- 
Jason Wong -> Gremlins Associates -> www.gremlins.biz
Open Source Software Systems Integrators
* Web Design & Hosting * Internet & Intranet Applications Development *

/*
Garbage In -- Gospel Out.
*/


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