Hi there everyone, First of all, let me thank you for your always-present help in this list; I (as a newbie) appreciate it very much! :) However, pardon me for I need to trouble you with another piece of text that doesn't do what it should do: I need to parse the raw-listing of an FTP into it's parts (the code comes from the book published by Wrox, however, I don't have the book in my posession to check the two versions against each other), but it returns an empty list. Here is the code: [code] switch ($this->systype){ //Parse raw dir listing into fields case 'Windows_NT': //Handle WinNT FTP servers $re = '/^.' . '([0-9-]+\s+)'. //Get last mod date '\d\d:\d\d..)\s+' . //Get last mod time '(\S+)\s+' . //Get size or dir info '(.+)$/'; //Get file/dir name break; case 'UNIX': //Handle UNIX FTP servers default: //case UNIX falls through to default $re = '/'. //Regax to parse common server dir into '^(.)' . //Get entry type info (file/dir/etc.) '(\S+)\s+' . //Get permissions info '\S+\s+'. //Find, but don't capture hard link info '(\S+)\s+' . //Get owner name '(\S+)\s+' . //Get group name '(\S+)\s+' . //Get size '(\S+\s+\S+\s+\S+\s+)' . //Get file/dir last mod time '(.+)$/'; //Get file/dir name break; } //Map short identifiers to full names $type = array('-'=>'file','d'=>'directory'); $listing = array(); foreach ($temp as $entry) { //loop through raw listings //try to parse raw data into fields $match=preg_match($re,$entry,$matches); if(!$match) { //if we could not parse the listings user_error("The directory listings could not be parsed."); return array(); } switch ($this->systypes){ //Give fileds sensible names case 'Windows_NT'; //Handle WinNT-style dir listings $listings[] = array( //Put parsed data into readable format 'type' => is_numeric($matches[2]) ? 'file' : 'directory','permissions' => null,'owner' =>NULL,'group'=>null,'size'=>(int)$matches[2], 'last mod' => $matches[1],'name'=>$matches[3]); break; case 'UNIX': //Handle UNIX FTP-style dir listings default: //case UNIX fails through to default $strings[] = array( //Put data into readable format 'type' =>$type[$matches[1]],'permissions' => $matches[2],'owner' =>$matches[3],'group' => $matches[4],'size' => $matches[5], 'last mod' =>$matches[6],'name'=>$matches[7]); break; } } return $listings; [/code] Since this function is called Is($directory); I tried this: var_dump($ftp_server->Is($ftp_server->cwd)); However, I get null. Why? (It's not that I understand how the raw-listing is being parsed using regular expressions, so it's why I'm asking :) ) Thanks! -- --- Contact info: Skype: parham-d MSN: fire_lizard16 at hotmail dot com email: parham90 at GMail dot com