Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

This commit was manufactured by cvs2svn to create tag

'BEFORE_REMOVING_GC_STEP2'.
  • Loading branch information...
commit 6ec8b2957da5abc6c455cb1af3f6b5d6d671e8b5 1 parent 5f62c34
SVN Migration authored
Showing with 0 additions and 39,794 deletions.
  1. +0 −11 BUGS
  2. +0 −624 CHANGES
  3. +0 −149 CODING_STANDARDS
  4. +0 −339 COPYING
  5. +0 −176 CREDITS
  6. +0 −860 ChangeLog
  7. +0 −86 ChangeLog.TODO
  8. +0 −54 EXTENSION_STATUS
  9. +0 −538 FUNCTION_LIST.txt
  10. +0 −159 INSTALL
  11. +0 −64 LICENSE
  12. +0 −231 Makefile.in
  13. +0 −57 README.QNX
  14. +0 −59 README.WIN32
  15. +0 −100 TODO
  16. +0 −4 TSRM/Makefile.am
  17. +0 −392 TSRM/TSRM.c
  18. +0 −100 TSRM/TSRM.dsp
  19. +0 −97 TSRM/TSRM.h
  20. +0 −7 TSRM/acconfig.h
  21. +0 −24 TSRM/buildconf
  22. +0 −24 TSRM/configure.in
  23. +0 −17 WISHLIST
  24. +0 −55 WISHLIST-3.1
  25. +0 −121 acconfig.h.in
  26. +0 −152 acinclude.m4
  27. +0 −4 apMakefile.libdir
  28. +0 −77 apMakefile.tmpl
  29. +0 −276 apidoc-zend.txt
  30. +0 −492 apidoc.txt
  31. +0 −92 build-defs.h.in
  32. +0 −31 buildconf
  33. +0 −244 calendar.mak
  34. +0 −458 cgi_main.c
  35. +0 −743 config.guess
  36. +0 −939 config.sub
  37. +0 −978 configure.in.in
  38. +0 −204 crypt.mak
  39. +0 −62 cvsusers
  40. +0 −234 dbase.mak
  41. +0 −201 dbm.mak
  42. +0 −9 ext/Makefile.am
  43. +0 −6 ext/apache/Makefile.am
  44. +0 −404 ext/apache/apache.c
  45. +0 −5 ext/apache/config.m4
  46. +0 −6 ext/aspell/Makefile.am
  47. +0 −218 ext/aspell/aspell.c
  48. +0 −3  ext/aspell/config.h.stub
  49. +0 −27 ext/aspell/config.m4
  50. +0 −50 ext/aspell/php3_aspell.h
  51. +0 −5 ext/bcmath/Makefile.am
  52. +0 −445 ext/bcmath/bcmath.c
  53. +0 −2  ext/bcmath/config.h.stub
  54. +0 −19 ext/bcmath/config.m4
  55. +0 −1,626 ext/bcmath/number.c
  56. +0 −118 ext/bcmath/number.h
  57. +0 −64 ext/bcmath/php3_bcmath.h
  58. +0 −6 ext/bcmath/setup.stub
  59. +0 −24 ext/com/php3_COM.h
  60. +0 −6 ext/dav/Makefile.am
  61. +0 −2  ext/dav/config.h.stub
  62. +0 −29 ext/dav/config.m4
  63. +0 −300 ext/dav/dav.c
  64. +0 −66 ext/dav/php3_dav.h
  65. +0 −2  ext/dav/setup.stub
  66. +0 −6 ext/db/Makefile.am
  67. +0 −5 ext/db/config.h.stub
  68. +0 −53 ext/db/config.m4
  69. +0 −1,172 ext/db/db.c
  70. +0 −94 ext/db/php3_db.h
  71. +0 −5 ext/dbase/Makefile.am
  72. +0 −3  ext/dbase/config.h.stub
  73. +0 −21 ext/dbase/config.m4
  74. +0 −762 ext/dbase/dbase.c
  75. +0 −94 ext/dbase/dbf.h
  76. +0 −261 ext/dbase/dbf_head.c
  77. +0 −9 ext/dbase/dbf_head.h
  78. +0 −168 ext/dbase/dbf_misc.c
  79. +0 −13 ext/dbase/dbf_misc.h
  80. +0 −183 ext/dbase/dbf_ndx.c
  81. +0 −98 ext/dbase/dbf_ndx.h
  82. +0 −182 ext/dbase/dbf_rec.c
  83. +0 −10 ext/dbase/dbf_rec.h
  84. +0 −55 ext/dbase/php_dbase.h
  85. +0 −4 ext/dbase/setup.stub
  86. +0 −661 ext/ereg/ereg.c
  87. +0 −71 ext/ereg/php_ereg.h
  88. +0 −14 ext/ereg/php_regex.h
  89. +0 −20 ext/ereg/regex/COPYRIGHT
  90. +0 −141 ext/ereg/regex/Makefile.in
  91. +0 −32 ext/ereg/regex/README
  92. +0 −92 ext/ereg/regex/WHATSNEW
  93. +0 −31 ext/ereg/regex/cclass.h
  94. +0 −102 ext/ereg/regex/cname.h
  95. +0 −242 ext/ereg/regex/debug.c
  96. +0 −14 ext/ereg/regex/debug.ih
  97. +0 −1,019 ext/ereg/regex/engine.c
  98. +0 −35 ext/ereg/regex/engine.ih
  99. +0 −510 ext/ereg/regex/main.c
  100. +0 −19 ext/ereg/regex/main.ih
  101. +0 −76 ext/ereg/regex/mkh
  102. +0 −1,546 ext/ereg/regex/regcomp.c
  103. +0 −48 ext/ereg/regex/regcomp.ih
  104. +0 −124 ext/ereg/regex/regerror.c
  105. +0 −12 ext/ereg/regex/regerror.ih
  106. +0 −502 ext/ereg/regex/regex.3
  107. +0 −233 ext/ereg/regex/regex.7
  108. +0 −106 ext/ereg/regex/regex.dsp
  109. +0 −29 ext/ereg/regex/regex.dsw
  110. +0 −79 ext/ereg/regex/regex.h
  111. +0 −304 ext/ereg/regex/regex.mak
  112. +0 −138 ext/ereg/regex/regex2.h
  113. +0 −140 ext/ereg/regex/regexec.c
  114. +0 −37 ext/ereg/regex/regfree.c
  115. +0 −316 ext/ereg/regex/split.c
  116. +0 −475 ext/ereg/regex/tests
  117. +0 −22 ext/ereg/regex/utils.h
  118. +0 −73 ext/ext_skel
  119. +0 −6 ext/fdf/Makefile.am
  120. +0 −2  ext/fdf/config.h.stub
  121. +0 −39 ext/fdf/config.m4
  122. +0 −531 ext/fdf/fdf.c
  123. +0 −63 ext/fdf/php3_fdf.h
  124. +0 −7 ext/fdf/setup.stub
  125. +0 −6 ext/filepro/Makefile.am
  126. +0 −2  ext/filepro/config.h.stub
  127. +0 −17 ext/filepro/config.m4
  128. +0 −550 ext/filepro/filepro.c
  129. +0 −57 ext/filepro/php_filepro.h
  130. +0 −5 ext/filepro/setup.stub
  131. +0 −4 ext/gd/Makefile.am
  132. +0 −6 ext/gd/config.h.stub
  133. +0 −54 ext/gd/config.m4
  134. +0 −1,785 ext/gd/gd.c
  135. +0 −201 ext/gd/gdcache.c
  136. +0 −87 ext/gd/gdcache.h
  137. +0 −862 ext/gd/gdttf.c
  138. +0 −16 ext/gd/gdttf.h
  139. +0 −102 ext/gd/php3_gd.h
  140. +0 −6 ext/gd/setup.stub
  141. +0 −6 ext/gettext/Makefile.am
  142. +0 −3  ext/gettext/config.h.stub
  143. +0 −45 ext/gettext/config.m4
  144. +0 −169 ext/gettext/gettext.c
  145. +0 −56 ext/gettext/php3_gettext.h
  146. +0 −6 ext/gettext/setup.stub
  147. +0 −128 ext/hyperwave/DList.h
  148. +0 −6 ext/hyperwave/Makefile.am
  149. +0 −2  ext/hyperwave/config.h.stub
  150. +0 −18 ext/hyperwave/config.m4
  151. +0 −194 ext/hyperwave/debug.h
  152. +0 −413 ext/hyperwave/dlist.c
  153. +0 −4,703 ext/hyperwave/hg_comm.c
  154. +0 −196 ext/hyperwave/hg_comm.h
  155. +0 −3,016 ext/hyperwave/hw.c
  156. +0 −122 ext/hyperwave/hw.h
  157. +0 −117 ext/hyperwave/hw_error.h
  158. +0 −6 ext/hyperwave/setup.stub
  159. +0 −6 ext/imap/Makefile.am
  160. +0 −2  ext/imap/config.h.stub
  161. +0 −69 ext/imap/config.m4
  162. +0 −2,665 ext/imap/imap.c
Sorry, we could not display the entire diff because too many files (565) changed.
View
11 BUGS
@@ -1,11 +0,0 @@
-If you think you've found a bug in PHP3, you can report it on the bug
-reporting page at:
- http://www.php.net/
-
-Current Known Bugs:
-
-* split() function doesn't return regex errors nicely
-* Preprocessed scripts don't work with require() and define()
-* unset() doesn't actually erase the variables it just marks them as uninitialized
-* Some parts in the language core prevent more than 256 arguments in function
- calls from being possible
View
624 CHANGES
@@ -1,624 +0,0 @@
-Noticeable Changes between PHP/FI 2.0 and PHP 3.0
-=================================================
-
-This file was designed to be viewed with a tab size of 4 characters.
-
-This file is divided into 4 sections:
-1. Downwards incompatible language changes. This section includes all of
- the changes in the core language which may require people to modify
- their scripts before using them with PHP 3.0. It does NOT list
- changes made in the behavior of specific functions.
-2. New language features. This section includes all of the new additions
- to the core language, that may be used to enhance scripts designed for
- PHP 3.0. Likewise, it does not include a listing of new functions.
-3. Structural changes not directly effecting the end user. The core
- of PHP 3.0 is a complete rewrite. As such, many issues effecting
- PHP/FI 2.0 were addressed and vastly improved in this version,
- resulting in a much more stable and efficient implementation. This
- section lists these changes in design.
-4. Other changes that don't fit in any of the above categories.
-
-Please remember that PHP 3.0's core is a complete rewrite, and thus,
-there may be other undocumented incompatibilities we haven't thought
-of ourselves. If you think you've found a incompatibility (or a new
-feature) which is not listed here, please mail us at
-php-dev@php.iquest.net.
-
-
-
- - Zeev
-
-------------------------------------------------------------------------------
-
-Downwards incompatible language changes
-=======================================
-
-[1] The close-PHP tag has changed from > to ?>
-
- This means that instead of writing:
-
- <?echo $title;>
-
- You should write:
-
- <?echo $title;?>
-
- PHP3 also includes support for a longer-form start tag that is
- XML-compliant:
-
- <?php echo $title;?>
-
- The ability to use the short start tag ('<?') can be turned on and
- off using the short_tags() function. Whether it is enabled or not by
- default is a compile-time option (normally set to enabled by default).
-
-
-[2] Semicolons in if/elseif/else must be replaced with colons.
-
- For example, the equivalent of:
-
- if (expr);
- statements
- ...
- elseif (expr);
- statements
- ...
- else;
- statements
- endif;
-
- in PHP 3.0 would be:
-
- if (expr):
- statements
- ...
- elseif (expr):
- statements
- ...
- else:
- statements
- endif;
-
- Note that the endif is followed by a semicolon and not a colon even in
- PHP 3.0, which marks the end of the entire IF sentence.
-
- Also note that the implementation of the colon-mode and curly-braces
- mode in PHP 3.0 is identical, one isn't buggier than the other (note
- that I'm not saying they're not buggy, though :)
-
-
-[3] Semicolons in while loops must also be replaced with colons.
-
- For example, the equivalent of:
-
- while (expr);
- statements
- ...
- endwhile;
-
- in PHP 3.0 would be:
-
- while (expr):
- statements
- ...
- endwhile;
-
- Note that the endwhile is followed by a semicolon and not a colon even
- in PHP 3.0, which marks the end of the WHILE sentence. As with the IF
- statement, the implementation of the colon-mode and curly-braces mode
- in PHP 3.0 is identical, one isn't buggier than the other.
-
- Also note that failing to change the semicolon to a colon can result in
- scripts that get stuck in the while loop because the loop-condition never
- changes.
-
-
-[4] $foo[0] is no longer identical to $foo.
-
- In PHP/FI 2.0, a side-effect of the implementation caused $foo[0] to be
- identical to $foo. This is not the case in PHP 3.0.
-
-
-[5] Expressions determine their types differently.
-
- The way expressions are evaluated has changed radically in PHP 3.0.
- Expressions are no longer given the type of the left argument, but are
- assigned types taking both types into account, and regardless of which
- is on the left side and which is on the right side. On simple scripts
- that should probably not effect you, but if you've relied on this fact
- (even without realizing you do) it may change the way your scripts work.
- Consider the next example:
-
- $a[0]=5;
- $a[1]=7;
-
- $key = key($a);
- while ("" != $key) {
- echo "$key\n";
- next($a);
- }
-
-
- In PHP/FI 2.0, this would display both of $a's indices. In PHP 3.0, it
- wouldn't display anything. The reason is that in PHP/FI 2.0, because the
- left argument's type was string, a string comparison was made, and indeed
- "" does not equal "0", and the loop went through. In PHP 3.0, when a
- string is compared with an integer, an integer comparison is made (the
- string is converted to an integer). This results in comparing atoi("")
- which is 0, and $key which is also 0, and since 0==0, the loop doesn't
- go through even once. The fix for this is simple, by replacing the
- while statement with:
-
- while ("" != stringval($key)) {
-
- This would first convert the integer 0 to a string "0", and then
- compare "" and "0", which are not equal, and the loop would go through
- as expected. As mentioned later, casting operators are supported in
- PHP 3.0 for a quicker and more readable way of changing variables'
- types. For example, you could use:
-
- while ("" != (string)$key) {
-
-
-[6] The structure of error messages has changed.
-
- Although the error messages are usually more accurate, you won't be shown
- the actual line of text and actual place in which the error occured.
- You'll be supplied with the line number in which the error has occured,
- though.
-
-
-[7] The format string argument to echo is no longer supported.
-
- Use printf(format,arg1,arg2,arg3,...) instead (unlimited arguments).
-
-
-[8] The use of read-mode $array[] is no longer supported.
-
- That is, you cannot traverse an array by having a loop that does $data =
- $array[]. Use current() and next() instead. Also, $array1[] = $array2
- does not append the values of $array2 to $array1, but appends $array2
- as the last entry of $array1 (see the multidimensional array support).
-
-
-[9] Apache versions older than 1.2 are not supported anymore.
-
- The apache module requires apache 1.2 or later (1.3-beta is supported).
-
-
-[10] Indirect references inside quoted strings
-
- PHP2-style indirect reference inside quoted strings is no longer
- supported. That is, if $foo="bar", and $bar="abc", in PHP2,
- "$$foo" would print out "abc". In PHP3, this would print
- "$bar" (the contents of $foo is replaced with "bar").
- To use indirect reference in PHP3 inside quoted strings, you should use
- the new notation: "${$foo}". The standard $$foo notation will work
- outside of the quoted string.
-
-[11]
- Some functions have changed names, are missing, or have been deprecated
- by other functions
-
- As a whole new rewrite, written by many more people and supporting many
- more APIs than it's predecessor, there's a good chance some of the functions
- you're used to from PHP/FI 2 aren't available in release 3, or have changed
- names. Many functions that do exist behave a bit differently, mainly
- because they return different values for errors (false) but also for other
- reasons. We can't list all of these functions here, simply because drawing
- a full comparison between the function sets of the two versions is way too
- much work. If a converted PHP/FI 2 script doesn't work for you, nothing
- can replace the good old human eye going over the code, doublechecking
- with the online manual that each function still does what you expected it
- to do.
-
-[12] Other incompatibilities.
-
- It's not too unlikely that other documented behavior of PHP2 has changed
- in this release. If you think you've found an example, please mail
- us at php-dev@php.iquest.net. Even if you've found an undocumented
- feature of PHP2 that stopped working in PHP3, we'd like to know about it
- (although it's more than likely that it will not be supported).
-
-
-
-------------------------------------------------------------------------------
-
-
-New Language Features
-=====================
-
-[1] Expressions
-
- PHP 3.0 includes a rich implementation of expressions, much more advanced
- than this of 2.0. Just about any complex C-like or perl-like expression
- would work. Support was added for assignment operators (+=, -=, *= etc),
- pre and post increment/decerement (e.g. $i++, ++$i) and the questionmark
- operator ( (expr?expr:expr) ). Every assignment is now an expression
- with a value, which means stuff like $a = $b = $c = $d = 0; would work.
- It is difficult to describe the power of expressions within a few lines
- of text, but if you're familiar with them, you probably get the picture.
-
-
-[2] for loops are now supported.
-
- for loops were fairly difficult to implement (in fact, we didn't find
- any parallel interpreter that supports for loops anywhere (no, perl is
- not an interpreter)). The bottom line is that for loops work, and are
- around 5% slower than comparable while loops (that may vary), but often
- they're much nicer.
-
- The syntax is identical to the one of C:
-
- for (expr; expr; expr) statement;
-
- or
-
- for (expr; expr; expr) { statements ... }
-
- The first expression is executed the first time the loop is encountered,
- the loop is run as long as the second expression is evaluated as TRUE,
- and after each iteration, the 3rd expression is evaluated.
-
- Colon-mode FOR loops are also supported:
- for (expr; expr; expr):
- statements
- ...
- endfor;
-
-
-[3] do..while(expr) loops are now supported.
-
- Like with its C parallel, the statements inside a do..while loop are
- run once the first time the loop is encountered, and then as long as
- the expression evaluates as true.
-
- For example:
-
- do {
- statements;
- } while ($i++ < $max);
-
-
-[4] break and continue statements are now supported inside loops.
-
- You can break out of loops, or continue to the next iteration of the
- loop using these statements. A special feature of PHP is the ability
- to specify an expression argument to break or continue, which specifies
- how many loops you want to break out from or continue to. For example:
-
- for ($i=0; $i<10; $i++) {
- for ($j=0; $j<10; $j++) {
- if ($j>5)
- break;
- if ($i>5)
- break 2;
- }
- }
-
- The first break statement would end the inner loop every time $j is
- greater than 5. The second break statement would end both the inner
- and outer loop when $i is greater than 5.
-
- Note: For this matter, switch statements are considered as loops. So
- if you write "break 2;" inside a switch statement, you would be asking
- to break out of the switch, and the innermost loop in which is nested.
-
-
-[5] Switched to C-style declaration of functions.
-
- Here's a pretty useless function which makes a good example:
-
- function concat($str1,$str2)
- {
- return $str1.$str2;
- }
-
- NOTE: The old style function definition is still supported, to
- allow easier upgrading from PHP/FI 2.0 scripts. Simply
- change 'function' to 'old_function' for these functions.
-
-
-[6] OOP support
-
- Classes and inheritance are supported to a limited extent in PHP 3.0.
- Here's how to declare a simple class:
-
- class simple_class {
- var $property1,$property2;
- var $property3=5;
-
- function display() {
- printf("p1=%d, p2=%d, p3=%d\n",
- $this->property1,
- $this->property2,
- $this->property3);
- }
- function init($p1,$p2) {
- $this->property1 = $p1;
- $this->property2 = $p2;
- }
- };
-
- Here's how to create an object of that class:
-
- $obj = new simple_class;
-
- At this point, $obj is an object with 2 uninitialized variables, 1
- initialized variable, and 2 member functions. No protection is made on
- the internals of the object, and using its properties is simple:
-
- $obj->property1 = 7;
-
- would assign 7 to $property1 inside $obj. Calling member functions is
- also simple:
-
- $obj->display()
-
- would run the display() member function of $obj. Note that the
- implementation of display() uses the special variable $this, which is
- replaced with the object the function is called on.
-
- Inheritance is pretty simple too:
-
- class complex_class extends simple_class {
- var $property4="test";
-
- function display() {
- printf("p1=%d, p2=%d, p3=%d, p4=%d\n",
- $this->property1,
- $this->property2,
- $this->property3,
- $this->property4);
- }
- }
-
- Basically, the class complex_class inherits everything from its parent,
- simple_class, except properties or member functions which override the
- ones in the parent. In this example, since we supply an alternative
- display() function, it would be used with complex_class objects instead
- of the display() function that was declared in simple_class. On the other
- hand, since we don't supply an alternative init() function, complex_class
- objects would have the same init() function as simple_class objects do.
-
- As with expressions, it's impossible to teach OOP in a few lines, and
- personally I'm unclear as to how useful this would be in day to day
- scripting. If you like this, play with this until you figure it out :)
-
- Objects can reside in arrays, and can contain arrays. However,
- a limitation of the current implementation doesn't allow an object
- to contain an array of objects (actually, this is allowed, but
- there's no way to address the properties of such an object directly,
- but only indirectly). For example, assuming $a[3] is an object,
- $a[3]->b[2] is an object as well, you can't address the properties
- of $a[3]->b[2] (i.e. you can't write $a[3]->b[2]->foo = "bar", for
- instance).
-
-
-[7] Function pointers are now supported.
-
- A simple illustrative example:
-
- $func_ptr = "time";
- $current_time = $func_ptr();
-
- is identical to
-
- $current_time = time();
-
-
-[8] Indirect references are much more powerful.
-
- For example, one can use the dollar operator an infinite amount of times:
-
- $a = "b";
- $b = "c";
- $c = "d";
- $d = "e";
- $e = "Testing\n";
-
- echo $$$$$a;
-
- Would display $e's content, which is "Testing\n".
-
- In addition, one can use complex expressions to generate variable names
- using a perl-like notation:
-
- $i="123";
- ${"test".$i} = 5;
-
- would assign 5 to $test123.
-
-[9] A string concatenation operator was added, '+' no longer concatenates strings.
-
- A perl-like string concatenation operator was added, the '.' operator.
- It converts both of its arguments to strings, and concatenates them.
- For example:
-
- $result = "abcd".5;
-
- assigns "abcd5" to result. Note that under PHP 3.0, the '+' operator
- no longer performs concatenation if its arguments are strings. Use
- the '.' operator instead.
-
-[10] Supports passing function arguments by references instead of by value.
-
- Support for passing function arguments by reference instead of by value
- has been added. This doesn't result in having to change the function
- implementations in any way, but, when calling the function, you can
- decide on whether the variable you supply would actually be changed by
- the function, or a copy of it.
-
- Example:
-
- function inc($arg)
- {
- $arg++;
- }
-
- $i=0;
- inc($i); # here $i in the outer scope wouldn't change, and remain 0
- inc(&$i); # here $i is passed by reference, and would change to 1
-
-
-[11] Support for multidimensional arrays.
-
- (Or as Andi calls them, 'hyperdimensional variables'.)
-
- The easiest way to define this support of PHP 3.0 is inductive -
- arrays can contain any type of variables, including other arrays.
- A simple example:
-
- $a[0]=5;
- $a[1]["testing"]=17;
- $b["foo"]=$a;
-
- Ok, so it may be not so simple. Play with it, it's pretty powerful.
-
-
-[12] Array initialization is now supported.
-
- For example, let's say you want to initialize a lookup table to convert
- number to month names:
-
- $months = array("January", "February", "March",
- "April", "May", "June", "July", "August",
- "September", "October", "November", "December");
-
- would assign $months[0] to be January, $months[1] to be February, etc.
- Alternately, you may want the count to start at '1' instead of 0.
- You can do so easily:
-
- $months = array(1=>"January", "February", "March",
- "April", "May", "June", "July", "August",
- "September", "October", "November", "December");
-
- Also, you can specify an index for every entry, not just the first one:
-
- $first_names = array("Doe"=>"John", "Gates"=>"William",
- "Clinton"=>"Bill" });
-
- would assign $first_names["Doe"]="John", etc.
-
-
-[13] Perl style lists now supported.
-
- Multiple values from arrays may now be assigned into several
- variables using one assignment. For example:
-
- $str = "johndoe:x:555:555:Doe, John:/home/johndoe:/bin/tcsh";
-
- list($username,$passwd,$uid,$gid,$realname,$homedir,$shell) =
- explode(":",$str);
-
- Would assign 'johndoe' into $username, 'x' into $passwd, etc.
-
-
-[14] Colons are supported in 'case' and 'default' statements.
-
- For example:
-
- switch($value) {
- case 'A':
- statement;
- break;
- case 'B':
- statement;
- break;
- case 'C':
- statement;
- /* fall-through */
- default:
- statement;
- }
-
- Semicolons are still supported, but when writing new scripts, they
- should be phased out in favour of colons.
-
-
-------------------------------------------------------------------------------
-
-
-Non Language Related New Features
-=================================
-
-[1] Persistent resource lists.
-
- In plain english this means that there's now an easy way of writing the
- SQL drivers so that they don't open and close the SQL link every time,
- but instead open it the first time it's required, and then use it on
- every later hit. As of PHP 3.0a1, only the MySQL, mSQL and PostgresSQL
- drivers have been changed (rewritten) to take advantage of this option.
- To use it, use mysql_pconnect() instead of mysql_connect() (or the
- equivalents for the two other databases).
-
-
-[2] Configuration file.
-
- PHP now has its own configuration file, and many compile-time options
- of PHP2 are now configurable at runtime.
-
-
-[3] Syntax Highlighting.
-
- A syntax highlighter has been built into PHP 3.0, which means PHP 3.0 can
- display your code, syntax highlighted, instead of executing it.
- There are currently two ways to use the syntax highlighter. One is to
- use the show_source() statement. This statement is identical to the
- include() statement, except instead of executing the file, it displays
- its source syntax highlighted.
- The second way is possible only when running as an apache module, and is
- to define a special extension for PHP 3.0 source files (e.g. .php3s)
- and instruct apache to automatically syntax highlight them.
-
-
-[4] Loadable modules.
-
- This would have a huge impact on the Windows version, and would probably
- be used in the UNIX environment as well. One can now add PHP internal
- functions in runtime by loading a dynamic module. This is known to work
- under Solaris, Linux and Win32 at this time, but would be ported to any
- other capable platform if an incompatability is found.
-
-
-------------------------------------------------------------------------------
-
-
-Other Interesting Issues
-========================
-
-
-[1] Improved performance.
-
- The performance of PHP 3.0 is much better than the one of PHP/FI 2.0.
- Memory consumption has been dramatically reduced in many cases, due
- to the use of an internal memory manager, instead of apache's pools.
- Speedwise, PHP 3.0 is somewhere between 2 and 3 times faster than
- PHP/FI 2.0.
-
-
-[2] More reliable parser.
-
- After PHP 3.0 is well tested, it'll be pretty safe to say that it's
- more reliable than PHP/FI 2.0 is. While PHP/FI 2.0 performed well on
- simple, and fairly complex scripts, a fundamental design difference
- from PHP 3.0 makes it more prone to errors. In PHP 3.0, obscure parser
- problems are much less likely.
-
-
-[3] Improved C API.
-
- If you're a C coder, adding functionality to PHP was never easier.
- A pretty well documented API is available (apidoc.txt), and you no longer
- have to touch the parser or scanner code when adding your function.
- Also, it's more complicated to 'go wrong' when implementing a PHP3
- function than it was in PHP2 (no stack to maintain) - but of course,
- you can mess up here too :)
-
-
-[4] Name change.
-
- PHP/FI 2.0 was renamed to PHP 3.0, and the meaning has changed from
- 'Personal Home Pages / Forms Interpreter' to 'PHP: Hypertext Preprocessor'.
- 'Personal' home pages was an understatement for PHP/FI 2.0, and is
- definitely an understatement for PHP 3.0.
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
339 COPYING
@@ -1,339 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- Appendix: How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
View
176 CREDITS
@@ -1,176 +0,0 @@
-PHP Version 3.0 Development Team
-
-------------------------------------------------------------------------------
-
-Core Developers
-===============
-
-Rasmus Lerdorf (rasmus@lerdorf.on.ca)
-
-* Original language definition and implementation
-* CGI loader and many internal functions
-* Apache module support
-* SNMP module
-* Original mSQL, MySQL and Sybase modules
-* Oracle module work
-
-
-Andi Gutmans (andi@php.net) and Zeev Suraski (zeev@php.net)
-
-* New language definition and implementation
-* Internal functions API design
-* General hash table implementation for symbol tables, arrays and objects
-* Memory manager
-* Token cache manager
-* A lot of internal functions (including hebrev :) and migration from PHP 2.0
-* Syntax highlighting mode
-* Configuration file parser
-* New persistent/multilink MySQL, PosgresSQL, Sybase and mSQL modules
-* Win32 COM support
-
-
-Stig Bakken (ssb@guardian.no)
-
-* Oracle support
-* configure/install script work
-* sprintf reimplementation
-* XML support
-* SGML documentation framework
-
-
-Shane Caraveo (shane@caraveo.com)
-
-* Porting to Visual C++
-* Generalization to support different server APIs
-* Work on ISAPI and NSAPI APIs
-
-
-Jim Winstead (jimw@php.net)
-
-* Lots of PHP2 -> PHP3 porting
-* dBase support
-* URL parsing functions
-* Makefile work
-* Regex rewrite
-* Win32 work
-
-
-------------------------------------------------------------------------------
-
-Major Contributors
-==================
-
-* Jouni Ahto (jah@cultnet.fi)
- Postgres, Informix
-
-* Alex Belits (abelits@phobos.illtel.denver.co.us)
- fhttpd support
-
-* Bj�rn Borud (borud@guardian.no)
- soundex code and lots of enthusiasm
-
-* Christian Cartus (chc@idgruppe.de)
- Informix Universal Server support
-
-* John Ellson (ellson@lucent.com)
- Freetype support
-
-* Dean Gaudet (dgaudet@arctic.org)
- Apache module debugging + helpful hints along the way
-
-* Mitch Golden (mgolden@interport.net)
- Oracle testing and bug fixes
-
-* Danny Heijl (Danny.Heijl@cevi.be)
- Informix SE support
-
-* Mark Henderson (mark@togglemedia.com)
- Various odds and ends
-
-* Jaakko Hyv�tti (jaakko@hyvatti.iki.fi)
- Prototype cop, regular expression code fixes, CGI security issues
-
-* Amitay Isaacs (amitay@w-o-i.com)
- LDAP
-
-* Andreas Karajannis (Andreas.Karajannis@gmd.de)
- Adabas D, ODBC, Oracle
-
-* Igor Kovalenko (owl@infomarket.ru)
- QNX support issues
-
-* Richard Lynch (lynch@lscorp.com)
- Documentation
-
-* Tom May (tom@go2net.com)
- Sybase-CT work
-
-* Muhammad A Muquit (MA_Muquit@fccc.ed)
- Original Sybase module
-
-* Mark Musone (musone@edgeglobal.com)
- IMAP
-
-* Jeroen van der Most (jvdmost@digiface.nl)
- Solid
-
-* Chad Robinson (chadr@brttech.com)
- Documentation, FilePro
-
-* Lachlan Roche (lr@www.wwi.com.au)
- MD5
-
-* Stefan Roehrich (sr@linux.de)
- zlib
-
-* Nikolay P. Romanyuk (mag@redcom.ru)
- Velocis support
-
-* Brian Schaffner (brian@tool.net)
- ODBC support, PHP3 API testing
-
-* Egon Schmid (eschmid@delos.lf.net)
- Documentation
-
-* (sopwith@redhat.com)
- Solid
-
-* Colin Viebrock (cmv@privateworld.com)
- Website graphic design and layout, PHP logo
-
-* Eric Warnke (ericw@albany.edu)
- LDAP
-
-* Lars Torben Wilson (torben@netmill.com)
- Documentation
-
-* Uwe Steinmann (Uwe.Steinmann@fernuni-hagen.de)
- Hyperwave, PDF, Acrobat FDF Toolkit
-
-------------------------------------------------------------------------------
-
-Beta Testers
-------------
-
-* Niklas Saers (berenmls@saers.com)
- FreeBSD/x86
-
-* Chuck Hagenbuch <chuck@osmos.ml.org>
- Linux/x86 glibc2, MySQL, mod_ssl
-
-* Sascha Schumann (sas@schell.de)
- FreeBSD/x86, PostgreSQL, IMAP, gdttf
-
-* Jim Jagielski (jim@jagunet.com)
- A/UX, FreeBSD/x86
-
-* Jouni Ahto (jah@cultnet.fi)
- Debian Linux 2.0
-
-
-
-
-------------------------------------------------------------------------------
-
-Andi Gutmans and Zeev Suraski would like to thank Professor Michael Rodeh for
-his positive input during the initial development of the interpreter.
View
860 ChangeLog
@@ -1,860 +0,0 @@
-PHP 3.0 CHANGE LOG ChangeLog
-|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-
-December 24 1998, Version 3.0.6
-- Fix GetImageSize() to work with non-standard jpg images
-- Add Mersenne Twister functions (mt_rand, mt_srand, etc)
-- Add str_replace() function
-- Add chunk_split() function
-- Fixed a bug in the memory limit code, in cases where $php_errormsg was
- also used.
-- Add iptcparse() function
-- Adobe FDF supported
-- getallheaders() NULL string fix <michale@utko.fee.vutbr.cz>
-- Add all configuration directives to phpinfo() page
-- Functions pack() and unpack() rewritten to be binary and buffer overrun
- safe and behave like the Perl functions for all implemented format codes.
-- Ensured that msql_error() will not return error messages generated by
- previously-run scripts.
-- Add base_convert() function
-- Make sprintf() and printf() output binary safe
-- Made gzgetc binary safe
-- Add convert_cyr_string() and quoted_printable_decode() functions
-- Fix ldap_free_result() core dump bug
-- Add support for current OpenLDAP-2.0-devel library
-- Add php3_asp_tags directive so it can be set from Apache config files
-- Added UTF-8 support in the XML extension
-- Make rand(min,max) safer on older platforms where the low-order bits have
- short cycles.
-- Added new pdf (Portable Document Format) module
-- Added an XML parsing extension using James Clark's "expat" library
-- Optimized parts of the token cache code.
-- Terminate on out-of-memory errors. Until now, PHP could crash in out of
- memory situations (clean-up, no real effect).
-- Unterminated comments in include files were being reported with the wrong line
- number. Fixed.
-- Added ImageCopy() and ImageColorDeallocate(). ImageCopy() is about
- 20% faster than ImageCopyResized(). ImageColorDeallocate() marks
- palette entries free for reuse (by <mka@satama.com>).
-- In the CGI version, it was impossible to access resources (e.g. SQL links,
- images) from user-defined shutdown functions. Fixed.
-- Added optional third parameter to strpos() to specify the offset to
- start searching from.
-- Fixed a crash bug in unset() when unsetting illegal variables (rare).
-- Made ImageInterlace and ImageTransparentColor parameters optional, and made
- them return the current/new settings.
-- Optimized GetImageSize() <thies@digicol.de>.
-- Made odbc_autocommit() without args return status
-- Added connect workaround for OpenLink ODBC
-- Added minimal InterBase support. Tested only on 4.0 & Linux.
-- Fixed some memory leaks and bogus error messages in the URL handler of
- the various file open functions. Should only affect error handling
- in bad URLs.
-
-October 5 1998 Version 3.0.5
-- mysql_field_flags now reports all MySQL flags and the result is suitable
- for automatic parsing. Compatibility warning: The result format has
- changed. If you have scripts parsing the result of this function, you
- may need to adapt them.
-- Made nl2br() binary safe (not that it's of much use).
-- Fixed a bug in the API function getThis(). It affected mostly the dir
- functions, if nested within objects.
-- Fixed a problem in require() in conjunction with switch(), and in some other
- cases. Also fixed an identical problem with the call_user_function() API
- function.
-- Removed -lpthread when compiling with MySQL support. It caused various
- serious problems when compiled into Apache.
-- Add serialize() and unserialize() functions from jkl@njet.net
-- Fix in_addr_t check for systems with in_addr_t in netinet/in.h
-- Add atan2() function
-
-September 22 1998 Version 3.0.4
-- Added uksort() - array key sort using a user defined comparison function.
-- Added 'j' support to date() - generates the day of the month, without
- possible leading zeros.
-- Added support for multiple crypt() encryptions if the system supports it
-- Added optional support for ASP-style <% %> and <%= tags
-- Fixed data loss problems with very large numeric array indices on 64-bit
- platforms (e.g. DEC UNIX).
-- 2 cursor_type parameters for ifx_query() and ifx_prepare changed
- to 1 (bitmask). Added a few constants for use in Informix module.
-- Added php3.ini option ifx.charasvarchar. If set, trailing blanks
- are stripped from fixed-length char columns. (Makes life easier
- for people using Informix SE.)
-- Static SNMP module which compiles with ucd-snmp 3.5.2
-- fixed imap_header & header_info from crashing when a header line
- is > 1024 characters.
-- Added patch for rfc822_parse_adr to return an array of objects instead
- of a single object.
-- Informix Online 7.x & SE 7.x support now fairly complete and stable
-- Add dbase_get_record_with_names() function
-- Added a special case for open_basedir. When open_basedir is set to "."
- the directory in which the script is stored will be used as basedir.
-- Include alloca.c in the distribution for platforms without alloca().
-- Improved stripping of URL passwords from error messages - the length of the
- username/password isn't obvious now, and all protocols are handled properly
- (most importantly, http).
-- Copying objects that had member functions with static variables produced
- undetermined results. Fixed.
-- Added function lstat() and cleaned up the status functions,
- added tests for file status functions (this may break on some plattforms)
-- Fixed is_link() - it was returning always false.
-- Fixed apache_note() - it was corrupting memory.
-- New Function. void get_meta_tags(string filename); Parses filename until
- closing head tag and turns all meta tags into variables prefixed with 'meta_'.
- The below meta tag would produce $meta_test="some string here"
- <meta name="test" content="some string here">
-- Generalized some internal functions in order to better support calling
- user-level functions from C code. Fixes a few sporadic problems related
- to constructors inside eval() and more.
-- Fixed an endless loop in explode(), strstr() and strpos() in case of an
- invalid empty delimiter.
-- rand() now accepts two optional arguments, which denote the requested range
- of the generated number. E.g., rand(3,7) would generate a random number
- between 3 and 7.
-- Added M_PI constant.
-- Added deg2rad() and rad2deg() for converting radians<->degrees.
-- ImageArc() misbehaved when given negative angles, fixed.
-- Fixed a bug in ereg() that may have caused buglets under some circumstances.
-- Added imap_status
-- Shutdown functions, registered via register_shutdown_function(), could never
- generate output in the Apache module version. Fixed.
-- Brought IMAP docs into sync with acutal imap code
-- imap_fetchstructure now takes in optional flags
-- Fix potential core dumps in imap_append and imap_fetchtext_full
-- Fix problem in SetCookie() function related to long cookies
-- Add uasort() function to go along with usort (like sort() and asort())
-- Add port number to Host header as per section 14.23 of the HTTP 1.1 RFC
-- Fix imap_reopen to only take 2 arguments with an optional 3rd flags arg
-- Add optional 2nd argument to imap_close
-- Add CL_EXPUNGE flag to imap_open() flags
-- Fix 4th arg on imap_append(). It was getting converted to a long by mistake.
-- Fix shutdown warning in the LDAP module
-- *COMPATIBILITY WARNING* imap_fetchstructure() "parametres" object and property
- name changed to "parameters" to match the documentation and to be consistent
- with the rest of the API.
-- Delete uploaded temporary files automatically at the end of a request
-- Add upload_max_filesize and correponsing php3_upload_max_filesize directive
- to control the maximum size of an uploaded file. Setting this to 0 would
- completely eliminate file uploads.
-- Force $PHP_SELF to PATH_INFO value when running in CGI FORCE_CGI_REDIRECT mode
-- Add apache_lookup_uri() function which does an internal sub-request lookup
- and returns an object containing the request_rec fields for the URI. (Yes,
- you have to be a bit of a gearhead to figure this one out)
-- Fix a few signed char problems causing functions like ucfirst() not to work
- correctly with non-English charsets
-- md5() function not binary safe - fixed
-
-August 15 1998 Version 3.0.3
-- Changed the name of fopen_basedir to open_basedir, to be a little more
- accurate about what it does.
-- Added Hyperwave module
-- Added config-option (php3_)enable_dl <on/off>. This enables/disables the
- dl() function. In safe-mode dl() is always disabled.
-- Auto-prepended files were crashing under some circumstances - fixed.
-- Win32 mail fixes provided by walton@nordicdms.com
-- Comparing between arrays and/or objects now generates a warning (it always
- returns false, as it used to; no comparison is made)
-- Fixed a bug in the syntax highlighting code, that made ending-double-quotes
- appear twice under certain circumstances.
-- Fix bug in filetype() function related to symlinks
-- Started integrating Informix SE support to PHP configure/makefile setup.
-- gdttf roundoff fixes from ellson@lucent.com
-- Added initial Informix SE support files from Danny Heijl - This code still
- needs to be integrated into the PHP configure/makefile setup and the code
- itself needs more work.
-- return in the global scope now terminates the execution of the current file.
-- Added the ability to register shutdown function(s), via
- register_shutdown_function($function_name).
-- Clean up const warnings
-- Add write support to ftp fopen wrappers
-- Add strspn() and strcspn() functions
-- On systems without strerror use Apache version if compiling as Apache module
-- The PHP start tag was being ignored under some circumstances - fixed.
-- The db, dbase and filepro functions are now Safe-Mode aware.
-- Added config-option (php3_)fopen_basedir <path>. This limits the directory-
- tree scripts can open files in to <path>.
-- Fixed pg_loreadall that didn't always return all the contents in a PostgreSQL
- large object. Also, doesn't pass through anything if method is HEAD.
-- configure fix to create target Apache module dir
-- Fix core dump in imageTTFtext() function
-- Added static IMAP support
-- Syntax highlighting was generating additional whitespace - fixed.
-- Added ucwords. Works like ucfirst, but works on all words within a string.
-- Added array_walk() - apply user function to every element of an array
-- Added usort() - array sort that accepts a user defined comparison function!
-- Added the ability to call user-level functions and object methods on demand
- from the C source using a completely generalized, slick API function.
- Miracles do happen every once in a while.
-- Added constructors. Don't even squeek about destructors! :) (we mean that)
-- Make pg_lowrite() binary safe
-- Fixed mod_charset option in ./setup
-- Fixed rewinddir() and dir()::rewind() under Win32 (they didn't work before).
-- Add Win32 COM support! By-name referencing is supported using the IDispatch
- interface (automation). Available functions - COM_Load(), COM_Invoke(),
- COM_PropGet() and COM_PropSet().
-
-July 20 1998 Version 3.0.2a
-- Fix a quirk in the configuration file parser, the endless fountain of joy
- and fun.
-- Fix a bug in the API function add_method() that made dir() crash.
-
-July 18 1998 Version 3.0.2
-- Compile cleanups for *BSD
-- Add support for the OpenLink ODBC Drivers
-- Add PHP_SELF, PHP_AUTH_* and HTTP_*_VARS PHP variables to phpinfo() output
-- Add workaround for broken makes
-- Add Apache 1.3.1 support (some Apache header files were moved around)
-- Added apache_note() function.
-- Fix order of system libraries and detect libresolv correctly
-- Fixed a bug in the Sybase-DB module. Several numeric field types were
- getting truncated when having large values.
-- Added testpages for unified odbc
-- Fix php -s seg fault when filename was missing
-- Made getdate() without args default to current time
-- Added ImageColorResolve() and some fixes to the freetype support.
-- Added strcasecmp()
-- Added error_prepend_string and error_append_string .ini and .conf directives
- to make it possible to configure the look of error messages displayed by PHP
- to some extent
-- Added E_ERROR, E_WARNING, E_NOTICE, E_PARSE and E_ALL constants, that can be
- used in conjunction with error_reporting()
- (e.g. error_reporting(E_ERROR|E_WARNING|E_NOTICE);
-- Fixed a crash problem with classes that contained function(s) with default
- values.
-- Fixed a problem in the browscap module. Browscap files weren't being read
- properly.
-- Fix -L path in libphp4.module to make ApacheSSL compile without errors
-- Fix StripSlashes so it correctly decodes a \0 to a NUL
-
-July 04 1998 Version 3.0.1
-- echo/print of empty strings don't trigger sending the header anymore.
-- Implemented shift left and shift right operators (<< and >>)
-- Compile fix for cc on HP-UX.
-- Look for beta-version Solid libraries as well.
-- Make GD module show more info in phpinfo().
-- Compile fix for NextStep 3.0.
-- Fix for Oracle extension on OSF/1.
-- Fix gd 1.3 bug in ImageColorAt().
-- pg_loread() hopefully handles binary data now.
-- Turned off some warnings in dns.c
-- Added ImageTTFBBox() and made ImageTTFText() return bounding box.
-- Added constants for Ora_Bind()'s modes.
-- Renamed all hash_*() routines to _php3_hash_*() to avoid clashes with other
- libraries.
-- Changed uodbc default LONG behaviour: longreadlen 4096 bytes, binmode 1.
- The module now actually uses the php.ini settings.
-- New PostgreSQL functions: pg_fetch_row(), pg_fetch_array()
- and pg_fetch_object()
-- Fix a segmentation fault when calling invalid functions in certain
- circumstances
-- Fix bug that caused link-related functions to not pay attention to
- run-time safe mode setting (it was using whatever was set at compile time).
-- Fix bug in exec() function when used in safe mode
-
-June 6 1998 Version 3.0
-- Add checkdnsrr function (check availability DNS records)
-- Add getmxrr function (get MX hostnames and weights)
-- Fixed bug in nl2br() function
-- Fix for an RC5 related problem in the Sybase module, when dealing
- with very long data types.
-- Speed up string concatenation by roughly a factor of 2
-- Add escape-handling to date function
-- Make base64 functions binary safe
-- Add strrpos function to complement strpos function added in RC5
-- Add ltrim function (strips only at the start of string)
-- Add rtrim as an alias to chop() for completeness sake
-- Add trim function (similar to chop, except it strips at the start as well)
-- Added 2 optional args to fsockopen function - errno and errstr
-- Fixed bug in split() function related to leading matches
-- Fixed problem in error_log() function (thanks to Jan Legenhausen)
-- empty("0") was returning true - fixed
-- Removed the old sybsql module. Use the new sybase_*() functions instead.
-- Several fixes to the configuration file parser
-- LDAP fixes - fixed return values on several functions
-
-May 23 1998 Version 3.0RC5
-- The BC math library functions now compile in by default.
-- Fixed a bug in virtual() and other types of SSI's (e.g. <!--#exec). Under
- certain circumstances, this used to result in random problems.
-- Fixed a bug in virtual(). It was misbehaving if it was called before any
- other output.
-- Added mysql.default_port, mysql.default_host, mysql.default_user and
- mysql.default_password ini-file directives.
-- Improved handling of the MySQL default port. It now honors /etc/services
- and $MYSQL_TCP_PORT.
-- Fixed a crash in opening of broken ftp:// URLs, and improved error reporting
- in opening of URLs.
-- Fixed several non-critical scanner issues with syntax highlighting mode and
- the <script language=php> tag.
-- Fixed fseek on windows. (windows only): fseek will not return proper results
- on files opened as text mode. PHP uses binary mode as the default for file
- operations, but this can be overiden by fopen. Do not open files in text
- mode and use fseek on them!
-- Add strpos() function
-- Added zlib module, requires zlib >= 1.0.9
-- Improved the module API implementation. Dynamic modules may now register
- persistent resources (not that it makes much sense, but at least PHP
- won't crash). The API itself remains unchanged.
-- bcmod() wasn't always behaving like modulus should behave (it was behaving
- exactly like GNU bc's % operator). Fixed.
-- Changed the Sybase-DB module to always return strings, instead of auto-typing
- result sets. This was done for consistency with the other database modules,
- and in order to avoid overflows due to the platform-dependant limitations
- of the numeric data types of PHP. You can turn compatability mode on using
- the sybase.compatability_mode directive in the php3.ini file.
-- Fixed problems with the TINYINT field in the Sybase-CT module.
-- Applied some small speed optimizations to the Sybase-DB module querying code.
-- Added 'numeric' and 'type' properties to the object returned by
- sybase_fetch_field().
-- The 'new' operator doesn't accept all expressions anymore. Instead, it
- accepts a class name, or a variable reference (scalar, array element, etc).
-- Add ora_numcols() function
-- Add ora_do() and ora_fetch_into() functions to Oracle driver
-- Add persistent connection support to Oracle driver
-- Make Oracle driver clean up open connections and open cursors automatically
-- Added fread() and fwrite() that properly handle binary data.
-- Add Ora_ColumnSize() to Oracle code
-- The string "0" means FALSE again. This was done in order to maintain type
- conversion consistency.
-- Added solid_fetch_prev() for fetching the previous result row from Solid.
-- Huge integers are now automatically converted to floating point numbers
- (that have a wider range).
-- Floating point numbers are now displayed using scientific notation when
- they're extremely big or extremely small. The 'precision' php3.ini directive
- no longer designates the number of decimal digits, but rather, the maximum
- number of significant digits required.
-- Added support for scientific notation for floating point numbers (e.g. 1E7)
- throughout the entire language.
-- Fixed a potential/probable memory corruption problem with HEAD request
- handling.
-- Using un-encapsulated strings now generates a NOTICE-level warning
- (e.g. $a = foo; instead of $a = "foo";)
-- Added defined("name") function to check if a certain constant is defined
- or not.
-- Support new Apache mechanism for setting SERVER_SUBVERSION
-- Added PHP_OS and PHP_VERSION constants
-- Added the ability to define constants in runtime! Constants are script-wide,
- (there's no scope, once the constant is defined, it's valid everywhere).
- Syntax is define("name", $value [, $case_insensitive]). 'name' can be any name
- that is a valid variable name, *without* the $ prefix. 'value' can be
- any *scalar* value. If the optional 'case_insensitive' parameter is 1,
- then the constant is created case-insensitive (the default is case
- sensitive). Note: define() is currently *NOT* supported in preprocessed
- scripts.
-- Added general support for constants. The Syslog constants (e.g.
- LOG_ERR, LOG_CRIT, etc.) should be accessed as constants from now on (that
- is, without a $ prefix). You can still set define_syslog_variables to On
- in the php3.ini file if you want to define the various $ variables. The
- default for this directive in the php3.ini-dist file has been changed to
- Off.
-- The configuration file path variable now expands . and .. into their
- respective directories. You can obtain the path of the php3.ini file
- that was used by printing get_cfg_var("cfg_file_path").
-- Fixed a crash-recovery parser crash ($a=7; $a[3]+=5;)
-- Add gmmktime() function
-- Fixed a crash with implode() and empty arrays.
-- Fixed a bug that, under fairly rare circumstances, caused PHP not to
- recognize if(), require() and other statements as statements, and
- to complain about them as being unsupported functions.
-- Beautified php3.ini-dist and added more comments to it. Also changed
- the behavior of the configuration file parser to be brighter about
- the various constants (TRUE/FALSE/ON/OFF etc).
-- Fixed a bug in openlog() - the specified device name was being mangled.
-- Memory leaks were sometimes reported erroneously - fixed.
-- Improved the convertor to handle some quirks of the PHP/FI 2 parser with
- comments.
-- Fixed number_format() to properly handle negative numbers, and optimized it
- a bit.
-- Fixed static variables inside class member functions. Note that using such
- static variables inside member functions usually defeats the purpose of
- objects, so it is not recommended.
-- Fixed a bug in fpassthru() (the file was being closed twice).
-- Added strftime().
-- Add set_socket_blocking() function to control blocking on socket fd's
-- The sendmail_path in php3.ini was being ignored - fixed.
-- Fixed a bug with file upload, with files that contained the MIME boundary
- inside them.
-- Fixed a bug with form variables of type array, with spaces in their
- index (e.g. name="foo[bar bar]").
-- gd-1.3 autodetect and support
-- Year 2000 compliance is now togglable from the php3.ini file. Setting PHP
- to be y2k compliant effects the way it creates cookies, and means it'll
- NOT work with many browsers out there that are not y2k compliant! For
- that reason, the default for this option is off.
-- safe mode / fix from monti@vesatec.com
-- Integrated the FreeType support in the GD extension.
-- Added --with-gd=DIR and --without-gd options to configure
-
-April 18 1998 Version 3.0 Release Candidate 4
-- Auto-prepended and auto-appended files were reporting the wrong filename
- in errors and in __FILE__ - fixed.
-- Fix GPC problem related to mixed scalar and array vars with the same name
-- Made putenv() Apache-safe. Environment variables may no longer leak in
- between requests.
-- The trailing semicolon is no longer required in class declarations.
-- Fixed a memory leak in the (array) and (object) operators under certain
- conditions.
-- <script> tags weren't working unless short tags were enabled - Fixed.
-- Fixed a bug in certain array indices that weren't treated as numbers
- even though they looked like numbers (e.g. "10", "20").
-- Changes to support renamed API functions in Apache-1.3
-- Fixed the -p and -e command line switches
-- Fix a segfault when calling command line version without parameters
-- Fix for feof() when used on a socket
-- Fix off-by-one error in fgets() when used on a socket
-- Fix bug in ImageSetPixel() (Thanks to ecain@Phosphor.net)
-
-March 31 1998 Version 3.0 Release Candidate 3
-- Tiny bugfix for magic_quotes_sybase
-- Fix Apache build problems introduced in RC2
-- $a["0"]==$a[0] fix
-- Apache-1.3 build changes to support 100% automatic builds and shared library
- module builds. See INSTALL file.
-
-March 30 1998 Version 3.0 Release Candidate 2
-- Changed the socket implementation under UNIX to not use FILE pointers, in
- order to work around the buggy Solaris libc (and possibly buggy libc's
- in other platforms).
-- Fixed a bug in min() and max() with certain arrays.
-- *WARNING* Move Apache 1.3 php3 file install to src/modules/php4 instead of
- src/modules/extra. Make sure you change your AddModule line correctly
- in your Apache Configuration file. This change is to take advantage of
- new Apache-1.3 configuration mechanism which makes it easier to build an
- Apache server with PHP automatically enabled. It will also help building
- a shared library module version of PHP soon.
-- Fixed a crash bug with auto-appended files.
-- Made --enable-discard-path work on all Unix servers #!/path/php CGI scripts
- should now work everywhere. I have tested on Apache, WN and Netscape 2.0
-- Made $a["123"] and $a[123] be identical. $a["0123"] is still different,
- though.
-- Added 'precision' ini directive, to set the number of decimal digits
- displayed for floating point numbers (default - 6).
-- Made integer/integer divisions evaluate to floating point numbers when
- applicable (e.g., 5/2==2.5(float), but 4/2==2(int))
-- Get rid of reliance on tied streams and move all socket reads and writes
- to recv/send calls
-- Cleaned up head.c a bit and fixed CGI SetCookie order problem
-- Changed default variable parsing order to Get-Cookie-Post (GPC)
-- Fixed setup so it has all configure options and defaults.
-- Added optional decimal point and thousands seperator to number_format()
- e.g., number_format(1500,2,',','.') == 1.500,00
-- Fixed cgi bug in windows that prevented files from being parsed on many
- systems and servers.
-
-March 23 1998 Version 3.0 Release Candidate
-- Added support for the Raima database (ALPHA)
-- Fixed a bug in persistent PostgreSQL links and the connection-string method.
-- Added EXTENSION_STATUS file, that specifies the stability and status of
- every module in the distribution.
-- Added optional parameters to user functions with default values, variables
- that are forced to be passed by reference and variables that can be
- optionally passed by reference. The ini file directive
- 'ignore_missing_userfunc_args' is no longer supported.
-- Added fhttpd support (by Alex Belits)
-- Improved performance by approximately 20-30%.
-- Added mysql_error(), mysql_errno() (if available) and msql_error().
- Errors coming back from the database backend no longer issue warnings.
- Instead, use these functions to retreive the error.
-- Patched count(), each(), prev(), next(), reset() and end() to work around
- the implementation side effects of unset(). As far as the users are
- concerned, this should be transparent now (even though it's slower now,
- until it's thoroughly fixed in 3.1).
-- Added number_format(). number_format(2499,2)=='2,499.00'.
-- error_reporting() now sets the error reporting level to the supplied
- argument, without any interpretations.
-- Fixed a lookahead parser bug that occured under rare circumstances.
-- Change the comparison operators to compare numeric strings as numbers. If
- you want to compare them as strings, you can use the new C-like strcmp()
-- Fixed Ora_GetColumn() bug when fetching strings
-- Added Ora_ColumnName() and Ora_ColumnType()
-- Preliminary LONG and LONG RAW support in Oracle extension
-- Add \123 and \xAB style octal and hex escapes to "" and `` strings
-- Add "-c" command line flag for specifying path to php3.ini file
-- Improved list() so that elements can be skipped, for example:
- list($name,,,$realname) = explode(":",fgets($passwd_file));
-- Fixed a tiny bug in the hash initialization which caused excessive use of
- memory. Report and fix by short@k332.feld.cvut.cz
-- Fixed strtolower() and strtoupper() to work with 8-bit chars
-- Fixed to compile and run on SunOS 4.1
-- Fixed a crash in soundex() of an empty string
-- Fixed parse_str() - it wasn't always defining the right variables,
- and didn't work with arrays.
-- Made [m,My]SQL create/drop database functions return success status
-- Fixed some memory leak/crash problems in the Adabas module
-- Added each() in order to allow for easy and correct array traversing.
-- Make Apache module version respect LOCALE setting
-- Add support for Apache 1.3b6+ ap_config.h file
-- Fixed a nasty corruption bug in eval() and show_source() that resulted in
- script termination (e.g. eval("exit();").
-- Fixed a syntax highlighting problem with keywords used as variable
- names.
-- Fixed a possible crash and/or file descriptor leak
-- Fixed line number being off by one in #! shell style execution
-- Made it possible to disable auto_prepend/append with "none" filename
-- Allow safe CGI calling through #!php style scripts
-
-March 2 1998 Version 3.0b6
-- Made [s]printf handle %ld
-- Changed CGI version to only open regular files as input script
-- Added ignore_missing_userfunc_args directive to suppress warnings messages
- about missing arguments to user-defined functions
-- Added Postgres function - pg_cmdtuples(), by Vladimir Litovka
-- Disabled command line options if used as CGI
-- Changed CGI version to use PATH_TRANSLATED as the script file name
-- Link with solid shared library instead of static one
-- Fixed a crash with functions that aren't being called correctly
-- Fixed file descriptor leak in auto-prepend/append
-- Imap module is usable. See README in dl/imap.
-
-February 24 1998 Version 3.0b5
-- Made the URL aware file functions be enabled by default
-- Fixed an unlikely crash bug in the parser, with uninitialized array elements
- which are refered to as objects.
-- Fixed several fields that were being incorrectly read in Sybase CT.
-- Fix Apache-1.3 related SIGHUP problem which was preventing php3.ini from
- getting re-read on a SIGHUP
-- *** WARNING *** Downwards incompatible change: The plus operator (+) is not
- longer overloaded as concatenation for strings. Instead, it converts its
- arguments to numbers and performs numeric addition.
-- Add Stig and Tin's bdf2gdfont script to extra/gd directory
-- Added join() as an alias to implode()
-- Made implode() accept arguments in the order used by explode() as well
-- Made $php_errormsg local in function calls
-- Fixed Apache configuration directive bugs
-- Added a number of .ini directives to Apache .conf directive list
-- Fixed a 'memory leak' with strtok()
-- echo/print now handle binary data correctly.
-- NEW now accepts any expression for the class name argument.
-- Add ImageDashedLine() GD function
-- Add arg_separator .ini directive so the '&' GET method separator can be
- changed to ';' for example. Corresponding php3_arg_separator Apache .conf
- directive works as well.
-- Walked around an implementation side effect of switch(). <? switch(expr) { ?>
- now works.
-- Added memory caching, resulting in a significant performance boost
-- Added support for for(): .. endfor; loops
-- Added a new predicate - empty($var). Returns true if $var is not set,
- or is FALSE. Returns false otherwise.
-- Added is_integer() (same as is_long()) and is_real() (same as is_double()).
-- Added sizeof() as an alias to the count() function
-- Added --enable-force-cgi-redirect, to prevent the CGI from working if
- someone directly accesses PHP not through Apache's CGI redirect
- (off by default).
-- Fixed marking of deleted dBase records. Noticed by Simon Gornall
- <simon@oyster.co.uk>.
-- Fixed fixed "%%" bug in [s]printf
-- Fixed a UMR (initialized memory read) in the Oracle code
-- Potential fix for mysql-related SIGPIPE problem which caused httpd to spin
-- Made PHP responsive to the Apache link status (stop executing if the link
- dies).
-- Fixed a crash bug with StrongHold and secure pages
-- Fixed StrongHold installation
-- Optimized the function call sequence a bit.
-- Fixed Sybase/CT date/datetime/money fields work to correctly.
-- Fixed Apache module startup problems - php3_module_startup should only be
- called once.
-- Fixed ord() with characters >127
-- Fixed bug in file_exists() function
-- Fixed stripslashes() to remove the escaping quote (instead of backslash)
- in case magic_quotes_sybase is true.
-- Also make echo and print automatically remove trailing decimal zeros.
-- Added htmlentities(), currently handling only ISO-8859-1 entities
-- "0" is no longer considered false, the only string which is false is the
- empty string "".
-- Added 'true' and 'false' keywords
-- Added 'xor' (logical exclusive or)
-- Automatic conversion from double to string removes decimal trailing zeros.
-- Added arsort() and rsort() to sort in descending order.
-- Turned on "XLATOPT_NOCNV" by default for uODBC/Solid.
-- Added support for a port number in the mysql_(p)connect() functions
-- Fixed a file descriptor leak in the configuration parser.
-- Fixed a few buglets with syntax highlighting with certain language keywords
-- Added functions to control minimum severity level of Sybase messages to
- display.
-- Added highlight_string() - behaves like highlight_file(), only instead
- of highlighting a file, it syntax highlights the contents of its
- argument.
-- Renamed show_source() to highlight_file(). show_source() is still
- supported for downwards compatability.
-- Fixed a bug in class inheritence - member functions with upper case
- letters in their names couldn't be redefined.
-- Made chown(), chgrp() and chmod() return TRUE/FALSE instead of 0/-1.
-
-February 02 1998 Version 3.0b4
-- Fixed a segfault bug in one of the unified ODBC error messages.
-- Set default file modes to binary on Win32 (solved a lot of bs)
-- Fixed file copy on Win32
-- MIME file uploads fixed on Win32
-- Added contributed icons by Colin Viebrock (undex extra/icons)
-- Fixed the debugger enough to call it "beta code".
-- Fixed some leaks in the Oracle module, tidied up the code a bit.
-- Added __FILE__ and __LINE__ which evaluate to the currently parsed file
- and currently parsed line respectively.
-- Added ImageColorAt(), ImageColorSet(), ImageColorsForIndex(), and
- ImageColorsTotal() to allow manipulating the palette of GIF images.
-- Rename '--enable-url-includes' option to '--enable-url-fopen-wrapper' to
- better describe what it does, and pay attention to the setting.
-- Added optional parameter to the file(), readfile() and fopen() functions
- to look for files located in the include path.
-- Fixed bug that allowed the file() and readfile() to open files in the
- include path inadvertantly.
-- Fixed a (documented) bug in printf()/sprintf() with hard limited strings
- and alignment (e.g. %-.20s).
-- Optimized several quoted string routines.
-- Added error_log ini directive to select where errors get logged when
- log_errors is turned on or the error_log() function is used.
-- Added the ability to direct errors to log files instead of or in addition
- to the script output. Use the new display_errors and log_errors
- php3.ini directives.
-- Made environment variables uneraseable by POST/GET/Cookie variables.
-- Fixed a bug in the elseif() construct. The expression was being evaluated
- even if a previous if/elseif already evaluated to true and got executed.
-- Fixed a bug in the exit code parameter of system()
-- Tighten up all exec() related functions in safe mode
-- Added error_log() function to log messages to the server error log, or
- stderr for the CGI version.
-- Added support for a general memory limit of scripts.
-- Fixed a segfault bug that occured under certain circumstances with shell
- escapes ($foo = `...`)
-- Made keywords be valid property names of objects.
-- Fixed a segfault bug when creating new objects of an unknown class.
-- Fixed a problem with the maximum execution time limit, that may have
- prevented this feature from working on certain platforms.
-- PHP would now warn you with E_NOTICE about unknown escape characters,
- e.g. "\f". It would still be considered as a backslash followed by f,
- but the proper way of writing this is "\\f" or '\f'.
-- Added support for ${...} inside encapsulated strings. Supported: ${foo},
- ${foo[bar]}, ${foo[0]}, ${$foo[$bar]}, ${$foo->bar} and ${$foo}
-- Fixed a bug in automatic persistent link reconnect of the Sybase/DB module.
- Thanks to Steve Willer for finding that 'stealth' bug!
-- Fixed a crash bug in the GET/POST/Cookie parser in case of regular
- and array variables with the same name.
-- Added round() function.
-- Can't use encapsed strings as variable names anymore, ie. $"blah blah".
-- Fixed bug in gethostby*() functions that resulted in a core dump.
- (Noticed by torben@coastnet.com.)
-- Fixed bug in dbase_get_record that prevented number and date fields
- from being properly decoded. (Thanks again to colins@infofind.com.)
-- Make dbase_get_record include a 'deleted' field that indicates whether
- that record had been marked for deletion.
-- Fixed bug in dbase library that stomped on the deleted flag of the first
- record in the file if it was set. (Thanks to colins@infofind.com.)
-- Fixed putenv() to not report a memory leak and possibly prevent a bug
- from that memory being freed.
-- Added setlocale()
-- Added pg_fieldisnull() (by Stephan Duehr)
-- Changed pg_exec() to always return a result identifier on succees
-- Solid linking fixes (tries to find the right library)
-- Fixed a but with date() and the 'w' element.
-- Tried to eliminate unimportant memory leak notifications.
-- Made min() and max() backwards compatible and able to handle doubles.
-- Add fgetc() function
-- Fixed bug in getmyuid(), getmyinode() and getlastmod(). Thanks to
- khim@sch57.msk.ru for pointing this out.
-- Fixed http:// URL includes with no path specified send request for /.
-- Added GetAllHeaders() (Apache-only)
-- Added workaround that made the Image text functions 8-bit clean
-- Made snmp internally compilable for Win32 (not the unix one though),
- only adds 2k to binary size, so no reason not to have it there.
-- Fixed ldap loading on Win32
-- Fixed MySQL Info function on Win32 platform
-- Fixed compilation of syntax highlighting mode
-
-January 17 1998 Version 3.0b3
-- Added mysql support under windows ;) happy happy joy joy
-- Fixed dbase.dll for Win32 to actualy load now.
-- Enhanced the convertor to recognize ?> as a php-close-block as well.
-- Fixed potential SetCookie() core dumps
-- Changed print to be an expression instead of a statement. That means you can
- now do stuff like foobar() or print("Unable to foobar!"). echo has NOT been
- changed.
-- Removed the flex optimization flags to reduce the size of the scanner
-- Added memory leak logging into apache log files (apache module only)
-- Fixed a nasty bug in one of the internal stacks. This may have caused
- random crashes in several occassions.
-- Fixed bug in ImageGif() making it hang sometimes
-- Added ImageLoadFont(), ImageFontWidth() and ImageFontHeight()
-- error_reporting() now returns the old error reporting level
-- Fixed url includes/opens not working under Win32
-- Fixed errorneous handling of multipart/form-data input
-- Added rawurlencode(), rawurldecode() and changed urlencode() and urldecode()
- a bit too.
-- Fixed a bug in [s]printf, sign was forgotten for doubles.
-- Fixed a segfault bug in pg_fieldprtlen(), and made it accept field names
- in addition to field offsets.
-- Made the setup script a little more user-friendly.
-- Added is_long(), is_double(), is_string(), is_array() and is_object()
-- Fixed a bug in freeing of mSQL results.
-- Improved pg_exec() to properly return true or false with queries that don't
- return rows (i.e. insert, update, create, etc)
-- Added get_cfg_var() to enable checking cfg file directives from within
- a script.
-- Fixed a bug with urlencode() and characters 0x80-0xff
-- Changed the behaviour of ereg_replace to more intuitive. The
- backslashes other than valid existing back references in the second
- argument are no more evaluated as escape sequences.
-- Fixed a bug in the configuration file loader and safe mode.
-- Fixed a bug with configuration variables taken from the environment.
-- Added <script language=php> </script> as PHP open/close tags, to allow
- the use of editors such as Microsoft Frontpage.
-- Fixed a bug in the default php3.ini directory - it wasn't defaulting to
- /usr/local/lib properly.
-- Added support for \r\n line endings
-- Fixed a bug that may have prevented POST method variables from working
- with certain scripts when using the CGI version.
-- Convertor: Added support for single-quoted strings
-- Fixed segfault bug in the Adabas module, with queries that don't return
- rows (update, insert, etc).
-
-December 22 1997 Version 3.0b2
-- Changed variable type conversions that do not specify base to always use
- base 10. "010" is no more 8, it is 10. Use intval ($x, 0) to get C-style
- octal and hex numbers recognized.
-- Fixed a possible segfault bug in several functions, when using the concat
- operator and possibly other operators/functions.
-- # is no longer accepted as a comment in php3.ini. Use ; instead.
-- Added browscap support
-- Configuration file directives are now case-sensitive
-- Fixed msql_tablename() and msql_dbname()
-- Added a PHP/FI 2.0 -> PHP 3.0 convertor
-- Added support for shell/perl-style single quotes
-- Added support for execution of external programs using backquotes ($a=`ls -l`)
-- fixed mail() on windows, also fixed memory leaks in mail on windows
-- added sendmail_from to handle return route on windows
-- Changed the way the config file is searched. The file name is now
- php3.ini (hardcoded), and it'll be looked for in: local directory, $PHPRC
- and builtin path designated by ./configure under UNIX or Windows directory
- under Windows.
-- Fixed ereg_replace replacing empty matches and a one off buffer overflow
-- Fixed File upload on windows platform
-- Fixed a bug that caused 'HTTP/1.1 100 Continue' messages with
- Internet Explorer 4.0 and certain scripts that receive POST variables
-- Get/POST/Cookie data variables are from now *ALWAYS* strings. If you want
- to use them in integer/real context, you must explicitly change their types.
- This was done in order to avoid possible loss of data when doing these
- conversions automatically.
-- Variables named as keywords are now allowed (e.g. $function, $class, etc)
-- Fixed a problem with msql() and mysql() with NULL fields
-- Fixed a segfault bug with class declarations
-- Fixed bugs with FOR loops and include() from within eval()
-- Changed include() to be executed conditionally. PHP-3.0 efficient
- unconditional include is now require()
-
-December 08 1997 Version 3.0b1
-- Switched to public beta test phase
-- Generalized unset() and isset() to work on any type of variables, including
- specific array indices or object properties (e.g., unset($a[4]) now works).
-- Added support for object references inside encapsulated strings
- (for example, 'echo "Username: $user->name"' now works)
-- Added arbitary precision math support (basic operations with
- unlimited range numbers, and support for unlimited decimal digits)
-- Apache module can now handle preprocessed scripts (by using:
- AddType application/x-httpd-php3-preprocessed .php3p
- in the Apache configuration)
-- Made settype() pass its first parameter by value. Improved it to be able
- to convert to arrays and objects (originally by Steve Willer)
-- Implemented CPU time limit on scripts when setitimer() is available
-- Computed field names in the Sybase/CT and Sybase/DB modules are now named
- computed, computed1, computed2, ...
-- Added Sybase/CT client/server message handlers and updated the Sybase/DB ones
-- Made the regexp function automatically take arguments by reference
- when necessary
-- Added builtin support for auto append and prepend in the parser level
-- Improved the Sybase/CT sybase_query(). Should be more stable now, and
- hopefully work with a wider range of queries. It's difficult to work
- without docs, though, so it may still not be 100% right...
-- Changed error messages to show error type, file and line with bold
-- Added support for autoprepend and autoprepend
-- Added some more warning flags if gcc is used
-
-December 03 1997 Version 3.0a4
-- Improved the internal functions API - no need to explicitly pass
- parameters by reference to internal functions that specifically
- require them, e.g. sort(), ksort(), reset(), count(), etc.
- This is *STILL* downwards compatible with the previous alphas,
- in the sense that you can explicitly pass the arguments by reference
- if you want to.
-- use srandom/random instead of srand/rand if available
-- Added [m,My]sql_listfields() for downwards compatability
-- -p now replaces .php3 extension with .php3p (otherwise it adds .php3p)
-- Added C++ style comments (// comment)
-- Fixed # commenting to terminate at a close PHP tag
-- Added \0 back reference for full string match to *reg*_replace and
- added backslash escaping to replace string
-- Fixed a few bugs in the Sybase DB-library module.
-- Added Sybase CT-library support. It should be considered experimental.
- Syntax is identical to the one of the DB-library. Allows people to
- connect to MS-SQL servers from Linux without having to pay for a
- library!
-- Beautified phpinfo()
-- Add ImageColorClosest() and ImageColorExact() GD functions
-- Make all .ini directives work as Apache .conf directives as well
-- Added PHP2-like File() function with PHP3 URL support
-- Upgraded the Sybase interface. It's practically MySQL compatible now!
- Among other things, added sybase_fetch_array() and sybase_fetch_object().
-- Fixed problem in multi dimensional array handling and self modifying
- operators (+=, -=, etc).
-- Safe Mode file open implementation
-- SVR3 portability problem fix
-
-November 23 1997 Version 3.0a3
-- Made the global statement behave like PHP 2 with undefined variables
-- Added msql_fetch_object() and msql_fetch_array()
-- Switched between the 1st and 2nd parameters to explode(), so that it acts
- like split()
-- Fixed passthru(), exec() and system() functions
-- Implemented second optional parameter to intval() to specify conversion base
- (The default is to assume you want to do a base 10 conversion.)
-- Implemented SQL safe mode for MySQL
-- Read UploadTmpDir from php3.ini instead of apache conf files
-- Added mysql_fetch_object() and mysql_fetch_array()
-- Changed function->old_function. function is now an alias to cfunction.
-- Split the magic_quotes directive to get/post/data and other
-- Added generic copy() function
-- Added a $GLOBALS[] array, which contains all global variables
-- Fix broken getimagesize() function
-- Made mysql_fetch_field() and msql_fetch_field() optionally accept a 2nd argument
-- Fixed mysql_data_seek() and msql_data_seek()
-- Changed list assignment to list(...) and array init to array(...)
-- Made <?php_track_vars?> work
-- cgi when not in debug mode uses regular malloc(), free() functions now
-- Added preliminary support for perl-style list assignments
-- Fixed a bug in mysql_result() and msql_result() when specifying table
-- renamed internal error-handling function and levels
-- Added basename and dirname functions similar to sh counterparts
-- Added base64_encode() and base64_decode()
-- Support Basic authorization for http url includes
-- Added parse_url() function to extract url components
-- Made it possible to use anonymous ftp on URL includes
-- Fixed url includes to handle different URLs better
-- Fixed mysql_field*() functions
-- Made mysql_connect() smarter, after a mysql_close() (applies to msql and pgsql too)
-
-November 6 1997 Version 3.0a2
-- Fixed a segfault bug caused by non-persistent connect in [m,My,Postgres]SQL modules
-- Fix command line argument handling
-- Made empty array list assignments work ($a=({});)
-- Made '$' escaping optional when a variable name parsing isn't possible
-- Added support for mysql_[p]connect(host) and mysql_[p]connect(host,user)
-- New layout in phpinfo()
-- Update Oracle extension to use php3_list functions
-- Add includepath support
-- Add #!php shell script escape support
-- Change name of CGI/command line version from php3.cgi to php
-- Add SNMP extension
-- show_source() support
-- Parsing of command-line args for CGI version
-- Support for backreferences in ereg_replace
-- Support for hexadecimal numbers directly at the scanner level
-- Support octal numbers directly at the scanner level
-- Fixed problem with huge html files (with little or no php code)
-- Fix eval() empty string argument core dump
-- renamed 'install' to 'setup' to be more accurate and avoid name conflict
-- Fixed Oracle compilation
-- Fixed mSQL 1.0 compilation
-- Fixed a problem in the mSQL, MySQL and PostgresSQL drivers and NULL fields.
-- Fixed the GLOBAL statement to be able to declare an array.
-
-October 29 1997 Version 3.0a1
-- Start with excellent new parser from Andi and Zeev
View
86 ChangeLog.TODO
@@ -1,86 +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
-- Added more option to the date() function: (Colin Viebrock)
- 'g' - hour, 12-hour format, no leading zeros
- 'G' - hour, 24-hour format, no leading zeros
- 'n' - month, numeric, no leading zeros
-- 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
-- Added optional second argument to mysql_fetch_array(); MYSQL_ASSOC will
- cause the resulting array to contain the associative indices only,
- MYSQL_NUM will cause the array to contain the numeric indices only (like
- mysql_fetch_row()) and MYSQL_BOTH would cause them both to be defined
- (default).
-- Backport the Zend debugging memory manager into the PHP 3.0.x tree.
-- 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
-- Constructors of parent classes weren't accessible to derived classes (as
- of 3.0.6). Fixed.
-- Introduce simple regex compilation cache
-
-
View
54 EXTENSION_STATUS
@@ -1,54 +0,0 @@
-The core of PHP 3.0 is considered to be stable at this time. However, some of
-the modules that are bundled with it are still undergoing development, or
-contain known bugs. The purpose of this file is to document the status of
-each module (extension). Patches to unstable modules will be available through
-the CVS, and through periodic maintenance releases.
-
-Stability scale:
-Rock solid - We believe it's safe to base a production site on it.
-Stable - It should be safe to base a production site on it.
- Isn't rated as rock-solid because it contained problems
- in the not-so-far past, or doesn't have enough users
- to test it to know it's rock solid.
-Beta - This module probably contains bugs, sometimes even known
- bugs. You can give it a try and there's a good chance
- it'll work fine, but it might not be a good idea to base
- a production site on it.
-Alpha - This module is in initial development steps. Don't trust
- it, play with it at your own risk.
-Deprecated - This module is only available for downwards compatability,
- and will not be supported in any way. The code quality
- is usually around the Beta status.
-
-The standard disclaimers apply, that is, if a rock-solid module blows up on
-you and ruins your site, nobody in the PHP development team is responsible.
-We'll probably try to help, though.
-
-
-Extension Name Status Comments
------------------------------------------------------------------------------
-DBM Rock Solid That relies on a working DBM library.
- The flatfile support is probably not
- as stable.
-MySQL Rock Solid
-mSQL Rock Solid
-Sybase DB Stable
-Sybase CT Stable
-BC Math Rock Solid Arbitary precision math library
-Postgres SQL Stable Postgres 6.2 and earlier is stable,
- but problems were reported with 6.3
-Debugger Beta
-Unified ODBC Beta
-Solid Deprecated Replaced by Unified ODBC
-iODBC Deprecated Replaced by Unified ODBC
-Adabas Deprecated Replaced by Unified ODBC
-LDAP Stable Lightweight Directory Access Protocol.
-dBase
-FilePro
-Oracle Beta Not tested thoroughly enough.
-IMAP Beta Bundled in the dl/ directory
-SNMP Stable Very solid, but also very limited.
- Only supports GET and WALK requests.
-Raima Velocis Beta If use with Unified ODBC, replaced
- by Unified ODBC
-Raima Velocis Alpha If use without Unified ODBC
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