Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

This commit was manufactured by cvs2svn to create tag 'ZO_B1'.

  • Loading branch information...
commit e28f7c08318d66844dbf5d2b3caafa5e733a14af 1 parent f3ca328
SVN Migration authored
Showing with 0 additions and 52,873 deletions.
  1. +0 −149 CODING_STANDARDS
  2. +0 −3  CREDITS
  3. +0 −9,536 ChangeLog
  4. +0 −538 FUNCTION_LIST.txt
  5. +0 −188 INSTALL
  6. +0 −70 LICENSE
  7. +0 −97 MAINTAINERS
  8. +0 −20 MODULES_STATUS
  9. +0 −41 Makefile.am
  10. +0 −309 NEWS
  11. +0 −17 README-BCMATH
  12. +0 −102 README.CVS-RULES
  13. +0 −57 README.QNX
  14. +0 −7 TODO
  15. +0 −75 TODO-LeftOver
  16. +0 −126 acconfig.h.in
  17. +0 −347 acinclude.m4
  18. +0 −276 apidoc-zend.txt
  19. +0 −492 apidoc.txt
  20. +0 −90 build-defs.h.in
  21. +0 −86 build.mk
  22. +0 −156 buildconf
  23. +0 −244 calendar.mak
  24. +0 −1,087 config.guess
  25. +0 −1,215 config.sub
  26. +0 −758 configure.in
  27. +0 −204 crypt.mak
  28. +0 −234 dbase.mak
  29. +0 −201 dbm.mak
  30. +0 −421 dlist.c
  31. +0 −137 dlist.h
  32. +0 −4 ext/Makefile.am
  33. +0 −5 ext/apache/Makefile.am
  34. +0 −449 ext/apache/apache.c
  35. +0 −2  ext/apache/config.m4
  36. +0 −5 ext/aspell/Makefile.am
  37. +0 −204 ext/aspell/aspell.c
  38. +0 −4 ext/aspell/config.h.stub
  39. +0 −28 ext/aspell/config.m4
  40. +0 −54 ext/aspell/php3_aspell.h
  41. +0 −4 ext/bcmath/Makefile.am
  42. +0 −434 ext/bcmath/bcmath.c
  43. +0 −2  ext/bcmath/config.h.stub
  44. +0 −20 ext/bcmath/config.m4
  45. +0 −64 ext/bcmath/php3_bcmath.h
  46. +0 −6 ext/bcmath/setup.stub
  47. +0 −24 ext/com/php_COM.h
  48. +0 −5 ext/dav/Makefile.am
  49. +0 −2  ext/dav/config.h.stub
  50. +0 −29 ext/dav/config.m4
  51. +0 −289 ext/dav/dav.c
  52. +0 −66 ext/dav/php3_dav.h
  53. +0 −2  ext/dav/setup.stub
  54. +0 −5 ext/db/Makefile.am
  55. +0 −5 ext/db/config.h.stub
  56. +0 −55 ext/db/config.m4
  57. +0 −1,162 ext/db/db.c
  58. +0 −95 ext/db/php3_db.h
  59. +0 −6 ext/dba/Makefile.am
  60. +0 −19 ext/dba/config.h.stub
  61. +0 −238 ext/dba/config.m4
  62. +0 −483 ext/dba/dba.c
  63. +0 −220 ext/dba/dba_cdb.c
  64. +0 −207 ext/dba/dba_db2.c
  65. +0 −212 ext/dba/dba_db3.c
  66. +0 −190 ext/dba/dba_dbm.c
  67. +0 −189 ext/dba/dba_gdbm.c
  68. +0 −169 ext/dba/dba_ndbm.c
  69. +0 −12 ext/dba/php3_cdb.h
  70. +0 −12 ext/dba/php3_db2.h
  71. +0 −12 ext/dba/php3_db3.h
  72. +0 −115 ext/dba/php3_dba.h
  73. +0 −12 ext/dba/php3_dbm.h
  74. +0 −12 ext/dba/php3_gdbm.h
  75. +0 −12 ext/dba/php3_ndbm.h
  76. +0 −6 ext/dba/setup.stub
  77. +0 −4 ext/dbase/Makefile.am
  78. +0 −3  ext/dbase/config.h.stub
  79. +0 −21 ext/dbase/config.m4
  80. +0 −752 ext/dbase/dbase.c
  81. +0 −94 ext/dbase/dbf.h
  82. +0 −261 ext/dbase/dbf_head.c
  83. +0 −9 ext/dbase/dbf_head.h
  84. +0 −168 ext/dbase/dbf_misc.c
  85. +0 −13 ext/dbase/dbf_misc.h
  86. +0 −183 ext/dbase/dbf_ndx.c
  87. +0 −98 ext/dbase/dbf_ndx.h
  88. +0 −182 ext/dbase/dbf_rec.c
  89. +0 −10 ext/dbase/dbf_rec.h
  90. +0 −55 ext/dbase/php_dbase.h
  91. +0 −4 ext/dbase/setup.stub
  92. +0 −653 ext/ereg/ereg.c
  93. +0 −71 ext/ereg/php_ereg.h
  94. +0 −33 ext/ereg/php_regex.h
  95. +0 −20 ext/ereg/regex/COPYRIGHT
  96. +0 −3  ext/ereg/regex/Makefile.am
  97. +0 −32 ext/ereg/regex/README
  98. +0 −92 ext/ereg/regex/WHATSNEW
  99. +0 −31 ext/ereg/regex/cclass.h
  100. +0 −102 ext/ereg/regex/cname.h
  101. +0 −242 ext/ereg/regex/debug.c
  102. +0 −14 ext/ereg/regex/debug.ih
  103. +0 −1,019 ext/ereg/regex/engine.c
  104. +0 −35 ext/ereg/regex/engine.ih
  105. +0 −510 ext/ereg/regex/main.c
  106. +0 −19 ext/ereg/regex/main.ih
  107. +0 −76 ext/ereg/regex/mkh
  108. +0 −1,605 ext/ereg/regex/regcomp.c
  109. +0 −51 ext/ereg/regex/regcomp.ih
  110. +0 −126 ext/ereg/regex/regerror.c
  111. +0 −12 ext/ereg/regex/regerror.ih
  112. +0 −502 ext/ereg/regex/regex.3
  113. +0 −233 ext/ereg/regex/regex.7
  114. +0 −106 ext/ereg/regex/regex.dsp
  115. +0 −29 ext/ereg/regex/regex.dsw
  116. +0 −83 ext/ereg/regex/regex.h
  117. +0 −304 ext/ereg/regex/regex.mak
  118. +0 −140 ext/ereg/regex/regex2.h
  119. +0 −23 ext/ereg/regex/regex_extra.h
  120. +0 −138 ext/ereg/regex/regexec.c
  121. +0 −37 ext/ereg/regex/regfree.c
  122. +0 −316 ext/ereg/regex/split.c
  123. +0 −475 ext/ereg/regex/tests
  124. +0 −25 ext/ereg/regex/utils.h
  125. +0 −93 ext/ext_skel
  126. +0 −5 ext/fdf/Makefile.am
  127. +0 −2  ext/fdf/config.h.stub
  128. +0 −39 ext/fdf/config.m4
  129. +0 −577 ext/fdf/fdf.c
  130. +0 −65 ext/fdf/php3_fdf.h
  131. +0 −7 ext/fdf/setup.stub
  132. +0 −5 ext/filepro/Makefile.am
  133. +0 −2  ext/filepro/config.h.stub
  134. +0 −17 ext/filepro/config.m4
  135. +0 −540 ext/filepro/filepro.c
  136. +0 −58 ext/filepro/php_filepro.h
  137. +0 −5 ext/filepro/setup.stub
  138. +0 −4 ext/ftp/Makefile.am
  139. +0 −2  ext/ftp/config.h.stub
  140. +0 −18 ext/ftp/config.m4
  141. +0 −1,165 ext/ftp/ftp.c
  142. +0 −158 ext/ftp/ftp.h
  143. +0 −791 ext/ftp/php_ftp.c
  144. +0 −79 ext/ftp/php_ftp.h
  145. +0 −13 ext/gd/Makefile.am
  146. +0 −11 ext/gd/config.h.stub
  147. +0 −190 ext/gd/config.m4
  148. +0 −1,921 ext/gd/gd.c
  149. +0 −201 ext/gd/gdcache.c
  150. +0 −87 ext/gd/gdcache.h
  151. +0 −532 ext/gd/gdt1.c
  152. +0 −27 ext/gd/gdt1.h
  153. +0 −878 ext/gd/gdttf.c
  154. +0 −16 ext/gd/gdttf.h
  155. +0 −111 ext/gd/php3_gd.h
  156. +0 −6 ext/gd/setup.stub
  157. +0 −5 ext/gettext/Makefile.am
  158. +0 −3  ext/gettext/config.h.stub
  159. +0 −45 ext/gettext/config.m4
  160. +0 −158 ext/gettext/gettext.c
  161. +0 −57 ext/gettext/php3_gettext.h
  162. +0 −6 ext/gettext/setup.stub
  163. +0 −5 ext/hyperwave/Makefile.am
  164. +0 −2  ext/hyperwave/config.h.stub
  165. +0 −18 ext/hyperwave/config.m4
  166. +0 −194 ext/hyperwave/debug.h
  167. +0 −4,921 ext/hyperwave/hg_comm.c
  168. +0 −214 ext/hyperwave/hg_comm.h
  169. +0 −3,717 ext/hyperwave/hw.c
  170. +0 −117 ext/hyperwave/hw_error.h
  171. +0 −166 ext/hyperwave/php3_hyperwave.h
  172. +0 −6 ext/hyperwave/setup.stub
  173. +0 −5 ext/icap/Makefile.am
  174. +0 −2  ext/icap/config.h.stub
  175. +0 −25 ext/icap/config.m4
  176. +0 −955 ext/icap/php3_icap.c
  177. +0 −57 ext/icap/php3_icap.h
  178. +0 −5 ext/imap/Makefile.am
  179. +0 −2  ext/imap/config.h.stub
  180. +0 −63 ext/imap/config.m4
  181. +0 −2,692 ext/imap/imap.c
  182. +0 −86 ext/imap/imap.h
  183. +0 −7 ext/imap/setup.stub
  184. +0 −18 ext/informix/Makefile.am
  185. +0 −9 ext/informix/config.h.stub
  186. +0 −99 ext/informix/config.m4
  187. +0 −98 ext/informix/ifx.dsp
  188. +0 −44 ext/informix/ifx.dsw
Sorry, we could not display the entire diff because too many files (696) changed.
View
149 CODING_STANDARDS
@@ -1,149 +0,0 @@
-PHP Coding Standards
-====================
-
-
-This file lists several standards that any programmer, adding or changing
-code in PHP, should follow. Since this file was added at a very late
-stage of the development of PHP v3.0, the code base does not (yet) fully
-follow it, but it's going in that general direction.
-This is an initial version - it'll most probably grow as time passes.
-
-
-Code Implementation
--------------------
-
-[1] Functions that are given pointers to resources should not free them
-
-For instance, function int mail(char *to, char *from) should NOT free
-to and/or from.
-Exceptions:
-
- - The function's designated behavior is freeing that resource. E.g. efree()
- - The function is given a boolean argument, that controls whether or not
- the function may free its arguments (if true - the function must free its
- arguments, if false - it must not)
- - Low-level parser routines, that are tightly integrated with the token
- cache and the bison code for minimum memory copying overhead.
-
-[2] Functions that are tightly integrated with other functions within the
- same module, and rely on each other non-trivial behavior, should be
- documented as such and declared 'static'. They should be avoided if
- possible.
-
-[3] Use definitions and macros whenever possible, so that constants have
- meaningful names and can be easily manipulated. The only exceptions
- to this rule are 0 and 1, when used as false and true (respectively).
- Any other use of a numeric constant to specify different behavior
- or actions should be done through a #define.
-
-[4] When writing functions that deal with strings, be sure to remember
- that PHP holds the length property of each string, and that it
- shouldn't be calculated with strlen(). Write your functions in a such
- a way so that they'll take advantage of the length property, both
- for efficiency and in order for them to be binary-safe.
- Functions that change strings and obtain their new lengths while
- doing so, should return that new length, so it doesn't have to be
- recalculated with strlen() (e.g. _php3_addslashes())
-
-[5] Use php3_error() to report any errors/warnings during code execution.
- Use descriptive error messages, and try to avoid using identical
- error strings for different stages of an error. For example,
- if in order to obtain a URL you have to parse the URL, connect,
- and retreive the text, assuming something can go wrong at each
- of these stages, don't report an error "Unable to get URL"
- on all of them, but instead, write something like "Unable
- to parse URL", "Unable to connect to URL server" and "Unable
- to fetch URL text", respectively.
-
-[6] NEVER USE strncat(). If you're absolutely sure you know what you're doing,
- check its man page again, and only then, consider using it, and even then,
- try avoiding it.
-
-
-Naming Conventions
-------------------
-
-[1] Function names for user functions implementation should be prefixed with
- "php3_", and followed by a word or an underscore-delimited list of words,
- in lowercase letters, that describes the function.
-
-[2] Function names used by user functions implementations should be prefixed
- with "_php3_", and followed by a word or an underscore-delimited list of
- words, in lowercase letters, that describes the function. If applicable,
- they should be declared 'static'.
-
-[3] Variable names must be meaningful. One letter variable names must be
- avoided, except for places where the variable has no real meaning or
- a trivial meaning (e.g. for (i=0; i<100; i++) ...).
-
-[4] Variable names should be in lowercase; Use underscores to seperate
- between words.
-
-
-
-Syntax and indentation
-----------------------
-
-[1] Never use C++ style comments (i.e. // comment). Always use C-style
- comments instead. PHP is written in C, and is aimed at compiling
- under any ANSI-C compliant compiler. Even though many compilers
- accept C++-style comments in C code, you have to ensure that your
- code would compile with other compilers as well.
- The only exception to this rule is code that is Win32-specific,
- because the Win32 port is MS-Visual C++ specific, and this compiler
- is known to accept C++-style comments in C code.
-
-[2] Use K&R-style. Of course, we can't and don't want to
- force anybody to use a style she's not used to, but
- at the very least, when you write code that goes into the core
- of PHP or one of its standard modules, please maintain the K&R
- style. This applies to just about everything, starting with
- indentation and comment styles and up to function decleration
- syntax.
-
-[3] Be generous with whitespace and braces. Always prefer
- if (foo) {
- bar;
- }
- to
- if(foo)bar;
-
- Keep one empty line between the variable decleration section and
- the statements in a block, as well as between logical statement
- groups in a block. Maintain at least one empty line between
- two functions, preferably two.
-
-Documentation and Folding Hooks
--------------------------------
-
-In order to make sure that the online documentation stays in line with
-the code, each user-level function should have its user-level function
-prototype before it along with a brief one-line description of what the
-function does. It would look like this:
-
-/* {{{ proto int abs(int number)
- Return the absolute value of the number */
-void php3_abs(INTERNAL_FUNCTION_PARAMETERS) {
- ...
-}
-/* }}} */
-
-The {{{ symbols are the default folding symbols for the folding mode in
-Emacs. vim will soon have support for folding as well. Folding is very
-useful when dealing with large files because you can scroll through the
-file quickly and just unfold the function you wish to work on. The }}}
-at the end of each function marks the end of the fold, and should be on
-a separate line.
-
-The "proto" keyword there is just a helper for the doc/genfuncsummary script
-which generates a full function summary. Having this keyword in front of the
-function prototypes allows us to put folds elsewhere in the code without
-messing up the function summary.
-
-Optional arguments are written like this:
-
-/* {{{ proto object imap_header(int stream_id, int msg_no [, int from_length [, int subject_length [, string default_host]]])
-
-And yes, please keep everything on a single line, even if that line is massive.
-
-
View
3  CREDITS
@@ -1,3 +0,0 @@
-For the list of people who've put work into PHP 4.0, please see
-http://www.php.net/version4/credits.php
-
View
9,536 ChangeLog
0 additions, 9,536 deletions not shown
View
538 FUNCTION_LIST.txt
@@ -1,538 +0,0 @@
-Functions:
-
-Functions marked with 'u' do not work, or may not work correctly under windows.
-
-basic_functions
- include
- _include
- isset
-
- intval
- doubleval
- strval
- short_tags
- sleep
-u usleep
- ksort
- asort
- sort
- count
- chr
- ord
- flush
- end
- prev
- next
- reset
- current
- key
- gettype
- settype
- min
- max
-
- addslashes
- chop
- pos
-
- fsockopen
- getimagesize
- htmlspecialchars
- md5
-
- parse_url
-
- parse_str
- phpinfo
- phpversion
- strlen
- strtok
- strtoupper
- strtolower
- strchr
- basename
- dirname
- stripslashes
- strstr
- strrchr
- substr
- quotemeta
- urlencode
- urldecode
- ucfirst
- strtr
- sprintf
- printf
-
- exec
- system
- escapeshellcmd
- passthru
-
- soundex
-
- rand
- srand
- getrandmax
- gethostbyaddr
- gethostbyname
- explode
- implode
- error_reporting
- clearstatcache
-
- get_current_user
- getmyuid
- getmypid
-u getmyinode
- getlastmod
-
- base64_decode
- base64_encode
-
- abs
- ceil
- floor
- sin
- cos
- tan
- asin
- acos
- atan
- pi
- pow
- exp
- log
- log10
- sqrt
- bindec
- hexdec
- octdec
- decbin
- decoct
- dechex
-
- getenv
- putenv
-
- time
- mktime
- date
- gmdate
- getdate
- checkdate
- microtime
- uniqid
-
-u linkinfo
-u readlink
-u symlink
-u link
-u unlink
-
-
-bcmath_functions
- bcadd
- bcsub
- bcmul
- bcdiv
- bcmod
- bcpow
- bcsqrt
- bcscale
- bccomp
-
-dir_functions
- opendir
- closedir
- chdir
- rewinddir
- readdir
- dir
-
-dl_functions
- dl(string module_name); dynamicly load a module
-
-dns_functions
- gethostbyaddr
- gethostbyname
-
-file_functions
- pclose
- popen
- readfile
- rewind
- rmdir
- umask
- fclose
- feof
- fgets
- fgetss
- fopen
- fpassthru
- fseek
- ftell
- fputs
- mkdir
- rename
- copy
- tempnam
- file
-
-filestat_functions
- fileatime
- filectime
-u filegroup
-u fileinode
- filemtime
-u fileowner
- fileperms
- filesize
- filetype
- stat
-u chown
-u chgrp
-u chmod
- touch
- file_exists
- is_executable
- is_dir
- is_readable
- is_writeable
-u is_link
-
-header_functions
- setcookie
- header
-
-mail_functions
- mail
-
-reg_functions
- ereg
- ereg_replace
- eregi
- eregi_replace
- split
- sql_regcase
-
-syslog_functions (writes to event log on win NT)
- openlog
- syslog
- closelog
-
-The following are optional modules and may or may not be compiled into php, or may be compiled as a loadable module.
-
-odbc_functions (obsolete, use uodbc below)
- sqlconnect
- sqldisconnect
- sqlfetch
- sqlexecdirect
- sqlgetdata
- sqlfree
- sqlrowcount
-
-uodbc_functions
- (int) odbc_autocommit($connection_id, $OnOff)
- (void) odbc_close($connection_id)
- (void) odbc_close_all(void)
- (int) odbc_commit($connection_id)
- (int) odbc_connect($dsn, $user, $password)
- (int) odbc_pconnect($dsn, $user, $password)
- (string) odbc_cursor($result_id)
- (int) odbc_do($connection_id, $query_string)
- (int) odbc_exec($connection_id, $query_string)
- (int) odbc_prepare($connection_id, $query_string)
- (int) odbc_execute($result_id, $array)
- (int) odbc_fetch_row($result_id, $row_number)
- (int) odbc_fetch_into($result_id, $row_number, $array_ptr)
- (int) odbc_field_len($result_id, $field_number)
- (string) odbc_field_name($result_id, $field_number)
- (string) odbc_field_type($result_id, $field)
- (int) odbc_free_result($result_id)
- (int) odbc_num_fields($result_id)
- (int) odbc_num_rows($result_id)
- (string) odbc_result($result_id, $field)
- (int) odbc_result_all($result_id, $format)
- (int) odbc_rollback($connection_id)
-
-msql_functions
- msql_connect
- msql_pconnect
- msql_close
- msql_select_db
- msql_create_db
- msql_drop_db
- msql_query
- msql
- msql_list_dbs
- msql_list_tables
- msql_list_fields
- msql_result
- msql_num_rows
- msql_num_fields
- msql_fetch_row
- msql_fetch_array
- msql_fetch_object
- msql_data_seek
- msql_fetch_field
- msql_field_seek
- msql_free_result
- msql_fieldname
- msql_fieldtable
- msql_fieldlen
- msql_fieldtype
- msql_fieldflags
- msql_regcase
- /* for downwards compatability */
- msql_selectdb
- msql_createdb
- msql_dropdb
- msql_freeresult
- msql_numfields
- msql_numrows
- msql_listdbs
- msql_listtables
- msql_listfields
- msql_dbname
- msql_tablename
-
-ldap_functions
- ldap_connect
- ldap_bind
- ldap_unbind
- ldap_read
- ldap_list
- ldap_search
- ldap_free_result
- ldap_count_entries
- ldap_first_entry
- ldap_next_entry
- ldap_get_entries
- ldap_free_entry
- ldap_first_attribute
- ldap_next_attribute
- ldap_get_attributes
- ldap_get_values
- ldap_get_dn
- ldap_dn2ufn
- ldap_add
- ldap_delete
- ldap_modify
-
-gd_functions
- imagearc
- imagechar
- imagecharup
- imagecolorallocate
- imagecolorclosest
- imagecolorexact
- imagecolortransparent
- imagecopyresized
- imagecreate
- imagecreatefromgif
- imagedestroy
- imagefill
- imagefilledpolygon
- imagefilledrectangle
- imagefilltoborder
- imagegif
- imageinterlace
- imageline
- imagepolygon
- imagerectangle
- imagesetpixel
- imagestring
- imagestringup
- imagesx
- imagesy
-
-filepro_functions
- filepro
- filepro_rowcount
- filepro_fieldname
- filepro_fieldtype
- filepro_fieldwidth
- filepro_fieldcount
- filepro_retrieve
-
-dbm_functions
- dblist
- dbmopen
- dbmclose
- dbminsert
- dbmfetch
- dbmreplace
- dbmexists
- dbmdelete
- dbmfirstkey
- dbmnextkey
-
-dbase_functions
- dbase_open
- dbase_create
- dbase_close
- dbase_numrecords
- dbase_numfields
- dbase_add_record
- dbase_get_record
- dbase_delete_record
- dbase_pack
-
-calendar_functions
- jdtogregorian
- gregoriantojd
- jdtojulian
- juliantojd
- jdtojewish
- jewishtojd
- jdtofrench
- frenchtojd
- jddayofweek
- jdmonthname
-
-adabas_functions
-(int) ada_afetch($result_id, $rownumber, $result array)
-(int) ada_autocommit($connection_id, $OnOff)
-(void) ada_close($connection_id)
- ada_closeall
-(int) ada_commit($connection_id)
-(int) ada_connect($dsn, $user, $password)
-(int) ada_exec($connection_id, $query_string)
-(int) ada_fetchrow($result_id, $row?number)
- ada_fieldlen
-(string) ada_fieldname($result_id, $field_number)
-(string) ada_fieldtype($result_id, $field)
-(int) ada_freeresult($result_id)
-(int) ada_numfields($result_id)
-(int) ada_numrows($result_id)
-(string) ada_result($result_id, $field)
-(int) ada_resultall($result_id, $format)
-(int) ada_rollback($connection_id)
-***(int) ada_fieldnum($result_id, $field_name) (this function is not in adabase.c
-
-crypt_functions
- crypt
-
-mysql_functions
- mysql_connect
- mysql_pconnect
- mysql_close
- mysql_select_db
- mysql_create_db
- mysql_drop_db
- mysql_query
- mysql
- mysql_list_dbs
- mysql_list_tables
- mysql_list_fields
- mysql_affected_rows
- mysql_insert_id
- mysql_result
- mysql_num_rows
- mysql_num_fields
- mysql_fetch_row
- mysql_fetch_array
- mysql_fetch_object
- mysql_data_seek
- mysql_fetch_lengths
- mysql_fetch_field
- mysql_field_seek
- mysql_free_result
- mysql_fieldname
- mysql_fieldtable
- mysql_fieldlen
- mysql_fieldtype
- mysql_fieldflags
- /* for downwards compatability */
- mysql_selectdb
- mysql_createdb
- mysql_dropdb
- mysql_freeresult
- mysql_numfields
- mysql_numrows
- mysql_listdbs
- mysql_listtables
- mysql_listfields
- mysql_dbname
- mysql_tablename
-
-oracle_functions
- ora_close
- ora_commit
- ora_commitoff
- ora_commiton
- ora_error
- ora_errorcode
- ora_exec
- ora_fetch
- ora_getcolumn
- ora_logoff
- ora_logon
- ora_open
- ora_parse
- ora_rollback
-
-pgsql_functions
- pg_connect
- pg_pconnect
- pg_close
- pg_dbname
- pg_errormessage
- pg_options
- pg_port
- pg_tty
- pg_host
- pg_exec
- pg_numrows
- pg_numfields
- pg_fieldname
- pg_fieldsize
- pg_fieldtype
- pg_fieldnum
- pg_result
- pg_fieldprtlen
- pg_getlastoid
- pg_freeresult
- pg_locreate
- pg_lounlink
- pg_loopen
- pg_loclose
- pg_loread
- pg_lowrite
- pg_loreadall
-
-sybase_functions
- sybase_connect
- sybase_pconnect
- sybase_close
- sybase_select_db
- sybase_query
- sybase_free_result
- sybase_get_last_message
- sybase_num_rows
- sybase_num_fields
- sybase_fetch_row
- sybase_fetch_array
- sybase_fetch_object
- sybase_data_seek
- sybase_fetch_field
- sybase_field_seek
- sybase_result
-
-sybase_old_functions
- sybsql_seek
- sybsql_exit
- sybsql_dbuse
- sybsql_query
- sybsql_isrow
- sybsql_result
- sybsql_connect
- sybsql_nextrow
- sybsql_numrows
- sybsql_getfield
- sybsql_numfields
- sybsql_fieldname
- sybsql_result_all
- sybsql_checkconnect
-
View
188 INSTALL
@@ -1,188 +0,0 @@
-Installation Instructions for PHP 4.0
--------------------------------------
-
-Note! As of 4.0b3, PHP will require GNU make.
-
-For the impatient here is a quick set of steps that will build PHP as
-an Apache module for Apache 1.3.x with MySQL support. A more verbose
-explanation follows.
-
-
-QUICK INSTALL
-
-$ gunzip -c apache_1.3.x.tar.gz | tar xf -
-$ cd apache_1.3.x
-$ ./configure
-$ cd ..
-
-$ gunzip -c php-4.0.x.tar.gz | tar xf -
-$ cd php-4.0.x
-$ ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars
-$ make
-$ make install
-
-$ cd ../apache_1.3.x
-$ ./configure --prefix=/www --activate-module=src/modules/php4/libphp4.a
- (The above line is correct! Yes, we know libphp4.a does not exist at this
- stage. It isn't supposed to. It will be created.)
-make
- (you should now have an httpd binary which you can copy to your Apache bin dir)
-cd ../php-4.0.x
-cp php.ini-dist /usr/local/lib/php.ini
-You can edit /usr/local/lib/php.ini file to set PHP options.
-Edit your httpd.conf or srm.conf file and add:
- AddType application/x-httpd-php .php
-
-
-VERBOSE INSTALL
-
-Installing PHP can be done in four simple steps:
-
-1. Unpack your distribution file.
-
- You will have downloaded a file named something like php4xn.tar.gz.
- Unzip this file with a command like: gunzip php4xn.tar.gz
-
- Next you have to untar it with: tar -xvf php4xn.tar
-
- This will create a php-4.0.x directory. cd into this new directory.
-
-2. Configure PHP.
-
- You now have to choose the options you would like. There are quite
- a few of them. To see a list, type: ./configure --help
-
- You can also use the supplied 'setup' script, which will ask you
- a series of questions and automatically run the configure script
- for you.
-
- The only options that you are likely to want to use are the ones in
- the last section entitled, "--enable and --with options recognized:"
-
- A popular choice is to build the Apache module version. You need
- to know where the source code directory for your Apache server is
- located. Then use an option like: --with-apache=/usr/local/src/apache
- if that is your Apache source code directory. If you only specify
- --with-apache, then it will default to look for your Apache source
- in /usr/local/etc/httpd.
-
- NOTE: The directory you specify should be the top-level of the
- unpacked Apache (or Stronghold) distribution. The configure program
- will automatically look for httpd.h in different directories under that
- location depending on which version of Apache, including Stronghold,
- you are running.
-
- For MySQL support, since newer versions of MySQL installs its various
- components under /usr/local, this is the default. If you have
- changed the location you can specify it with: --with-mysql=/opt/local
- for example. Otherwise just use: --with-mysql
-
- *NOTE* If you are using Apache 1.3b6 or later, you should run the
- Apache Configure script at least once before compiling PHP. It
- doesn't matter how you have Apache configured at this point.
-
-3. Compile and install the files. Simply type: make install
-
- For the Apache module version this will copy the appropriate files
- to the src/modules/php4 directory in your Apache distribution if
- you are using Apache 1.3.x. If you are still running Apache 1.2.x
- these files will be copied directly to the main src directory.
-
- For Apache 1.3b6 and later, you can use the new APACI configuration
- mechanism. To automatically build Apache with PHP support, use:
-
- cd apache_1.3.x
- ./configure --prefix=/<path>/apache \
- --activate-module=src/modules/php4/libphp4.a
- make
- make install
-
- If you do not wish to use this new configuration tool, the old
- install procedure (src/Configure) will work fine.
-
- If you are using the old Apache ./Configure script, you will have to
- edit the Apache src/Configuration file manually. If you do not have
- this file, copy Configuration.tmpl to Configuration.
-
- For Apache 1.3.x add:
-
- AddModule modules/php4/libphp4.a
-
- For Apache 1.3.x don't do anything else. Just add this line and then
- run "./Configure" followed by "make".
-
- For Apache 1.2.x add:
-
- Module php4_module mod_php4.o
-
- For Apache 1.2.x you will also have to look in the libphp4.module file,
- which was copied to the src directory. The EXTRA_LIBS line in the Apache
- Configuration file needs to be set to use the same libs as specified on
- the LIBS line in libphp4.module. You also need to make sure to add
- "-L." to the beginning of the EXTRA_LIBS line.
-
- So, as an example, your EXTRA_LIBS line might look like:
-
- EXTRA_LIBS=-L. -lphp4 -lgdbm -ldb -L/usr/local/mysql/lib -lmysqlclient
-
- NOTE: You should not enclose the EXTRA_LIBS line in double-quotes, as it
- is in the libphp4.module file.
-
- Also, look at the RULE_WANTHSREGEX setting in the libphp4.module file
- and set the WANTHSREGEX directive accordingly in your Configuration file.
- This last step applies to versions of Apache prior to 1.3b3.
-
- This is a bit of a hassle, but should serve as incentive to move to
- Apache 1.3.x where this step has been eliminated.
-
- Once you are satisfied with your Configuration settings, type: ./Configure
- If you get errors, chances are that you forgot a library or made a typo
- somewhere. Re-edit Configuration and try again. If it goes well,
- type: make
-
-4. Setting up the server.
-
- You should now have a new httpd binary. Shut down your existing server,
- if you have one, and copy this new binary overtop of it. Perhaps make
- a backup of your previous one first. Then edit your conf/srm.conf file
- and add the line:
-
- AddType application/x-httpd-php .php
-
- There is also an interesting feature which can be quite instructive and
- helpful while debugging. That is the option of having colour syntax
- highlighting. To enable this, add the following line:
-
- AddType application/x-httpd-php-source .phps
-
- Any file ending in .phps will now be displayed with full colour syntax
- highlighting instead of being executed.
-
- When you are finished making changes to your srm.conf file, you can
- start up your server.
-
-USING PHP3 AND PHP4 AS CONCURRENT APACHE MODULES
-
- Recent operating systems provide the ability to perform versioning and
- scoping. This features make it possible to let PHP3 and PHP4 run as
- concurrent modules in one Apache server.
-
- This feature is known to work on the following platforms:
-
- - Linux with recent binutils (binutils 2.9.1.0.25 tested)
- - Solaris 2.5 or better
- - FreeBSD (3.2, 4.0 tested)
-
- To enable it, configure PHP3 and PHP4 to use APXS (--with-apxs) and the
- necessary link extensions (--enable-versioning). Otherwise, all standard
- installations instructions apply. For example:
-
- $ ./configure \
- --with-apxs=/apache/bin/apxs \
- --enable-versioning \
- --with-mysql \
- --enable-track-vars
-
- If this also works on your platform or if you know a way to do it, please
- report it to our bug database at http://bugs.php.net
-
View
70 LICENSE
@@ -1,70 +0,0 @@
---------------------------------------------------------------------
- The PHP License, version 2.01
-Copyright (c) 1999 The PHP Group. All rights reserved.
---------------------------------------------------------------------
-
-Redistribution and use in source and binary forms, with or without
-modification, is permitted provided that the following conditions
-are met:
-
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
-
- 3. The name "PHP" must not be used to endorse or promote products
- derived from this software without prior permission from the
- PHP Group. This does not apply to add-on libraries or tools
- that work in conjunction with PHP. In such a case the PHP
- name may be used to indicate that the product supports PHP.
-
- 4. The PHP Group may publish revised and/or new versions of the
- license from time to time. Each version will be given a
- distinguishing version number.
- Once covered code has been published under a particular version
- of the license, you may always continue to use it under the
- terms of that version. You may also choose to use such covered
- code under the terms of any subsequent version of the license
- published by the PHP Group. No one other than the PHP Group has
- the right to modify the terms applicable to covered code created
- under this License.
-
- 5. Redistributions of any form whatsoever must retain the following
- acknowledgment:
- "This product includes PHP, freely available from
- http://www.php.net/".
-
- 6. Permission to freely distribute and use Zend as an integrated
- part of PHP is granted, under the conditions of version 0.91
- of the Zend License.
- The license is bundled with the Zend engine, and is available
- at http://www.zend.com/license/0_91.txt, or by contacting
- license@zend.com.
-
-
-
-THIS SOFTWARE IS PROVIDED BY THE PHP DEVELOPMENT TEAM ``AS IS'' AND
-ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PHP
-DEVELOPMENT TEAM OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
-OF THE POSSIBILITY OF SUCH DAMAGE.
-
---------------------------------------------------------------------
-
-This software consists of voluntary contributions made by many
-individuals on behalf of the PHP Group.
-
-The PHP Group can be contacted via Email at group@php.net.
-
-For more information on the PHP Group and the PHP project,
-please see <http://www.php.net>.
View
97 MAINTAINERS
@@ -1,97 +0,0 @@
- List of PHP maintainers
- =======================
-
-Status legend
--------------
- Supported: Someone is actually paid to look after this.
- Maintained: Someone actually looks after it.
- Odd Fixes: It has a maintainer but they don't have time to do
- much other than throw the odd patch in. See below..
- Orphan: No current maintainer [but maybe you could take the
- role as you write your new code].
- Obsolete: Old code. Something tagged obsolete generally means
- it has been replaced by a better system and you
- should be using that.
-
---------------------------------------------------------------------------------
-EXTENSION: apache
-PRIMARY MAINTAINER: Rasmus Lerdorf <rasmus@php.net>
-STATUS: Maintained
---------------------------------------------------------------------------------
-EXTENSION: dba
-PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
-STATUS: Maintained
---------------------------------------------------------------------------------
-EXTENSION: fdf
-PRIMARY MAINTAINER: Uwe Steinmann <steinm@php.net>
-STATUS: Maintained
---------------------------------------------------------------------------------
-EXTENSION: gd
-PRIMARY MAINTAINER: Rasmus Lerdorf <rasmus@php.net>
-STATUS: Maintained
---------------------------------------------------------------------------------
-EXTENSION: hyperwave
-PRIMARY MAINTAINER: Uwe Steinmann <steinm@php.net>
-STATUS: Maintained
---------------------------------------------------------------------------------
-EXTENSION: informix
-PRIMARY MAINTAINER: Danny Heijl <Danny.Heijl@cevi.be>
-STATUS: Maintained
---------------------------------------------------------------------------------
-EXTENSION: java
-PRIMARY MAINTAINER: Sam Ruby <rubys@us.ibm.com>
-STATUS: Maintained
---------------------------------------------------------------------------------
-EXTENSION: ldap
-PRIMARY MAINTAINER: Rasmus Lerdorf <rasmus@php.net>
-STATUS: Odd Fixes
---------------------------------------------------------------------------------
-EXTENSION: mcrypt
-PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
-STATUS: Maintained
---------------------------------------------------------------------------------
-EXTENSION: mhash
-PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
-STATUS: Maintained
---------------------------------------------------------------------------------
-EXTENSION: mssql
-PRIMARY MAINTAINER: Frank M. Kromann <fmk@swwwing.com>
-STATUS: Maintained
---------------------------------------------------------------------------------
-EXTENSION: oci8
-PRIMARY MAINTAINER: Thies C. Arntzen <thies@digicol.de>
-STATUS: Maintained
---------------------------------------------------------------------------------
-EXTENSION: oracle
-PRIMARY MAINTAINER: Thies C. Arntzen <thies@digicol.de>
-STATUS: Maintained
-COMMENT: Using the new OCI8 driver is encouraged where possible.
---------------------------------------------------------------------------------
-EXTENSION: pcre
-PRIMARY MAINTAINER: Andrei Zmievski <andrei@ispi.net>
-STATUS: Maintained
---------------------------------------------------------------------------------
-EXTENSION: pdf
-PRIMARY MAINTAINER: Uwe Steinmann <steinm@php.net>
-STATUS: Maintained
---------------------------------------------------------------------------------
-EXTENSION: session
-PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
-STATUS: Maintained
---------------------------------------------------------------------------------
-EXTENSION: snmp
-PRIMARY MAINTAINER: Rasmus Lerdorf <rasmus@php.net>
-STATUS: Odd Fixes
---------------------------------------------------------------------------------
-EXTENSION: wddx
-PRIMARY MAINTAINER: Andrei Zmievski <andrei@ispi.net>
-STATUS: Maintained
---------------------------------------------------------------------------------
-EXTENSION: xml
-PRIMARY MAINTAINER: Thies C. Arntzen <thies@digicol.de>
-STATUS: Maintained
---------------------------------------------------------------------------------
-EXTENSION: zlib
-PRIMARY MAINTAINER: Stefan Roehrich <sr@linux.de>
-STATUS: Maintained
---------------------------------------------------------------------------------
View
20 MODULES_STATUS
@@ -1,20 +0,0 @@
-Module Status
------- ------
-MySQL Working
-COM Working
-WDDX Working
-PCRE Working
-DBA Working
-mcrypt Working
-mhash Working
-dbase Working
-aspell Working
-imap Working
-ldap Working
-oci8 Working (but no blob-support yet)
-oracle Working
-iptc Working
-informix Working
-zlib Working
-sysvshm Working
-odbc Working (except for persistent connections)
View
41 Makefile.am
@@ -1,41 +0,0 @@
-AUTOMAKE_OPTIONS = foreign
-
-ZEND_DIR = $(srcdir)/libzend
-SUBDIRS = libzend ext sapi $(TSRM_DIR) $(REGEX_DIR)
-
-BUILDLDFLAGS = $(EXTRA_LDFLAGS) $(LDFLAGS)
-
-phptemp_LTLIBRARIES = libphp4.la
-libphp4_la_SOURCES = \
- main.c internal_functions.c snprintf.c php3_sprintf.c \
- configuration-parser.y configuration-scanner.l request_info.c \
- safe_mode.c fopen-wrappers.c php3_realpath.c alloca.c \
- php_ini.c SAPI.c rfc1867.c dlist.c php_content_types.c strlcpy.c \
- strlcat.c mergesort.c
-
-libphp4_la_DEPENDENCIES = \
- libzend/libzend.la \
- sapi/$(PHP_SAPI)/libphpsapi_$(PHP_SAPI).la \
- $(REGEX_LIB) \
- $(EXT_LTLIBS) \
- $(TSRM_LIB)
-
-libphp4_la_LIBADD = $(libphp4_la_DEPENDENCIES) $(EXTRA_LIBS)
-
-libphp4_la_LDFLAGS = $(BUILDLDFLAGS) $(PHP_RPATHS)
-
-configuration-parser.h configuration-parser.c: configuration-parser.y
- $(YACC) -p cfg -v -d $< -o configuration-parser.c
-
-configuration-scanner.c: configuration-scanner.l
- $(LEX) -Pcfg -o$@ -i $<
-
-EXTRA_PROGRAMS = php
-
-noinst_PROGRAMS = $(PHP_PROGRAM)
-php_SOURCES = stub.c
-php_LDADD = libphp4.la
-php_LDFLAGS = -export-dynamic
-
-install-data-local:
- $(INSTALL_IT)
View
309 NEWS
@@ -1,309 +0,0 @@
-PHP 4.0 NEWS
-|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-
-?? ?? ????, Version 4.0 Beta 4
-- Added Berkeley DB3 support in DBA (Sascha)
-- Implemented 2-Arg version of strtr($str,$translation_array). This can be used
- to revert what htmlspecialchars() did. (Thies)
-- Fixed mem-overwrite in XML_Parse_Into_Struct. (Thies)
-- Added substr_replace() function. (Andrei)
-
-November 16 1999, Version 4.0 Beta 3
-- ucfirst()/ucwords() no longer modify arg1. (Thies)
-- Fixed strtr() not to modify arg1. (Thies)
-- Added Win32 build files for Informix driver and make it
- compile with ZTS (danny)
-- Added tmpfile() function (Stig)
-- Upgraded regex library to alpha3.8 (Sascha)
-- Fixed selecting nested-tables in OCI8. (Thies)
-- RFC-854 fix for internal FTP-Code. Commands have to end in "\r\n" (Thies)
-- Fix OpenLink ODBC support (Stig)
-- min(),max(),a[r]sort(),[r]sort(),k[r]sort() now work consistent with the
- language-core. (Thies)
-- tempnam() now uses mkstemp() if available (Stig)
-- serialize() and var_dump() now honor the precision as set in php.ini
- for doubles. (Thies)
-- Improved the Win32 COM module to support [out] parameters (Boris Wedl)
-- Fixed garbage returned at the end of certain Sybase-Columns (Thies)
- Patch submitted by: neal@wanlink.com
-- Added Microsoft SQL Server module for Win32 (Frank)
-- Added support for forcing a variable number of internal function arguments
- by reference. (Andi & Zeev, Zend library)
-- Implemented getprotoby{name,number} (Evan)
-- Added array_pad() function. (Andrei)
-- Added new getservby{name,port} functions. (Evan)
-- Added session.cookie_path and session.cookie_domain (Sascha)
-- Continue processing PHP_INI_SYSTEM knownDirectives after extension=
- (Sam Ruby)
-- Enable IBM DB2 support - Tested against DB2 6.1 UDB on Linux (Rasmus)
-- Added new str_repeat() function. (Andrei)
-- Output-Buffering system is now Thread-Safe. (Thies)
-- implemented OCI8 $lob->WriteToFile() function - very useful for streaming
- large amounts of LOB-Data without to need of a huge buffer. (Thies)
-- Added session.use_cookies option (Sascha)
-- Added getcwd() function. (Thies)
-- XML_Parse_Into_Struct no longer eats data. (Thies)
-- Fixed parse_url('-') crash. (Thies)
-- added === operator support. (Andi & Thies, Zend library)
-- unserialize() now gives a notice when passed invalid data. (Thies)
-- Fixed shuffle() so that it no longer breaks on Solaris. (Andrei)
-- Added is_resource(), is_bool() functions. (Thies)
-- Cleaned up File-Module (Thies)
-- Upgraded math-funtions to use new Zend function API (Thies)
-- Fixed zombie problem in shell_exec() and $a = `some_command`
- constructs. (Thies)
-- Thies introduced ZEND_FETCH_RESOURCE2 (Danny).
-- Added Informix driver to list of maintained extensions. (Danny).
-- Informix driver : Changed ifx.ec to use the new high-performance
- ZEND API. (Danny)
-- IXF_LIBDIR environment variable specifies alternate Informix library
- path for configure (Danny).
-- Fixed gmmktime() so that the following should always be true:
- gmmktime([args]) == mktime([args]) + date('Z', mktime([args])) (Jouni)
-- setlocale doesn't anymore screw up things if you forgot to change it back
- to the original settings. (Jouni)
-- Switched to new system where ChangeLog is automagically updated from commit
- messages. NEWS file is now the place for public announcements. (Andrei)
-- Fixed refcount problem in XML module. (Thies)
-- Fixed crash in HTTP_RAW_POST_DATA handling (Thies)
-- You can use resources as array-indices again (Thies, Zend library)
-- Fixed pg_fetch_array() with three arguments (Sascha)
- Patch submitted by: brian@soda.berkeley.edu
-- Upgraded a lot internal functions to use new Zend function API (Thies)
-- fdf support ported; not completely tested with latest version 4.0 for
- glibc (Uwe)
-- OCI8 connections are now kept open as long as they are referenced (Thies)
-- Cleaned up Directory-Module (Thies)
-- Small fix in Ora_Close (Thies)
-- Ported range() and shuffle() from PHP3 to PHP4 (Andrei)
-- Fixed header("HTTP/..."); behaviour (Sascha)
-- Improved UNIX build system. Now utilizes libtool (Sascha)
-- Upgrade some more internal functions to use new Zend function API. (Thies,
- Zend library)
-- Fixed backwards incompatibility with ereg() (Thies)
-- Updated Zend garbage collection with a much more thorough method.
- (Andi, Zend library)
-- Added the ability to use variable references in the array() construct.
- For example, array("foo" => &$foo). (Andi, Zend library)
-- Added array_reverse() function (Andrei)
-- Some more XML fixes/cleanups (Thies)
-- Updated preg_replace() so that if any argument passed in is an array
- it will make a copy of each entry before converting it to string so that
- the original is intact. If the subject is an array then it will preserve
- the keys in the output as well (Andrei)
-- Updated OCI8 to use the new high-performance Zend function API. (Thies)
-- Configure speedup (Stig)
-- Fixed LOB/Persistent-Connection related OCI8-Crash (Thies)
-- Generalized server-API build procedure on UNIX (Stig)
-- Added '--disable-rpath' option (Sascha)
-- Added AOLserver SAPI module (Sascha)
-- Fixed XML Callbacks. (Thies)
-- Updated ODBC to use the new high-performance Zend function API (kara)
-- Updated zlib to use the new high-performance Zend function API. (Stefan)
-- Updated preg_split() to allow returning only non-empty pieces (Andrei)
-- Updated PCRE to use the new high-performance Zend function API (Andrei)
-- Updated session, dba, mhash, mcrypt, sysvshm, sysvsem, gettext modules to use
- the new high-performance Zend function API (Sascha)
-- Extended var_dump to handle resource type somewhat (Andrei)
-- Updated WDDX to use the new high-performance Zend function API (Andrei)
-- Updated XML to use the new high-performance Zend function API. (Thies)
-- Updated Oracle to use the new high-performance Zend function API. (Thies)
-- Improved the performance of the MySQL module significantly by using the new
- high-performance Zend function API. (Zeev)
-- Add support for the Easysoft ODBC-ODCB Bridge (martin@easysoft.com)
-- Fix bug in odbc_setoption, getParameter call incorrect (martin@easysoft.com)
-- Ora_Fetch_Into now resets the returned array in all cases (Thies)
-- Fixed NULL-Column problem in Oracle-Driver (Thies)
-- Added extra metadata functions to ODBC, SQLTables etc (nick@easysoft.com)
-- Fixed SEGV in mcal make_event_object() and
- typo in mcal_list_alarms() (Andrew Skalski)
-- Fixed Ora_PLogon (Thies)
-- Resourcified Oracle (Thies)
-- Implemented object serialization/deserialization in WDDX (Andrei)
-- Added krsort() function (Thies)
-- Added func_num_args(), func_get_arg() and func_get_args() for standard
- access to variable number of arguments functions (Zeev)
-- Added FTP support (Andrew Skalski)
-- Added optional allowable_tags arguments to strip_tags(), gzgetss() and
- fgetss() to allow you to specify a string of tags that are not to be
- stripped (Rasmus)
-- Upgraded var_dump() to take multiple arguments (Andrei)
-- Resourcified XML (Thies)
-- Fixed a memory leak in the Apache per-directory directives handler (Zeev)
-- Added array_count_values() function. (Thies)
-- snmp, pgsql, mysql and gd modules can be built as dynamically loaded
- modules (Greg)
-- OCI8 fix for fetching empty LOBs (Thies)
-- Added user-level callbacks for session module (Sascha)
-- Added support for unknown POST content types (Zeev)
-- Added "wddx" serialization handler for session module (Sascha)
- (automatically enabled, if you compile with --with-wddx)
-- Fixed unserializing objects (Thies)
-- PHP 4.0 now serializes Objects as 'O' (not understood by PHP 3.0), but
- unserializes PHP 3.0 serialized objects as expected. (Thies)
-- Made serialize/unserialize work on classes. If the class is known at
- unserialize() time, you'll get back a fully working object! (Thies)
-- Reworked preg_* functions according to the new PCRE API, which also made
- them behave much more like Perl ones (Andrei)
-- Made it possible to specify external location of PCRE library (Andrei)
-- Updated bundled PCRE library to version 2.08 (Andrei)
-- count()/is_array/is_object... speedups. (Thies)
-- OCI8 supports appending and positioning when saving LOBs (Thies)
-- Added metaphone support (Thies)
-- OCI8 doesn't use define callbacks any longer. (Thies)
-- OCI8 Driver now supports LOBs like PHP 3.0. (Thies)
-- var_dump now dumps the properties of an object (Thies)
-- Rewrote the GET/POST/Cookie data reader to support multi-dimensional
- arrays! (Zeev)
-- Renamed allow_builtin_links to expose_php (defaults to On). This directive
- tells PHP whether it may expose its existence to the outside world, e.g.
- by adding itself to the Web server header (Zeev)
-- Added support for transparent session id propagation (Sascha)
-- Made WDDX serialize object properties properly (Andrei)
-- Fixed WDDX mem leak when undefined variable is passed in
- for serialization (Andrei)
-- Added session_unset() function (Andrei)
-- Fixed double session globals shutdown crash (Andrei)
-- Fixed crash related to ignore_user_abort ini entry (Andrei)
-- Added support for external entropy sources for session id creation
- (on Unices /dev/random and /dev/urandom) (Sascha)
-- Added gpc_globals variable directive to php.ini. By default it is On, but
- if it is set to Off, GET, POST and Cookie variables will not be inserted
- to the global scope. Mostly makes sense when coupled with track_vars (Zeev)
-- Added versioning support for shared library (Sascha)
- This allows concurrent use of PHP 3.0 and PHP 4.0 as Apache modules. See
- the end of the INSTALL file for more information.
-- Added second parameter to array_keys which specifies search value
- for which the key should be returned (Andrei)
-- Resourcified Informix driver (Danny)
-- New resource handling for odbc, renamed to php_odbc.[ch]
-- Make set_time_limit() work on Unix (Rasmus)
-- Added connection handling support (Rasmus)
-- Improved the Sybase-CT module to make use of resources (Zeev)
-- Improved the mSQL module to make use of resources (Zeev)
-- Changed mysql_query() and mysql_db_query() to return false in case of saving
- the result set data fails (Zeev)
-- Improved the resource mechanism - resources were not getting freed as soon
- as they could (Zeev)
-- Added shared memory module for session data storage (Sascha)
-- Fixed session.auto_start (Sascha)
-- Fixed several problems with output buffering and HEAD requests (Zeev)
-- Fixed HTTP Status code issue with ISAPI module (Zeev)
-- Fixed a problem that prevented $GLOBALS from working properly (Zeev, Zend
- library)
-- Ported newest GetImageSize (Thies)
-- Added session compile support in Win32 (Andi)
-- Added -d switch to the CGI binary that allows overriding php.ini values
- from the command line (Zeev)
-- Fixed a crash that would occur if wddx_deserialize did not receive
- a valid packet (Andrei)
-- Fixed a bugglet when redefining a class at run-time (Andi, Zend library)
-- Fixed sem_get() on AIX (Sascha)
-- Fixed fopen() to work with URL's in Win32 (Andi & Zeev)
-- Fixed include_path for Win32 (Andi, Zend library)
-- Fixed bug in ISAPI header sending function (Charles)
-- Fixed memory leak when using undefined values (Andi & Zeev, Zend library)
-- Added output_buffering directive to php.ini, to enable output buffering
- for all PHP scripts - default is off (Zeev).
-- Fixed some more class inheritance issues (Zeev, Zend library)
-- Fixed Apache build wrt to shared modules on FreeBSD/Linux (Sascha)
-- Added session.extern_referer_chk which checks whether session ids were
- referred to by an external site and eliminates them (Sascha)
-- Improved session id generation (Sascha)
-- Improved speed of uniqid() by using the combined LCG and removing
- the extra usleep() (Sascha)
-- Introduced general combined linear congruential generator (Sascha)
-- Made ldap_close back into an alias for ldap_unbind (Andrei)
-- OciFetchInto now resets the returned array in all cases (Thies)
-- Fixed mysql_errno() to work with recent versions of MySQL (Zeev)
-- Fixed a problem with define() and boolean values (Zeev)
-- Fixed inclusion of gd/freetype functions (Sascha)
-- Fixed persistency of MHASH_* constants (Sascha)
-- Oracle is now ZTS-Safe (Thies)
-- Fixed flushing of cached information to disk in DBA's DB2 module (Sascha)
-- OCI8 is now ZTS-Safe (Thies)
-- Fixed is_writeable/is_writable problem; they are both defined now (Andrei)
-- Imported PHP 3.0 diskfreespace() function (Thies)
-- Fixed thread-safety issues in the MySQL module (Zeev)
-- Fixed thread-safe support for dynamic modules (Zeev)
-- Fixed Sybase CT build process (Zeev)
-
-August 9 1999, Version 4.0 Beta 2
-- Fixed a problem when sending HTTP/1.x header lines using header() (Zeev)
-- Win32 builds now include the ODBC module built-in (Zeev)
-- Fixed SYSV-SHM interface (Thies).
-- Updated hyperwave module, made it thread safe
-- Updated pdflib module, version 0.6 of pdflib no longer supported
-- Updated fdf module
-- Built-in phpinfo() links are now turned off by default. They can be turned
- on using the allow_builtin_links INI directive (Zeev)
-- Changed phpinfo() to list modules that have no info function (Zeev)
-- Modified array_walk() function so that the userland callback is passed
- a key and possible user data in addition to the value (Andrei)
-- Fixed ldap_search(), ldap_read() and ldap_list() (Zeev)
-- Fixed Apache information in phpinfo() (sam@breakfree.com)
-- Improved register_shutdown_function() - you may now supply arguments that
- will be passed to the shutdown function (Zeev)
-- Improved call_user_func() and call_user_method() - they now support passing
- arguments by reference (Zeev)
-- Fixed usort() and uksort() (Zeev)
-- Fixed md5() in the Apache module (Thies)
-- Introduced build process for dynamic modules (Stig)
-- Improved ISAPI module to supprt large server variables (Zeev)
-- Imported PHP 3.0 fixes for problem with PHP as a dynamic module and Redhat
- libc2.1 in zlib module (Stefan)
-- Fixed sybase_fetch_object() (Zeev)
-- Made the IMAP module work with PHP 4.0 (Zeev)
-- Fixed a problem with include()/require() of URLs (Sascha, Zeev)
-- Fixed a bug in implode() that caused it to corrupt its arguments (Zeev)
-- Added get_class($obj), get_parent_class($obj) and method_exists($obj,"name")
- (Andi & Zeev)
-- Fixed various inheritance problems (Andi & Zeev, Zend library)
-- Children now inherit their parent's constructor, if they do not supply a
- constructor of their own.
-- Fixed runtime inheritance of classes (parent methods/properties were
- overriding their children) (Zeev, Zend library)
-- Fixed backwards incompatibility with the "new" operator (Andi, Zend library)
-- Fixed bugs in uksort() and ksort() sort ordering (Andrei)
-- Fixed a memory leak when using assignment-op operators with lvalue of type
- string (Zeev, Zend library)
-- Fixed a problem in inheritance from classes that are defined in include()d
- files (Zeev, Zend library)
-- Fixed a problem with the PHP error handler that could result in a crash
- on certain operating systems (Zeev)
-- Apache php_flag values only recognized 'On' (case sensitive) - changed
- to case insensitive (Zeev)
-- Fixed a memory leak with switch statement containing return statements
- (Andi & Zeev, Zend library)
-- Fixed a crash problem in switch statements that had a string offset
- as a conditional (Andi & Zeev, Zend library)
-- Imported PHP 3.0 fixes for rand() and mt_rand() (Rasmus)
-- Added function entries for strip_tags() and similar_text() (Andrei)
-- Fixed a bug in WDDX that would cause a crash if a number was passed in
- instead of a variable name (Andrei)
-- Ported strtotime() function from PHP 3.0 (Andrei)
-- Merged in gdttf stuff from PHP 3.0 (Sascha)
-- buildconf now checks your installation (Stig)
-- XML module now built dynamically with --with-xml=shared (Stig)
-- Added a check for freetype.h - fixed build on RedHat 6.0 (Zeev)
-- Fixed array_walk() to work in PHP 4.0 (Andrei)
-- Ported all remaining date() format options from PHP 3.0 (Andrei)
-- $php_errormsg now works (Andrei)
-- Added locale support for Perl Compatible Regexp functions (Andrei)
-- Informix module ported (Danny)
-- Removed --with-shared-apache (Sascha)
-- Added patch for reverse lookup table in base64_decode (Sascha)
- Submitted by bfranklin@dct.com
-- Merged in PHP 3.0 version of str_replace (Sascha)
-- Added DBA module (Sascha)
-- Added session id detection within REQUEST_URI (Sascha)
-- Merged in HP-UX/ANSI compatibility switch from PHP 3.0 (Sascha)
-- Fixed rpath handling for utilitites built during Apache build (Sascha)
-- Added missing E_ error level constants (Zeev, Zend library)
-- Fixed a bug in sending multiple HTTP Cookies under Apache (Zeev)
-- Fixed implicit connect on the MySQL, mSQL, PostgreSQL and Sybase
- modules (Zeev)
-- Gave PHP 4.0's SNMP extension all the functionality of PHP 3.0.12 (SteveL)
-
-July 19 1999, Version 4.0 Beta 1
-- First public beta of PHP 4.0
View
17 README-BCMATH
@@ -1,17 +0,0 @@
-How to install PHP with the BCMath arbitrary precision math library?
---------------------------------------------------------------------
-
-Due to license restrictions, the BC math library can no longer be distributed
-along with PHP. The BC math library is distributed under the restrictive
-GNU Public License, and PHP is no longer distributed under that license, but
-under a less restrictive license, the PHP License.
-
-If you want to enable BC math support (recommended), all you have to do is
-simply download http://www.php.net/extra/number4.tar.gz, and untar it on the
-top level php4 directory.
-
-A typical way of doing this would be (assuming that you have lynx):
-cd ~/php4
-lynx -dump -source http://www.php.net/extra/number4.tar.gz | gzip -d | tar xvf -
-
-The PHP Group
View
102 README.CVS-RULES
@@ -1,102 +0,0 @@
-This is the first file you should be reading after you get your CVS account.
-We'll assume you're basically familiar with CVS, but feel free to post
-your questions on the mailing list.
-
-PHP is developed through the efforts of a large number of people.
-Collaboration is a Good Thing(tm), and CVS lets us do this. Thus, following
-some basic rules with regards to CVS usage will:
-
- a. Make everybody happier, especially those responsible for maintaining
- the CVS itself.
- b. Keep the changes consistently well documented and easily trackable.
- c. Prevent some of those 'Oops' moments.
- d. Increase the general level of good will on planet Earth.
-
-
-Having said that, here are the organizational rules:
-
- 1. Respect other people working on the project.
-
- 2. Discuss any significant changes on the list before committing.
-
- 3. Look at MAINTANERS file to see who is the primary maintainer of
- the code you want to contribute to.
-
- 4. If you "strongly disagree" about something another person did, don't
- start fighting publicly - take it up in private email.
-
- 5. If you don't know how to do something, ask first!
-
- 6. Test your changes before committing them. We mean it. Really.
-
-
-The next few rules are more of a technical nature.
-
- 1. DO NOT TOUCH ChangeLog! It is automagically updated from the commit
- messages every day. Woe be to those who attempt to mess with it.
-
- 2. All news updates intended for public viewing, such as new features,
- bug fixes, improvements, etc., should go into the NEWS file. Also see
- the note below about automatically updating NEWS in your commit message.
-
- 3. Do not commit multiple file and dump all messages in one commit. If you
- modified several unrelated files, commit each group separately and
- provide a nice commit message for each one. See example below.
-
- 4. Do write your commit message in such a way that it makes sense even
- without the corresponding diff. One should be able to look at it, and
- immediately know what was modified. Definitely include the function name
- in the message as shown below.
-
- 5. In your commit messages, keep each line shorter than 80 characters. And
- try to align your lines vertically, if they wrap. It looks bad otherwise.
-
- 6. If you modified a function that is callable from PHP, prepend PHP to
- the function name as shown below.
-
-
-The format of the commit messages is pretty simple.
-
-If a line begins with #, it is taken to be a comment and will not appear
-in the ChangeLog. If the line begins with @, it will be redirected to the
-NEWS file. Everything else goes into the ChangeLog.
-
-It is important to note that if your comment or news logline spans multiple
-lines, you have to put # or @ at the beginning of _every_ such line.
-
-Example. Say you modified two files, datetime.c and string.c. In datetime.c
-you added a new format option for date() function, and in string.c you fixed
-a memory leak in php_trim(). Don't commit both of these at once. Commit them
-separately and try to make sure your commit messages look something like the
-following.
-
-For datetime.c:
-
-(PHP date) Added new 'K' format modifier for printing out number of
- days until New Year's Eve.
-@- Added new 'K' format modifier that will output the number of days
-@ until New Year's Eve. (Bob)
-
-For string.c:
-(php_trim) Fixed a memory leak resulting from improper use of zval_dtor().
-# Man, that thing was leaking all over the place!
-@- Memory leak in trim() function has finally been fixed. (Bob)
-
-The lines above marked with @ will go into NEWS file automagically, and the
-# lines will be omitted from the ChangeLog. Alternatively, you might want
-to modify NEWS file directly and not use the @ lines.
-
-If you don't see your messages in ChangeLog and NEWS right away, don't worry!
-These files are updated once a day, so your stuff will not show up until
-somewhat later. Don't go adding stuff to NEWS by hand if you already put @
-lines in the commit message.
-
-You can use LXR (http://lxr.php.net/) and Bonsai (http://bonsai.php.net/)
-to look at PHP CVS repository in various ways.
-
-To receive daily updates to ChangeLog and NEWS, send an empty message to
-php-cvs-daily-subscribe@lists.php.net.
-
-Happy hacking,
-
-PHP Team
View
57 README.QNX
@@ -1,57 +0,0 @@
-QNX4 Installation Notes
------------------------
-
-NOTE: General installation instructions are in the INSTALL file
-
-
-1. To compile and test PHP3 you have to grab, compile and install:
- - GNU dbm library or another db library;
- - GNU bison (1.25 or later; 1.25 tested);
- - GNU flex (any version supporting -o and -P options; 2.5.4 tested);
- - GNU diffutils (any version supporting -w option; 2.7 tested);
-
-2. To use CVS version you may need also:
- - GNU CVS (1.9 tested);
- - GNU autoconf (2.12 tested);
- - GNU m4 (1.3 or later preferable; 1.4 tested);
-
-3. To run configure define -lunix in command line:
- LDFLAGS=-lunix ./configure
-
-4. To use Sybase SQL Anywhere define ODBC_QNX and CUSTOM_ODBC_LIBS in
- command line and run configure with --with-custom-odbc:
- CFLAGS=-DODBC_QNX LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib -lodbc" ./configure --with-custom-odbc=/usr/lib/sqlany50
- If you have SQL Anywhere version 5.5.00, then you have to add
- CFLAGS=-DSQLANY_BUG
- to workaround its SQLFreeEnv() bug. Other versions has not been tested,
- so try without this flag first.
-
-5. To build the Apache module, you may have to hardcode an include path for
- alloc.h in your Apache base directory:
- - APACHE_DIRECTORY/src/httpd.h:
- change #include "alloc.h"
- to #include "APACHE_DIRECTORY/src/alloc.h"
- Unless you want to use system regex library, you have to hardcode also
- a path to regex.h:
- - APACHE_DIRECTORY/src/conf.h:
- change #include <regex.h>
- to #include "APACHE_DIRECTORY/src/regex/regex.h"
- I don't know so far why this required for QNX, may be it is Watcom
- compiler problem.
-
- If you building Apache module with SQL Anywhere support, you'll get
- symbol conflict with BOOL. It is defined in Apache (httpd.h) and in
- SQL Anywhere (odbc.h). This has nothing to do with PHP, so you have to
- fix it yourself someway.
-
-6. With above precautions, it should compile as is and pass regression
- tests completely:
- make
- make check
- make install
-
- Don't bother me unless you really sure you made that all but it
- still doesn't work.
-
-June 28, 1998
-Igor Kovalenko -- owl@infomarket.ru
View
7 TODO
@@ -1,7 +0,0 @@
-Things to do or at least think about doing in the future. Name in
-parenthesis means that person has taken on this project.
-
-ext/standard
-------------
- * strpad() (Andrei)
- * advanced sort (Andrei)
View
75 TODO-LeftOver
@@ -1,75 +0,0 @@
-
-
-This is the ChangeLog from PHP3 as of Apr 12 1999.
-
-Entries should be removed from this file, if you transfer changes
-over to PHP4.
-
-============================================================================
-
-?? 1999, Version 3.0.8
-- added Oracle-OCI8 persistent connections
-- fixed OCIDefineByName crash.
-- fixed some NULL-column related problems in OCI8-module.
-- Some Informix driver improvements.
-- PUT method support (mlemos@acm.org)
-- Fix parameter count problem in odbc_setoption()
-- Really fix implode() this time. The fix in 3.0.7 was bogus
-- Make fgetss() slightly smarter
-- Add strip_tags() which uses the fgetss state-machine but acts on a string
-
-March 1 1999, Version 3.0.7
-- Added pdf_put_image and pdf_execute_image
-- Initial work on an ImageMagick module - doesn't do anything yet
-- Make configure script detect Netscape's LDAP SDK automagically
-- Fixed Oracle-OCI8 module for windows.
-- Add OCIRowCount function. (Number of affected rows for update-statements)
-- Add OCIDefineByName function.
-- Change the behaviour of open_basedir. It's now possible to supply more
- than one directory. open_basedir paths from parent directories are now
- automatically inherited.
-- fix rand() and mt_rand() to make the ranges work correctly
-- htmlspecialchars() and htmlentities() are now binary safe.
-- Add extract() function.
-- Oracle-OCI8 driver now supports BLOBS/CLOBS and IN/OUT binding of local php
- variables.
-- Clean up apxs build
-- Add INSTALL.REDHAT file to walk RedHat users through the install
-- Add function_exists() function.
-- Add another version of WDDX module
- (we need to pick a single implementation here)
-- Fixed includes for iODBC to support both the old and the new LGPL version
-- Fix implode() bug - When imploding an array that contained unset() elements
- it wasn't correctly skipping past these
-- Add connection_status() function. This returns the raw bitfield which
- indicates whether the script terminated due to a user abort, a timeout
- or normally. Note that if ignore_user_abort is enabled, then both the
- timeout state and the user abort state can be active
-- Add connection_timeout() function. This one can be called in a shutdown
- function to tell you if you got there because of a timeout
-- Add ignore_user_abort() function and .ini/.conf directive of same name
-- Fix connection abort detection code - It should now work reliably with
- Apache. Also added a user-level connection_aborted() function designed to
- let people check whether the user aborted the connection in a user-level
- shutdown function.
-- Add pfsockopen() function
-- Improvements in FreeType support: Macintosh fonts work, and non-antialiased
- output is considerably cleaner <mka@satama.com>
-- Fixed checkdate() function, range of valid years is now 0 to 32767
-- hw_insertdocument() returns object id now
-- Add pdf_open() warning in configure and documentation
-- Add diskfreespace() function
-- Added aspell support
-- Iptcparse would sometimes find a wrong tag.
-- Force var_dump() to output headers
-- Add optional 3th parameter to ora_fetchinto.
-- Serialize and var_dump no longer show array elements that
- have been unset.
-- Add IptcEmbed() function (can replace an APP13-Marker in a JPEG file)
-- Add OCI8 module for Windows
-- Fix bug in pdf_close() function
-- Add WDDX support (see http://www.wddx.org for more info)
-- Add similar_text() function
-- Introduce simple regex compilation cache
-
-
View
126 acconfig.h.in
@@ -1,126 +0,0 @@
-/* This is the default configuration file to read -*- C -*- */
-
-/* these are defined by automake */
-#undef PACKAGE
-#undef VERSION
-
-#undef HAVE_AOLSERVER
-
-#undef HAVE_STRUCT_FLOCK
-#undef HAVE_TM_GMTOFF
-
-#define CONFIGURATION_FILE_PATH "php.ini"
-#define USE_CONFIG_FILE 1
-
-#undef HAVE_DMALLOC
-
-/* Some global constants defined by conigure */
-#undef PHP_BUILD_DATE
-#undef PHP_OS
-#undef PHP_UNAME
-
-/* define uint by configure if it is missed (QNX and BSD derived) */
-#undef uint
-
-/* define ulong by configure if it is missed (most probably is) */
-#undef ulong
-
-/* type check for in_addr_t */
-#undef in_addr_t
-
-/* Define if you have dirent.h but opendir() resides in libc rather than in libdir */
-/* This will cause HAVE_DIRENT_H defined twice sometimes, but it should be problem */
-#undef HAVE_DIRENT_H
-
-/* Define if you have the resolv library (-lresolv). */
-#undef HAVE_LIBRESOLV
-
-/* Define if you have the pam library (-lpam). */
-#define HAVE_LIBPAM 0
-
-/* Define if you have the bind library (-lbind). */
-#define HAVE_LIBBIND 0
-
-/* Define if you have Netscape LDAP instead of umich ldap or openldap*/
-#define HAVE_NSLDAP 0
-
-/* Define if you want safe mode enabled by default. */
-#define PHP_SAFE_MODE 0
-
-/* Set to the path to the dir containing safe mode executables */
-#define PHP_SAFE_MODE_EXEC_DIR /usr/local/php/bin
-
-/* Define if you want POST/GET/Cookie track variables by default */
-#define PHP_TRACK_VARS 0
-
-/* Undefine if you want stricter XML/SGML compliance by default */
-/* (this disables "<?expression?>" by default) */
-#define DEFAULT_SHORT_OPEN_TAG 1
-
-/* Undefine if you do not want PHP by default to escape "'" */
-/* in GET/POST/Cookie data */
-#define MAGIC_QUOTES 1
-
-/* Define both of these if you want the bundled REGEX library */
-#define REGEX 0
-#define HSREGEX 0
-
-/* Define if you have and want to use libnsl */
-#undef HAVE_LIBNSL
-
-/* Define if you have and want to use libsocket */
-#undef HAVE_LIBSOCKET
-
-/* Define if you have the sendmail program available */
-#define HAVE_SENDMAIL 0
-
-/* Define if you are compiling PHP as an Apache module */
-#define APACHE 0
-
-/* Define if you are compiling PHP as an Apache module with mod_charset patch applied (aka Russian Apache)*/
-#define USE_TRANSFER_TABLES 0
-
-/* Define if you are compiling PHP as an fhttpd module */
-#define FHTTPD 0
-
-/* Define if your Apache creates an ap_config.h header file (only 1.3b6 and later) */
-#define HAVE_AP_CONFIG_H 0
-
-/* Define if your Apache has src/include/compat.h */
-#define HAVE_OLD_COMPAT_H 0
-
-/* Define if your Apache has src/include/ap_compat.h */
-#define HAVE_AP_COMPAT_H 0
-
-#ifndef DEBUG /* should be set to ZEND_DEBUG */
-#define DEBUG 0
-#endif
-
-/* Define if you want to enable PHP RPC (experimental) */
-#define PHP_RPC 0
-
-/* Define if you want to prevent the CGI from working unless REDIRECT_STATUS is defined in the environment */
-#define FORCE_CGI_REDIRECT 0
-
-/* Define if you want to prevent the CGI from using path_info and path_translated */
-#define DISCARD_PATH 0
-
-/* Define if you want include() and other functions to be able to open
- * http and ftp URLs as files.
- */
-#define PHP3_URL_FOPEN 0
-
-/* Define if you have broken header files like SunOS 4 */
-#define MISSING_FCLOSE_DECL 0
-
-/* Define if you have broken sprintf function like SunOS 4 */
-#define BROKEN_SPRINTF 0
-
-/* Define to compile PHP/Zend thread safe */
-#undef ZTS
-
-/* Define when compiling with Zeus support */
-#undef WITH_ZEUS
-
-/* Define if struct sockaddr contains the field sa_len */
-#undef HAVE_SOCKADDR_SA_LEN
View
347 acinclude.m4
@@ -1,347 +0,0 @@
-dnl $Id$
-dnl
-dnl This file contains local autoconf functions.
-
-dnl
-dnl PHP_SET_SYM_FILE(path)
-dnl
-dnl set the path of the file which contains the symbol export list
-dnl
-AC_DEFUN(PHP_SET_SYM_FILE,
-[
- PHP_SYM_FILE="$1"
-])
-
-dnl
-dnl PHP_BUILD_SHARED
-dnl
-AC_DEFUN(PHP_BUILD_SHARED,[
- php_build_target=shared
-])
-
-dnl
-dnl PHP_BUILD_STATIC
-dnl
-AC_DEFUN(PHP_BUILD_STATIC,[
- php_build_target=static
-])
-
-dnl
-dnl PHP_BUILD_PROGRAM
-dnl
-AC_DEFUN(PHP_BUILD_PROGRAM,[
- php_build_target=program
-])
-
-dnl
-dnl AC_PHP_ONCE(namespace, variable, code)
-dnl
-dnl execute code, if variable is not set in namespace
-dnl
-AC_DEFUN(AC_PHP_ONCE,[
- unique=`echo $ac_n "$2$ac_c" | tr -c -d a-zA-Z0-9`
- cmd="echo $ac_n \"\$$1$unique$ac_c\""
- if test -n "$unique" && test "`eval $cmd`" = "" ; then
- eval "$1$unique=set"
- $3
- fi
-])
-
-dnl
-dnl AC_EXPAND_PATH(path, variable)
-dnl
-dnl expands path to an absolute path and assigns it to variable
-dnl
-AC_DEFUN(AC_EXPAND_PATH,[
- if test -z "$1" || echo "$1" | grep '^/' >/dev/null ; then
- $2="$1"
- else
- ep_dir="`dirname \"$1\"`"
- ep_realdir="`(cd \"$ep_dir\" && pwd)`"
- $2="$ep_realdir/`basename \"$1\"`"
- fi
-])
-
-dnl
-dnl AC_ADD_LIBPATH(path)
-dnl
-dnl add a library to linkpath/runpath
-dnl
-AC_DEFUN(AC_ADD_LIBPATH,[
- if test "$1" != "/usr/lib"; then
- AC_EXPAND_PATH($1, ai_p)
- AC_PHP_ONCE(LIBPATH, $ai_p, [
- EXTRA_LIBS="$EXTRA_LIBS -L$ai_p"
- PHP_RPATHS="$PHP_RPATHS $ai_p"
- ])
- fi
-])
-
-dnl
-dnl AC_BUILD_RPATH()
-dnl
-dnl builds RPATH from PHP_RPATHS
-dnl
-AC_DEFUN(AC_BUILD_RPATH,[
- if test "$enable_rpath" = "yes" && test -n "$PHP_RPATHS"; then
- OLD_RPATHS="$PHP_RPATHS"
- PHP_RPATHS=""
- for i in $OLD_RPATHS; do
- PHP_RPATHS="$PHP_RPATHS -R $i"
- NATIVE_RPATHS="$NATIVE_RPATHS ${ld_runpath_switch}$i"
- done
- fi
-])
-
-dnl
-dnl AC_ADD_INCLUDE(path)
-dnl
-dnl add a include path
-dnl
-AC_DEFUN(AC_ADD_INCLUDE,[
- if test "$1" != "/usr/include"; then
- AC_EXPAND_PATH($1, ai_p)
- AC_PHP_ONCE(INCLUDEPATH, $ai_p, [
- INCLUDES="$INCLUDES -I$ai_p"
- ])
- fi
-])
-
-dnl
-dnl AC_ADD_LIBRARY(library)
-dnl
-dnl add a library to the link line
-dnl
-AC_DEFUN(AC_ADD_LIBRARY,[
- AC_PHP_ONCE(LIBRARY, $1, [
- EXTRA_LIBS="$EXTRA_LIBS -l$1"
- ])
-])
-
-dnl
-dnl AC_ADD_LIBRARY_WITH_PATH(library, path)
-dnl
-dnl add a library to the link line and path to linkpath/runpath
-dnl
-AC_DEFUN(AC_ADD_LIBRARY_WITH_PATH,[
- AC_ADD_LIBPATH($2)
- AC_ADD_LIBRARY($1)
-])
-
-
-AC_DEFUN(AM_SET_LIBTOOL_VARIABLE,[
- LIBTOOL='$(SHELL) $(top_builddir)/libtool $1'
-])
-
-dnl
-dnl Check for cc option
-dnl
-AC_DEFUN(AC_CHECK_CC_OPTION,[
- echo "main(){return 0;}" > conftest.$ac_ext
- opt="$1"
- var=`echo $ac_n "$opt$ac_c"|tr -c a-zA-Z0-9 _`
- AC_MSG_CHECKING([if compiler supports -$1 really])
- ac_php_compile="${CC-cc} -$opt -o conftest $CFLAGS $CPPFLAGS conftest.$ac_ext 2>&1"
- if eval $ac_php_compile 2>&1 | egrep "$opt" > /dev/null 2>&1 ; then
- eval php_cc_$var=no
- AC_MSG_RESULT(no)
- else
- if eval ./conftest 2>/dev/null ; then
- eval php_cc_$var=yes
- AC_MSG_RESULT(yes)
- else
- eval php_cc_$var=no
- AC_MSG_RESULT(no)
- fi
- fi
-])
-
-AC_DEFUN(PHP_REGEX,[
-
-if test "$REGEX_TYPE" = "php"; then
- REGEX_LIB=regex/libregex.la
- REGEX_DIR=regex
- AC_DEFINE(HSREGEX)
- AC_DEFINE(REGEX,1)
-elif test "$REGEX_TYPE" = "system"; then
- AC_DEFINE(REGEX,0)
-elif test "$REGEX_TYPE" = "apache"; then
- AC_DEFINE(REGEX,2)
-fi
-
-AC_MSG_CHECKING(which regex library to use)
-AC_MSG_RESULT($REGEX_TYPE)
-
-AC_SUBST(REGEX_DIR)
-AC_SUBST(REGEX_LIB)
-AC_SUBST(HSREGEX)
-])
-
-dnl
-dnl See if we have broken header files like SunOS has.
-dnl
-AC_DEFUN(AC_MISSING_FCLOSE_DECL,[
- AC_MSG_CHECKING([for fclose declaration])
- AC_TRY_COMPILE([#include <stdio.h>],[int (*func)() = fclose],[
- AC_DEFINE(MISSING_FCLOSE_DECL,0)
- AC_MSG_RESULT(ok)
- ],[
- AC_DEFINE(MISSING_FCLOSE_DECL,1)
- AC_MSG_RESULT(missing)
- ])
-])
-
-dnl
-dnl Check for broken sprintf()
-dnl
-AC_DEFUN(AC_BROKEN_SPRINTF,[
- AC_MSG_CHECKING([for broken sprintf])
- AC_TRY_RUN([main() { char buf[20]; exit (sprintf(buf,"testing 123")!=11); }],[
- AC_DEFINE(BROKEN_SPRINTF,0)
- AC_MSG_RESULT(ok)
- ],[
- AC_DEFINE(BROKEN_SPRINTF,1)
- AC_MSG_RESULT(broken)
- ],[
- AC_DEFINE(BROKEN_SPRINTF,0)
- AC_MSG_RESULT(cannot check, guessing ok)
- ])
-])
-
-dnl
-dnl PHP_EXTENSION(extname [, shared])
-dnl
-dnl Includes an extension in the build.
-dnl
-dnl "extname" is the name of the ext/ subdir where the extension resides
-dnl "shared" can be set to "shared" or "yes" to build the extension as
-dnl a dynamically loadable library.
-dnl
-AC_DEFUN(PHP_EXTENSION,[
- if test -d "$cwd/$srcdir/ext/$1" ; then
- EXT_SUBDIRS="$EXT_SUBDIRS $1"
- if test "$2" != "shared" -a "$2" != "yes"; then
- _extlib="libphpext_$1.a"
- EXT_LTLIBS="$EXT_LTLIBS ext/$1/libphpext_$1.la"
- EXT_LIBS="$EXT_LIBS $1/$_extlib"
- EXT_STATIC="$EXT_STATIC $1"
- else
- EXT_SHARED="$EXT_SHARED $1"
- fi
- PHP_OUTPUT(ext/$1/Makefile)
- fi
-])
-
-AC_SUBST(EXT_SUBDIRS)
-AC_SUBST(EXT_STATIC)
-AC_SUBST(EXT_SHARED)
-AC_SUBST(EXT_LIBS)
-AC_SUBST(EXT_LTLIBS)
-
-dnl
-dnl Solaris requires main code to be position independent in order
-dnl to let shared objects find symbols. Weird. Ugly.
-dnl
-dnl Must be run after all --with-NN options that let the user
-dnl choose dynamic extensions, and after the gcc test.
-dnl
-AC_DEFUN(PHP_SOLARIS_PIC_WEIRDNESS,[
- AC_MSG_CHECKING(whether -fPIC is required)
- if test "$EXT_SHARED" != ""; then
- os=`uname -sr 2>/dev/null`
- case "$os" in
- "SunOS 5.6"|"SunOS 5.7")
- case "$CC" in
- gcc*|egcs*) CFLAGS="$CFLAGS -fPIC";;
- *) CFLAGS="$CFLAGS -fpic";;
- esac
- AC_MSG_RESULT(yes);;
- *)
- AC_MSG_RESULT(no);;
- esac
- else
- AC_MSG_RESULT(no)
- fi
-])
-
-dnl
-dnl Checks whether $withval is "shared" or starts with "shared,XXX"
-dnl and sets $shared to "yes" or "no", and removes "shared,?" stuff
-dnl from $withval.
-dnl
-AC_DEFUN(PHP_WITH_SHARED,[
- case $withval in
- shared)
- shared=yes
- withval=yes
- ;;
- shared,*)
- shared=yes
- withval=`echo $withval | sed -e 's/^shared,//'`
- ;;
- *)
- shared=no
- ;;
- esac
-])
-
-dnl The problem is that the default compilation flags in Solaris 2.6 won't
-dnl let programs access large files; you need to tell the compiler that
-dnl you actually want your programs to work on large files. For more
-dnl details about this brain damage please see:
-dnl http://www.sas.com/standards/large.file/x_open.20Mar96.html
-
-dnl Written by Paul Eggert <eggert@twinsun.com>.
-
-AC_DEFUN(AC_SYS_LFS,
-[dnl
- # If available, prefer support for large files unless the user specified
- # one of the CPPFLAGS, LDFLAGS, or LIBS variables.
- AC_MSG_CHECKING(whether large file support needs explicit enabling)
- ac_getconfs=''
- ac_result=yes
- ac_set=''
- ac_shellvars='CPPFLAGS LDFLAGS LIBS'
- for ac_shellvar in $ac_shellvars; do
- case $ac_shellvar in
- CPPFLAGS) ac_lfsvar=LFS_CFLAGS ;;
- *) ac_lfsvar=LFS_$ac_shellvar ;;
- esac
- eval test '"${'$ac_shellvar'+set}"' = set && ac_set=$ac_shellvar
- (getconf $ac_lfsvar) >/dev/null 2>&1 || { ac_result=no; break; }
- ac_getconf=`getconf $ac_lfsvar`
- ac_getconfs=$ac_getconfs$ac_getconf
- eval ac_test_$ac_shellvar=\$ac_getconf
- done
- case "$ac_result$ac_getconfs" in
- yes) ac_result=no ;;
- esac
- case "$ac_result$ac_set" in
- yes?*) ac_result="yes, but $ac_set is already set, so use its settings"
- esac
- AC_MSG_RESULT($ac_result)
- case $ac_result in
- yes)
- for ac_shellvar in $ac_shellvars; do
- eval $ac_shellvar=\$ac_test_$ac_shellvar
- done ;;
- esac
-])
-
-AC_DEFUN(AC_SOCKADDR_SA_LEN,[
- AC_CACHE_CHECK([for field sa_len in struct sockaddr],ac_cv_sockaddr_sa_len,[
- AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/socket.h>],
- [struct sockaddr s; s.sa_len;],
- [ac_cv_sockaddr_sa_len=yes
- AC_DEFINE(HAVE_SOCKADDR_SA_LEN)],
- [ac_cv_sockaddr_sa_len=no])
- ])
-])
-
-dnl ## PHP_AC_OUTPUT(file)
-dnl ## adds "file" to the list of files generated by AC_OUTPUT
-dnl ## This macro can be used several times.
-AC_DEFUN(PHP_OUTPUT,[
- PHP_OUTPUT_FILES="$PHP_OUTPUT_FILES $1"
-])
View
276 apidoc-zend.txt
@@ -1,276 +0,0 @@
-Following is a merge of two letters I sent to php4beta@lists.php.net,
-describing the changes in API between PHP 3.0 and PHP 4.0 (Zend).
-This file is by no means thorough documentation of the PHP API,
-and is intended for developers who are familiar with the PHP 3.0 API,
-and want to port their code to PHP 4.0, or take advantage of its new
-features. For highlights about the PHP 3.0 API, consult apidoc.txt.
-
-Zeev
-
---------------------------------------------------------------------------
-
-I'm going to try to list the important changes in API and programming
-techniques that are involved in developing modules for PHP4/Zend, as
-opposed to PHP3. Listing the whole PHP4 API is way beyond my scope here,
-it's mostly a 'diff' from the apidoc.txt, which you're all pretty familiar
-with.
-An important note that I neglected to mention yesterday - the php4 tree is
-based on the php 3.0.5 tree, plus all 3.0.6 patches hand-patched into it.
-Notably, it does NOT include any 3.0.7 patches. All of those have to be
-reapplied, with extreme care - modules should be safe to patch (mostly),
-but anything that touches the core or main.c will almost definitely require
-changes in order to work properly.
-
-[1] Symbol Tables
-
-One of the major changes in Zend involves changing the way symbols tables
-work. Zend enforces reference counting on all values and resources. This
-required changes in the semantics of the hash tables that implement symbol
-tables. Instead of storing pval in the hashes, we now store pval *. All
-of the API functions in Zend were changed in a way that this change is
-completely transparent. However, if you've used 'low level' hash functions
-to access or update elements in symbol tables, your code will require
-changes. Following are two simple examples, one demonstrates the
-difference between PHP3 and Zend when reading a symbol's value, and the
-other demonstrates the difference when writing a value.
-
-php3_read()
-{
- pval *foo;
-
- _php3_hash_find(ht, "foo", sizeof("foo"), &foo);
- /* foo->type is the type and foo->value is the value */
-}
-
-
-php4_read()
-{
- pval **foo;
-
- _php3_hash_find(ht, "foo", sizeof("foo"), &foo);
- /* (*foo)->type is the type and (*foo)->value is the value */
-}
-
----
-
-php3_write()
-{
- pval newval;
-
- newval.type = ...;
- newval.value = ...;
- _php3_hash_update(ht, "bar", sizeof("bar"), &newval, sizeof(pval), NULL);
-}
-
-php4_write()
-{
- pval *newval = (pval *) emalloc(sizeof(pval));
-
- newval->refcount=1;
- newval->is_ref=0;
- newval->type = ...;
- newval->value = ...;
- _php3_hash_update(ht, "bar", sizeof("bar"), &newval, sizeof(pval *), NULL);
-}
-
-
-[2] Resources
-
-One of the 'cute' things about the reference counting support is that it
-completely eliminates the problem of resource leaking. A simple loop that
-included '$result = mysql_query(...)' in PHP leaked unless the user
-remembered to run mysql_free($result) at the end of the loop body, and
-nobody really did. In order to take advantage of the automatic resource
-deallocation upon destruction, there's virtually one small change you need
-to conduct. Change the result type of a resource that you want to destroy
-itself as soon as its no longer referenced (just about any resource I can
-think of) as IS_RESOURCE, instead of as IS_LONG. The rest is magic.
-
-A special treatment is required for SQL modules that follow MySQL's
-approach for having the link handle as an optional argument. Modules that
-follow the MySQL module model, store the last opened link in a global
-variable, that they use in case the user neglects to explicitly specify a
-link handle. Due to the way referenec counting works, this global
-reference is just like any other reference, and must increase that SQL link
-resource's reference count (otherwise, it will be closed prematurely).
-Simply, when you set the default link to a certain link, increase that
-link's reference count by calling zend_list_addref().
-As always, the MySQL module is the one used to demonstrate 'new
-technology'. You can look around it and look for IS_RESOURCE, as well as
-zend_list_addref(), to see a clear example of how the new API should be used.
-
-
-[3] Thread safety issues
-
-I'm not going to say that Zend was designed with thread safety in mind, but
-from some point, we've decided upon several guidelines that would make the
-move to thread safety much, much easier. Generally, we've followed the PHP
-3.1 approach of moving global variables to a structure, and encapsulating
-all global variable references within macros. There are three main
-differences:
-1. We grouped related globals in a single structure, instead of grouping
-all globals in one structure.
-2. We've used much, much shorter macro names to increase the readability
-of the source code.
-3. Regardless of whether we're compiling in thread safe mode or not, all
-global variables are *always* stored in a structure. For example, you
-would never have a global variable 'foo', instead, it'll be a property of a
-global structure, for example, compiler_globals.foo. That makes
-development much, much easier, since your code will simply not compile
-unless you remember to put the necessary macro around foo.
-
-To write code that'll be thread safe in the future (when we release our
-thread safe memory manager and work on integrating it), you can take a look
-at zend_globals.h. Essentially, two sets of macros are defined, one for
-thread safe mode, and one for thread unsafe mode. All global references
-are encapsulated within ???G(varname), where ??? is the appropriate prefix
-for your structure (for example, so far we have CG(), EG() and AG(), which
-stand for the compiler, executor and memory allocator, respectively).
-When compiling with thread safety enabled, each function that makes use of
-a ???G() macro, must obtain the pointer to its copy of the structure. It
-can do so in one of two forms:
-1. It can receive it as an argument.
-2. It can fetch it.
-
-Obviously, the first method is preferable since it's much quicker.
-However, it's not always possible to send the structure all the way to a
-particular function, or it may simply bloat the code too much in some
-cases. Functions that receive the globals as an argument, should look like
-this:
-
-rettype functioname(???LS_D) <-- a function with no arguments
-rettype functioname(type arg1, ..., type argn ???LS_DC) <-- a funciton with
-arguments
-
-Calls to such functions should look like this:
-functionname(???LS_C) <-- a function with no arguments
-functionname(arg1, ..., argn ???LS_CC) <-- a function with arguments
-
-LS stands for 'Local Storage', _C stands for Call and _CC stands for Call
-Comma, _D stands for Declaration and _DC stands for Declaration Comma.
-Note that there's NO comma between the last argument and ???LS_DC or ???LS_CC.
-
-In general, every module that makes use of globals should use this approach
-if it plans to be thread safe.
-
-
-[4] Generalized INI support
-
-The code comes to solve several issues:
-
-a. The ugly long block of code in main.c that reads values from the
-cfg_hash into php3_ini.
-b. Get rid of php3_ini. The performance penalty of copying it around all
-the time in the Apache module probably wasn't too high, but
-psychologically, it annoyed me :)
-c. Get rid of the ugly code in mod_php4.c, that also reads values from
-Apache directives and puts them into the php3_ini structure.
-d. Generalize all the code so that you only have to add an entry in one
-single place and get it automatically supported in php3.ini, Apache, Win32
-registry, runtime function ini_get() and ini_alter() and any future method
-we might have.
-e. Allow users to easily override *ANY* php3.ini value, except for ones
-they're not supposed to, of course.
-
-I'm happy to say that I think I pretty much reached all goals. php_ini.c
-implements a mechanism that lets you add your INI entry in a single place,
-with a default value in case there's no php3.ini value. What you get by
-using this mechanism:
-
-1. Automatic initialization from php3.ini if available, or from the
-default value if not.
-2. Automatic support in ini_alter(). That means a user can change the
-value for this INI entry at runtime, without you having to add in a single
-line of code, and definitely no additional function (for example, in PHP3,
-we had to add in special dedicated functions, like
-set_magic_quotes_runtime() or the likes - no need for that anymore).
-3. Automatic support in Apache .conf files.
-4. No need for a global php3_ini-like variable that'll store all that
-info. You can directly access each INI entry by name, in runtime. 'Sure,
-that's not revolutionary, it's just slow' is probably what some of you
-think - which is true, but, you can also register a callback function that
-is called each time your INI entry is changed, if you wish to store it in a
-cached location for intensive use.
-5. Ability to access the current active value for a given INI entry, and
-the 'master' value.
-
-Of course, (2) and (3) are only applicable in some cases. Some entries
-shouldn't be overriden by users in runtime or through Apache .conf files -
-you can, of course, mark them as such.
-
-
-So, enough hype, how does it work.
-
-Essentially:
-
-static PHP_INI_MH(OnChangeBar); /* declare a message handler for a change
-in "bar" */
-
-PHP_INI_BEGIN()
- PHP_INI_ENTRY("foo", "1", PHP_INI_ALL, NULL, NULL)
- PHP_INI_ENTRY("bar", "bah", PHP_INI_SYSTEM, OnChangeBar, NULL)
-PHP_INI_END()
-
-static PHP_INI_MH(OnChangeBar)
-{
- a_global_var_for_bar = new_value;
- return SUCCESS;
-}
-
-int whatever_minit(INIT_FUNC_ARGS)
-{
- ...
- REGISTER_INI_ENTRIES();
- ...
-}
-
-
-int whatever_mshutdown(SHUTDOWN_FUNC_ARGS)
-{
- ...
- UNREGISTER_INI_ENTRIES();
- ...
-}
-
-
-and that's it. Here's what it does. As you can probably guess, this code
-registers two INI entries - "foo" and "bar". They're given defaults "1"
-and "bah" respectively - note that all defaults are always given as
-strings. That doesn't reduce your ability to use integer values, simply
-specify them as strings. "foo" is marked so that it can be changed by
-anyone at any time (PHP_INI_ALL), whereas "foo" is marked so it can be
-changed only at startup in the php3.ini only, presumably, by the system
-administrator (PHP_INI_SYSTEM).
-When "foo" changes, no function is called. Access to it is done using the
-macros INI_INT("foo"), INI_FLT("foo") or INI_STR("foo"), which return a
-long, double or char * respectively (strings that are returned aren't
-duplicated - if they're manipulated, you must duplicate them first). You
-can also access the original value (the 'master' value, in case one of them
-was overriden by a user) using another pair of macros:
-INI_ORIG_INT("foo"), INI_ORIG_FLT("foo") and INI_ORIG_STR("foo").
-
-When "bar" changes, a special message handler is called, OnBarChange().
-Always declare those message handlers using PHP_INI_MH(), as they might
-change in the future. Message handlers are called as soon as an ini entry
-initializes or changes, and allow you to cache a certain INI value in a
-quick C structure. In this example, whenever "bar" changes, the new value
-is stored in a_global_var_for_bar, which is a global char * pointer,
-quickly accessible from other functions. Things get a bit more complicated
-when you want to implement a thread-safe module, but it's doable as well.
-Message handlers may return SUCCESS to acknowledge the new value, or
-FAILURE to reject it. That enables you to reject invalid values for some
-INI entries if you want. Finally, you can have a pointer passed to your
-message handler - that's the fifth argument to PHP_INI_ENTRY(). It is
-passed as mh_arg to the message handler.
-
-Remember that for certain values, there's really no reason to mess with a
-callback function. A perfect example for this are the syntax highlight
-colors, which no longer have a dedicated global C slot that stores them,
-but instead, are fetched from the php_ini hash on demand.
-
-"As always", for a perfect working example of this mechanism, consult
-functions/mysql.c. This module uses the new INI entry mechanism, and was
-also converted to be thread safe in general, and in its php_ini support in
-particular. Converting your modules to look like this for thread safety
-isn't a bad idea (not necessarily now, but in the long run).
-
View
492 apidoc.txt
@@ -1,492 +0,0 @@
-PHP Version 3.0 API Documentation
-
-Table of Contents
------------------
- 1. Function Prototype
- 2. Function Arguments
- 3. Variable number of function arguments
- 4. Using the function arguments
- 5. Memory management in functions
- 6. Setting variables in the symbol table
- 7. Returning values from functions
- 8. Returning 'complex' values from functions (arrays or objects)
- 9. Using the resource list
-10. Using the persistent resource table
-11. Adding runtime configuration directives
------------------
-
-1. Function Prototype
-
- All functions look like this:
-
- PHP_FUNCTION(foo) {
-
- }
-
- Even if your function doesn't take any arguments, this is how it is
- called.
-
------------------
-
-2. Function Arguments
-
- Arguments are always of type pval. This type contains a union which
- has the actual type of the argument. So, if your function takes two
- arguments, you would do something like the following at the top of your
- function:
-
- pval *arg1, *arg2;
- if (ARG_COUNT(ht) != 2 || getParameters(ht,2,&arg1,&arg2)==FAILURE) {
- WRONG_PARAM_COUNT;
- }
-
- NOTE: Arguments can be passed either by value or by reference. In both
- cases you will need to pass &(pval *) to getParameters. If you want to
- check if the n'th parameter was sent to you by reference or not, you can
- use the function, ParameterPassedByReference(ht,n). It will return either
- 1 or 0.
-
- When you change any of the passed parameters, whether they are sent by
- reference or by value, you can either start over with the parameter by
- calling pval_destructor on it, or if it's an ARRAY you want to add to,
- you can use functions similar to the ones in internal_functions.h which
- manipulate return_value as an ARRAY.
-
- Also if you change a parameter to IS_STRING make sure you first assign
- the new estrdup'ed string and the string length, and only later change the
- type to IS_STRING. If you change the string of a parameter which already
- IS_STRING or IS_ARRAY you should run pval_destructor on it first.
-
------------------
-
-3. Variable number of function arguments
-
- A function can take a variable number of arguments. If your function can
- take either 2 or 3 arguments, use the following:
-
- pval *arg1, *arg2, *arg3;
- int arg_count = ARG_COUNT(ht);
-
- if (arg_count<2 || arg_count>3 ||
- getParameters(ht,arg_count,&arg1,&arg2,&arg3)==FAILURE) {
- WRONG_PARAM_COUNT;
- }
-
-------------------
-
-4. Using the function arguments
-
- The type of each argument is stored in the pval type field:
-
-
- This type can be any of the following:
-
- IS_STRING String
- IS_DOUBLE Double-precision floating point
- IS_LONG Long
- IS_ARRAY Array
-
- IS_EMPTY ??
- IS_USER_FUNCTION ??
- IS_INTERNAL_FUNCTION ?? (if some of these cannot be passed to a
- function - delete)
- IS_CLASS ??
- IS_OBJECT ??
-
- If you get an argument of one type and would like to use it as another,
- or if you just want to force the argument to be of a certain type, you
- can use one of the following conversion functions:
-
- convert_to_long(arg1);
- convert_to_double(arg1);
- convert_to_string(arg1);
- convert_to_boolean_long(arg1); If the string is "" or "0" it
- becomes 0, 1 otherwise
- convert_string_to_number(arg1); Converts string to either LONG or
- DOUBLE depending on string
-
- These function all do in-place conversion. They do not return anything.
-
- The actual argument is stored in a union.
-
- For type IS_STRING, use arg1->value.str.val
- IS_LONG arg1->value.lval
- IS_DOUBLE arg1->value.dval