File: makefunclist.php

package info (click to toggle)
php-doc 20100521-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze, wheezy
  • size: 59,992 kB
  • ctags: 4,085
  • sloc: xml: 796,833; php: 21,338; cpp: 500; sh: 117; makefile: 58; awk: 28
file content (94 lines) | stat: -rw-r--r-- 3,274 bytes parent folder | download
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?php
/*
  +----------------------------------------------------------------------+
  | PHP Version 5                                                        |
  +----------------------------------------------------------------------+
  | Copyright (c) 1997-2010 The PHP Group                                |
  +----------------------------------------------------------------------+
  | This source file is subject to version 3.01 of the PHP license,      |
  | that is bundled with this package in the file LICENSE, and is        |
  | available through the world-wide-web at the following url:           |
  | http://www.php.net/license/3_01.txt                                  |
  | If you did not receive a copy of the PHP license and are unable to   |
  | obtain it through the world-wide-web, please send a note to          |
  | license@php.net so we can mail you a copy immediately.               |
  +----------------------------------------------------------------------+
  | Authors:    Mitja Slenc <mitja@php.net>                              |
  |             Gabor Hojtsy <goba@php.net>                              |
  |             Kalle Sommer Nielsen <kalle@php.net>                     |
  +----------------------------------------------------------------------+

  $Id: makefunclist.php 293138 2010-01-05 10:21:11Z rquadling $
*/

$XML_REF_ROOT = "../../en/reference/";
$FUNCTIONS    = array();

if ($dh = @opendir($XML_REF_ROOT)) {
    while (($file = readdir($dh)) !== FALSE) {
        if (is_dir($XML_REF_ROOT . $file) && !in_array($file, array(".", "..", "CVS"))) {
            get_function_files($XML_REF_ROOT . $file);
        }
    }
    closedir($dh);
} else {
    die("Unable to find phpdoc XML files\n");
}

sort($FUNCTIONS);
fwrite(fopen("funclist.txt", "w"), implode("\n", $FUNCTIONS)."\n");

function get_filename($file, $ext = ".xml") {
    if (!defined("PATHINFO_FILENAME")) {
        $filename = pathinfo($file, PATHINFO_BASENAME);
        return substr($filename, 0, strpos($filename, $ext));
    }

    return pathinfo($file, PATHINFO_FILENAME);
}

function get_function_files($dir) {
    global $FUNCTIONS;
    if ($dh = @opendir($dir . "/functions")) {
        while (($file = readdir($dh)) !== FALSE) {
            if (ereg("\\.xml\$", $file)) {
                $FUNCTIONS[] = strtolower(str_replace(array(".xml", "-"), array("", "_"), $file));
            }
        }
        closedir($dh);
    } else {
        $dh = @opendir($dir . "/");

        if ($ch === FALSE) {
            die("Unable to find phpdoc XML files in $dir folder\n");
        }

        while (($file = readdir($dh)) !== FALSE) {
            if (!ereg("\\.xml\$", $file)) {
                continue;
            }

            $class = get_filename($file);

            if (!is_dir($dir . "/" . $class . "/")) {
                continue;
            }

            $cdh = @opendir($dir . "/" . $class . "/");

            if ($cdh === FALSE) {
                continue;
            }

            while (($method = readdir($cdh)) !== FALSE) {
                if (!ereg("\\.xml\$", $method)) {
                    continue;
                }

                $FUNCTIONS[] = strtolower($class . "::" . get_filename($method));
            }
        }
    }
}

?>