gopher_parsedir
(PECL)
gopher_parsedir -- Translate a gopher formatted directory entry into an associative array.
Описание
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.
Примеры
Пример 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.
Пример 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.
Таблица 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.
|