文字
分享

gopher_parsedir

(PECL net_gopher >= 0.1)

gopher_parsedirTranslate a gopher formatted directory entry into an associative array.

说明

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.

参数

dirent

The directory entry.

返回值

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.

范例

Example #1 Hypothetical output from gopher://gopher.example.com/

1

2

3

4

5

6

7

8

9

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 ));
}
?>

以上例程会输出:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

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

)

上一篇:Gopher 函数下一篇:Gupnp