gopher_parsedir
(PECL)
gopher_parsedir -- Translate a gopher formatted directory entry into an associative array.
Description
array
gopher_parsedir ( string dirent )
gopher_parsedir() parses a gopher formatted directory
entry into an associative array.
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.
Parameters
dirent
The directory entry.
Return Values
Returns an associative array whose components are:
type
- One of the
GOPHER_XXX constants.
title
- The name of the resource.
path
- The path of the resource.
host
- The domain name of the host that has
this document (or directory).
port
- The port at which to connect on
host
.
Upon failure, the additional data
entry of the
returned array will hold the parsed 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 $directory = file("gopher://gopher.example.com");
foreach($directory as $dirent) { print_r(gopher_parsedir($dirent)); } ?>
|
The above example will 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
) |
|