gopher_parsedir
    (PECL)
gopher_parsedir -- Translate a gopher formatted directory entry into an associative array.
Description
array 
gopher_parsedir ( string dirent )
   While gopher returns text/plain documents for
   actual document requests. A request to a directory (such as /) will
   return specially encoded series of lines with each line being one
   directory entry or information line.
  
Examples
   
Example 1. Hypothetical output from gopher://gopher.example.com/ 0All about my gopher site.	/allabout.txt	gopher.example.com	70
9A picture of my cat.	/pics/cat.png	gopher.example.com	70
1A collection of my writings.	/stories	gopher.example.com	70
hThe HTTP version of this site.	URL:http://www.example.com	gopher.example.com	70
1Mirror of this site in Spain.	/	gopher.ejemplo.co.es	70
iWelcome to my gopher site.		error.host	1
iPlease select one of the options above		error.host	1
iSend complaints to /dev/null		error.host	1
iLong live gopher!		error.host	1  |  
  | 
  
   In the example above, the root directory at gopher.example.com knows about
   one DOCUMENT identified by 0 located at
   gopher://gopher.example.com:70/allabout.txt.  It also knows
   about two other directory (which have their own listing files) at
   gopher://gopher.exmaple.com:70/stories and at
   gopher://gopher.ejemplo.co.es:70/.
   In addition there is a binary file, a link to an HTTP url, and several
   informative lines.
  
   By passing each line of the directory listing into 
   gopher_parsedir(), an associative array is formed containing
   a parsed out version of the data.
  
   
Example 2. Using gopher_parsedir() 
<?php dl("gopher.so");
  $directory = file("gopher://gopher.example.com");
  foreach($directory as $dirent) {     print_r(gopher_parsedir($dirent)); }
  /* Expected Output    ---------------
  Array (   [type] => 0   [title] => All about my gopher site.   [path] => /allabout.txt   [host] => gopher.example.com   [port] => 70 ) Array (   [type] => 9   [title] => A picture of my cat.   [path] => /pics/cat.png   [host] => gopher.example.com   [port] => 70 ) Array (   [type] => 1   [title] => A collection of my writings.   [path] => /stories   [host] => gopher.example.com   [port] => 70 ) Array (   [type] => 254   [title] => The HTTP version of this site.   [path] => URL:http://www.example.com   [host] => gopher.example.com   [port] => 70 ) Array (   [type] => 1   [title] => Mirror of this site in Spain.   [path] => /   [host] => gopher.ejemplo.co.es   [port] => 70 ) Array (   [type] => 255   [title] => Welcome to my gopher site.   [path] =>   [host] => error.host   [port] => 1 ) Array (   [type] => 255   [title] => Please select one of the options above.   [path] =>   [host] => error.host   [port] => 1 ) Array (   [type] => 255   [title] => Send complaints to /dev/null   [path] =>   [host] => error.host   [port] => 1 ) Array (   [type] => 255   [title] => Long live gopher!   [path] =>   [host] => error.host   [port] => 1 ) */ ?>
 |  
  | 
  
   The values given by type are associated with
   the following constants.
  
Table 1. Gopher Constants
| Constant | Definition | 
|---|
| GOPHER_DOCUMENT | Standard text/plain document. | 
| GOPHER_DIRECTORY | A resource containing a gopher formatted directory listing. | 
| GOPHER_BINHEX | A BinHex encoded binary file. | 
| GOPHER_DOSBINARY | A DOS formatted binary archive. | 
| GOPHER_UUENCODED | A UUEncoded file. | 
| GOPHER_BINARY | A generic binary file. | 
| GOPHER_INFO | An Informational entry | 
| GOPHER_HTTP | A reference to an HTTP resource. | 
| GOPHER_UNKNOWN | 
        An unrecognized entry, the line will be returned 
        in data.
        |