summaryrefslogtreecommitdiff
path: root/NEWS
blob: fc5071592492af54ec044592208012dfb91e8621 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
PHP                                                                        NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? Jul 2004, PHP 5.0.0
- Changed doc comments to require a single white space after '/**'. (Marcus)
- Fixed bug #28702 (SOAP does not parse WSDL service address correctly). (Dmitry)
- Fixed bug #28699 (Reflection api bugs). (Marcus)
- Fixed bug #28694 (ReflectionExtension::getFunctions() crashes PHP). (Marcus)

7 Jun 2004, PHP 5 Release Candidate 3
- Moved the PDFLib extension to PECL. (Wez)
- Added MySQL 4.1.2-alpha and 4.1.3-beta support to MySQLI extension. (Georg)
- Added support for dumping private/protected properties to var_dump().
  (Andrey)
- Added count() support for COM arrays. (Wez)
- Added Firebird/InterBase UDF source that allows PHP functions to be called 
  from SQL (Ard)
- Removed Firebird/Interbase function ibase_timefmt() (Ard)
- Changed user error handler mechanism to relay to built-in error handler if it
  returns false. (Andrei)
- Changed class type hints for function parameters to not allow the passing of
  NULL values. (Andi)
- Changed tidy_node to tidyNode and removed tidy_exception. (John)
- Fixed ip2long() to return FALSE if an IP address passed to this function
  is not valid. (Derick)
- Fixed memory leak in memory manager. (Andi)
- Fixed problem with exceptions returning from include(). (Dmitry)
- Fixed bug #28641 (Instance of Interface). (Marcus)
- Fixed bug #28430 (Extending mysqli class). (Georg)
- Fixed bug #28311 (Transparency detection code is off by 1).
  (Ilia, pikeman at pikeman dot sytes dot net)
- Fixed bug #28304 (Missing bounds check inside imagefilter()). (Ilia)
- Fixed bug #28300 (Userspace stream/filter names forced to lowercase). (Sara)
- Fixed bug #28287 (stream_*_register() not calling __autoload()). (Sara)
- Fixed bug #28267 (php_image_filter_contrast calls gdImageBrightness). (Ilia)
- Fixed bug #28239 (No results returned on SOAP call, no error given). (Dmitry)
- Fixed bug #28205 (num_rows property for statement object). (Georg)
- Fixed bug #28161 (COM: Array style properties could not be accessed). (Wez)
- Fixed bug #28125 (ArrayObject leaks when accessing elements). (Marcus)
- Fixed bug #28100 (NULL parameter support for mysqli_ssl_set). (Georg)
- Fixed bug #28099 (ArrayObject doesn't implement ArrayAccess). (Marcus)
- Fixed bug #27929 (SPL: change visibility of ArrayIterator::__construct).
  (Marcus)
- Fixed bug #27640 (memory leak of registered_zend_ini_directives).  (Dmitry)
- Fixed bug #27063 (SPL: ArrayObject does not handle PPP correctly). (Marcus)

25 Apr 2004, PHP 5 Release Candidate 2
- Implementing an interface/abstract method with the wrong prototype is now
  a fatal error. (Zeev)
- Reimplemented zend.ze1_compatibility_mode to have better PHP 4 compliance.
  (Dmitry, Andi)
- Under CLI, fclose() on php://stdin, php://stdout and php://stderr will now
  close the real stream.  Please update your CLI scripts to use STDIN, STDOUT
  and STDERR constants instead of fopen()/fclose(). (Wez)
- Moved yaz extension to PECL. (Wez)
- Added pty support to proc_open(). (Wez)
- Added possibility to check in which extension an internal class was defined 
  in using reflection API. (Marcus)
- Changed tidy error handling to no longer use exceptions and 
  renamed the "error_buf" property to errorBuffer. (John)
- Changed class and method names to use studlyCaps convention. (Marcus)
- Changed language parser to throw errors when a non-empty signature is used in
  a destructor definition. (Marcus)
- Changed HTTP file uploads not to throw E_WARNINGs and E_NOTICEs. The error 
  value in the $_FILES global should be used for error handling. (Derick)
- Changed __construct() to always take precedence over old style constructor.
  (Dmitry)
- Fixed handling of return values from storred procedures in mssql_execute()
  with multiple result sets returned. (Frank)
- Fixed bug #28096 (stream_socket_accept() doesn't work with ssl). (Wez)
- Fixed bug #28007 (compile mssql extension with old versions of FreeTDS
  fails). (Frank)
- Fixed bug #27997 (SPL: Crash with getInnerIterator()). (Marcus)
- Fixed bug #27974 (COM doesn't pass array parameters). (Wez)
- Fixed bug #27928 (sqlite incorrectly handles invalid filenames). (Ilia)
- Fixed bug $27923 (in some cases using foreach() to iterate over values
  led to a false error message about the key being a reference). (Adam)
- Fixed bug #27865 (STDIN, STDOUT, STDERR are dup()d under CLI). (Wez)
- Fixed bug #27821 (xml_parse() segfaults when xml_set_object() is called from
  class method). (Andi, Rob)
- Fixed bug #27742 (WDSL SOAP Parsing Schema bug). (Dmitry)
- Fixed bug #27722 (Segfault on schema without targetNamespace). (Dmitry)
- Fixed bug #27719 (mktime issues on and around DST changeover). (Rasmus)
- Fixed bug #27681 (soap extension fails without HAVE_TM_GMTOFF). (Dmitry)
- Fixed bug #27641 (Object cloning in ze1_compatibility_mode was reimplemented)
  (Dmitry, Andi)
- Fixed bug #27628 (Simplify the process of making a POST request via stream
  context). (Ilia)
- Fixed bug #27619 (filters not applied to pre-buffered stream data). (Sara)
- Fixed bug #27519 (Reflection_Function constructor crashes with non-existant 
  function's name). (Marcus)
- Fixed bug #27469 (serialize() objects of incomplete class). (Dmitry)
- Fixed bug #27457 (handling of numeric indexes in strtr()). (Dmitry)
- Fixed bug #27397 (debug_backtrace() not showing function arguments). (Zeev)
- Fixed bug #27283 (The last catch statement was sometimes skipped). (Andi)
- Fixed bug #26441 (When __set() returned a value it corrupted it). (Andi)
- Fixed bug #19749 (shouldn't mmap() files larger than memory_limit). (Wez)

18 March 2004, PHP 5 Release Candidate 1
- Fixed numerous bugs with the just-in-time auto-global initialization, that
  could cause $_SERVER, $argv/$argc and other variables not to work properly.
  (Zeev)
- Fixed data corruption with constant assignments to object properties. (Zeev)
- Changed __toString() to be called automatically only with print and echo
  statements. (Andi)
- Replaced the exec_finished hook by the zend_post_deactive hook for
  extensions. The new hook will be run after the symbol table and destructors
  are run. (Derick)
- Fixed possible crash when internal get_method() is not defined. (Andi)
- Fixed calling methods using call_user_func() in conjunction with 
  the array("Class","Method") syntax to use the scope of the PHP user function.
  (Dmitry)
- Fixed php-cgi to not ignore command-line switches when run in a web context.
  This fixes our test cases allowing INI with GET sections to work. (Rasmus)
- Fixed getopt() so it works without $_SERVER. (Rasmus, bfrance)
- Added support for PHP 4 style object comparisons which is enabled in
  ze1_compatiblity_mode. (Andi)
- Added support for PHP 4 style object conversion to long, double, and boolean
  values which is enabled in ze1_compatibility_mode. (Andi, Stas)
- Allow object oriented extensions to overload comparison functions and other
  operations. Solves problems using SimpleXML values. (Andi, Zeev)
- Fixed crash when accessing a class constant with a value which in turn is
  also a constant. (Dmitry)
- Fixed object's truth value conversion. It is always true unless
  ze1_compatibility_mode is on in which it behaves like in PHP 4. (Stas)
- Improved out of memory handling in new memory manager. (Stas)
- Fixed crash when an object references itself during destructor call. (Andi)
- Fixed crash in foreach() when iterating over object properties or a method's
  return values. (Andi)
- Fixed crash when an exception is thrown in a destructor. Such exceptions are
  now ignored as destruction happens out of context at no definite time. (Andi)
- Fixed crashes in exception handling. (Dmitry, Andi)
- Changed prototype checks so that they aren't done on constructors. (Andi)
- Changed prototype checks to output an E_STRICT message instead of
  an E_COMPILE_ERROR. (Andi)
- Changed Iterator::has_more() to Iterator::valid(). (Marcus)
- Upgraded bundled oniguruma library to version 2.2.2. (Rui, Moriyoshi)
- Added mb_list_encoding() to return an array with all mbstring supported
  encodings. (Derick)
- Added support for more ISO8601 datetime formats in strtotime(). (Moriyoshi)
  . Timezone specifier (ex. "20040301T02:00:00+19:00")
  . Week specifier (ex. "1997W021")
- Renamed php.ini option "zend2.implicit_clone" to 
  "zend.ze1_compatibility_mode" as it doesn't only affect implicit cloning.
  (Andi, Zeev)
- Methods that override parent methods are now subject to prototype checking,
  and have to be compatible with the method they're overriding - this check is 
  disabled in compatibility mode. (Andi, Zeev)
- Fixed crash in php_ini_scanned_files() when no additional INI files were
  actually parsed. (Jon)
- Fixed bug in gdImageFilledRectangle in the bundled GD library, that required
  x1 < x2 and y1 < y2 for coordinates. (Derick)
- Fixed crash with foreach() and temporary objects($obj->method()->a ...) where
  method returns a non-referenced object. (Andi, Zeev)
- Fixed problem preventing startup errors from being displayed. (Marcus)
- Fixed start-up problem if both SPL and SimpleXML were enabled. The double
  initialization of apache 1.3 was causing problems here. (Marcus, Derick)
- Fixed bug #27606 (Expression must be a modifiable lvalue compiler error).
  (Derick)
- Fixed bug #27597 (pg_fetch_array not returning false). (Marcus)
- Fixed bug #27586 (ArrayObject::getIterator crashes with [] assignment). 
  (Marcus)
- Fixed bug #27537 (Objects pointing to each other segfaults). (Dmitry)
- Fixed bug #27535 (Problem with object freeing mechanism). (Dmitry)
- Fixed bug #27504 (Visibility bugs in call_user_function()). (Dmitry)
- Fixed bug #27338 (memory leak inside tsrm_virtual_cwd.c on win32). (Ilia)
- Fixed bug #27291 (get_browser matches browscap.ini patterns incorrectly). 
  (Jay)
- Fixed bug #27287 (wddx segfaults during deserialization). (Moriyoshi)
- Fixed bug #27263 (session extension crashes when unserializing referenced
  values / objects). (Moriyoshi)
- Fixed bug #27237 (Working with simplexml crashes apache2). (Rob)
- Fixed bug #27227 (Mixed case class names causes Fatal Error in Constructor 
  call). (Marcus)
- Fixed bug #27125 (strval() doesn't work for objects with __toString()).
  (Marcus)
- Fixed bug #27123 (Fix crash caused by bug in get_object_vars()). (Andi)
- Fixed bug #26677 (mbstring compile errors with IRIX compiler).
  (K.Kosako <kosako at sofnec dot co dot jp>, Rui, Moriyoshi)
- Fixed bug #26206 (register_long_arrays breaks superglobals). (Zeev)
- Fixed bug #25724 (argv and argc not defined). (Zeev)

12 Feb 2004, PHP 5 Beta 4
- Changed exceptions so that they must now inherit from the built-in Exception
  class. This allows for a general catch(Exception $e) statement to catch all
  exceptions. (Andi, Zeev)
- Added SPL extension. (Marcus, Derick)
- Added checks for invalid characters in a cookie name and cookie data 
  into set[raw]cookie(). (Brian)
- Added support for ++ and += (and similar) to SimpleXML. (Andi, Zeev)
- Added infrastructure for ++ and += (and similar) to object overloading
  modules. (Andi, Zeev)
- Added error message when trying to re-assign to $this variable. (Zeev, Andi)
- Added support for an interface to extend another interface. (Zeev)
- Added new pspell functions: (Brian)
  . pspell_config_dict_dir()
  . pspell_config_data_dir()
- Added new Interbase functions: (Ard)
  . ibase_service_attach() and ibase_service_detach().
  . ibase_backup() and ibase_restore().
  . ibase_maintain_db(), ibase_db_info() and ibase_server_info().
- Added context option "http"/"request_fulluri" to send entire URI in request
  which is required format for some proxies. (Sara)
- Added optional third parameter 'strict' to array_keys(). (Andrey)
- Added stream_lock() method to userspace streams interface. (Hartmut, Wez)
- Added xsltprocessor->registerPHPFunctions(). (Christian)
- Readded support for using classes before they are declared according to
  the behavior in PHP 4. This won't work with classes who are using PHP 5
  features such as interfaces. (Zeev, Andi)
- Completely overhauled SimpleXML extension. (Marcus, Rob, Sterling)
- Upgraded bundled SQLite library to version 2.8.11. (Ilia, Wez)
- Improved destructor implementation to always call destructors on clean
  shutdown. An order of destruction is not guaranteed. (Zeev, Andi)
- Redesigned exception support. This fixes many bugs in the previous design
  such as nested try's and problems with overloaded extensions. (Zeev, Andi)
- Redesigned clone by adding a clone keyword (clone $obj) and copying all
  properties before __clone() is called. Also allows calling parent __clone
  function by using parent::__clone(). (Zeev, Andi)
- Fixed interfaces to check for function return-by-reference equality when
  inheriting and implementing interfaces. (Andi, Zeev)
- Fixed foreach() to respect property visibility. (Marcus)
- Fixed problem with parse error in include() file not stopping PHP's
  execution. (Ilia)
- Fixed var_export() to show public, protected and private modifiers properly.
  (Derick)
- Fixed problems with longlong values in mysqli. (Georg)
- Fixed class name case preserving of user defined classes. (Marcus)
- Fixed bug #27145 (Unmangle private/protected property names before printing
  them inside error messages). (Ilia)
- Fixed bug #27103 (preg_split('//u') incorrectly splits UTF-8 strings into
  octets). (Moriyoshi)
- Fixed bug #27042 (SPL: SeekableIterator seek() broken). (Marcus)
- Fixed bug #27008 (Every class method can be called as static). (Marcus)
- Fixed bug #26938 (exec() has problems reading long lines).
  (Ilia, runekl[at]opoint[dot]com
- Fixed bug #26947 (ext/dom: Crash when using DomDocument::getElementById()).
  (Christian)
- Fixed bug #26911 (crash in sqlite extension when fetching data from empty
  queries). (Ilia)
- Fixed bug #26844 (ext/mime_magic: magic file validation broken). (Jani)
- Fixed bug #26819 (http_build_query() crashes on NULL output). (Ilia)
- Fixed bug #26817 (http_build_query() does not handle private & protected
  object properties correctly). (Ilia)
- Fixed bug #26815 (foreach of (DOM) childnodes crashes when Xinclude is used).
  (Rob)
- Fixed bug #26796 (SQLite causes crashes with other extensions *connect()
  calls). (Marcus)
- Fixed bug #26762 (unserialize() produces lowercase classnames). (Marcus)
- Fixed bug #26743 (getElementsByTagName doesn't work properly). (Rob)
- Fixed bug #26736 (__autoload not invoked for parent classes). (Marcus)
- Fixed bug #26723 (domNode::appendChild() changes child node namespace). (Rob)
- Fixed bug #26697 (calling class_exists() on a nonexistent class in __autoload
  results in segfault). (Marcus)
- Fixed bug #26696 (string index in a switch() crashes with multiple matches).
  (Andi)
- Fixed bug #26695 (Reflection API does not recognize mixed-case class hints).
  (Marcus)
- Fixed bug #26690 (make xsltProcessor->transformToUri use streams wrappers).
  (Ilia)
- Fixed bug #26680 (Added version check in mysqli_report_index). (Georg)
- Fixed bug #26675 (Segfault on ArrayAccess use). (Marcus)
- Fixed bug #26640 (__autoload() not invoked by Reflection classes). (Jani)
- Fixed bug #26543 (call_user_func() broken for self, parent). (Stanislav)
- Fixed bug #26077 (memory leak when new() result is not assigned and no
  constructor is defined). (Stanislav)
- Fixed bug #26065 (Crash when nesting classes). (Marcus)
- Fixed bug #25816 (disallow arrays in class constants). (Stanislav)
- Fixed bug #25329 (sqlite_create_function with method and reference to $this).
  (Marcus)
- Fixed bug #25038 (call_user_func() issues a warning if function throws an
  exception). (Marcus)
- Fixed bug #24608 (__set not triggered when overloading with array).
  (Stanislav)
- Fixed bug #24243 (enabling browscap causes segfault). (Wez)

21 Dec 2003, PHP 5 Beta 3
- Bundled new tidy extension (John, Wez)
- Upgraded PCRE library to version 4.5. (Andrei)
- Dropped Windows 95 support. (Andi)
- Moved extensions to PECL:
  . ext/crack (Jani, Derick)
  . ext/db (Jani, Derick)
  . ext/mcal (Jani, Derick)
  . ext/qtdom (Jani, Derick)
  . ext/notes (Wez)
- Added 'c' modifier to date() which returns the date in the ISO 8601 format.
  (Derick, Manuzhai)
- Added an optional parameter to microtime() to get the time as float. (Andrey)
- Added MacRoman encoding support to htmlentities(). (Derick, Marcus Bointon)
- Added possibility to call PHP functions as XSLT-functions. (Christian)
- Added possibility to prevent PHP from registering variables when input filter
  support is used. (Derick)
- Added iconv stream filter (convert.iconv.*). (Moriyoshi)
- Added EXSLT support in ext/xsl. (Christian)
- Added qdbm handler for dba extension. (mg at iceni dot pl, Marcus)
- Added new functions:
  . dba_key_split() to split inifile keys in an array. (Marcus)
  . time_nanosleep() signal safe sleep (Magnus, Ilia)
  . headers_list(). (Sara)
  . php_strip_whitespace(). strip whitespace & comments from a script. (Ilia)
  . php_check_syntax(). check php script for parse errors. (Ilia)
  . image_type_to_extension(). return extension based on image type. (Ilia)
  . stream_socket_sendto() and stream_socket_recvfrom(). (Wez)
  . iconv_mime_decode_headers(). (Moriyoshi)
  . get_declared_interfaces(). (Andrey, Marcus)
  . sqlite_fetch_column_types(). (Ilia)
- Added proxy support to http:// wrapper. (Sara)
- Added rename(), rmdir() and mkdir() support to userstreams. (Sara)
- Added rename(), rmdir() and mkdir() support to ftp:// wrapper. (Sara)
- Changed rename(), rmdir() and mkdir() to be routed via streams API. (Sara)
- Changed stat() and family to be routed via streams API. (Sara)
- Fixed include_once() / require_once() on Windows to honor case-insensitivity
  of files. (Andi)
- Fixed get_declared_classes() to return only classes. (Andrey, Marcus)
- Fixed __autoload() to preserve case of the passed class name. (Andi)
- Fixed bug #26615 () (runekl at opoint dot com, Derick)
- Fixed bug #26591 ("__autoload threw an exception" during an uncaught).
  (Marcus)
- Fixed bug #26534 (stream_get_meta_data() -> Access Violation). (Wez)
- Fixed bug #26528 (HTML entities are not being decoded by
  xml_parse()/xml_parse_into_struct()). (Ilia)
- Fixed bug #26182 (Object properties created redundantly). (Andi)
- Fixed bug #26156 (REPLACE_ZVAL_VALUE works on uninit stack-based zvals).
  (Moriyoshi)
- Fixed bug #26083 (Non-working write support in ext/dom). (Ilia)
- Fixed bug #26072 (--disable-libxml does not work). (Jani)
- Fixed bug #26001 (serialize crashes when accessing an overloaded object that
  has no properties (NULL hashtable)). (Wez)
- Fixed bug #25664 (COM crashes when calling a Delphi implementations of
  ITypeInfo). (Wez)
- Fixed bug #24837 (Incorrect behaviour of PPP using foreach). (Marcus)
- Fixed bug #24693 (Allow session.use_trans_sid to be enabled/disabled from
  inside the script). (Ilia)
- Fixed bug #24394 (Serializing cross-referenced objects causes segfault).
  (Moriyoshi)

30 Oct 2003, PHP 5 Beta 2
- Lots and lots of changes in the Zend Engine 2 since beta 1:
  . Added Iterators
  . Improved memory manager
  . Added Reflection API
  . Removed the not so working namespaces support
  . Removed support for expressions within constant declarations.
  . You can read about most changes in ZEND_CHANGES under the Zend directory.
- Improved the DBX extension: (Marc)
  . Added DBX_RESULT_UNBUFFERED flag for dbx_query().
  . Added dbx_fetch_row()
  . Added SQLite support.
- Improved the Interbase extension: (Ard Biesheuvel)
  . Added support for multiple databases into ibase_trans()
  . Added support for CREATE DATABASE, SET TRANSACTION and EXECUTE PROCEDURE
    statements into ibase_query()
  . Added ability to bind PHP arrays to native Interbase arrays
  . Added ibase_commit_ret() and ibase_rollback_ret()
  . Added ibase_drop_db()
  . Added ibase_gen_id()
  . Added ibase_name_result()
  . Added ibase_errcode()
  . Added ibase_affected_rows() and ibase_num_params()
  . Added ibase_param_info()
  . Added ibase_wait_event()
  . Added ibase_set_event_handler() and ibase_free_event_handler()
- Added new COM extension with integrated .Net support. (Wez)
- Added new functions:
  . setrawcookie(). (Brian)
  . pg_version(). (Marcus)
  . dbase_get_header_info(). (Zak)
  . snmp_read_mib(). (Jani)
  . http_build_query(). (Sara)
  . ftp_alloc(). (Sara)
  . array_udiff(). (Andrey)
  . array_udiff_assoc(). (Andrey)
  . array_udiff_uassoc(). (Andrey)
  . array_diff_uassoc(). (Andrey)
  . convert_uuencode(). (Ilia)
  . convert_uudecode(). (Ilia)
  . substr_compare(). (Ilia)
  . pcntl_wait(). (GeorgeS)
- Added "resume_pos" context option to "ftp://" wrapper. (Sara)
- Added optional parameter to OCIWriteTemporaryLob() to specify the type of LOB
  (Patch by Novicky Marek <novicky@aarongroup.cz>). (Thies)
- Added reflection API. (Andrei, George, Timm)
- Changed length parameter in fgetcsv() to be optional. (Moriyoshi)
- Fixed IPv6 support in MacOSX Panther. (Dan, Marko)
- Fixed fgetcsv() to correctly handle international (non-ascii) characters.
  (Moriyoshi)
- Fixed support for <![CDATA[]]> fields within XML documents in ext/xml.
  (Sterling)
- Fixed visibility of __construct and __clone. (Marcus)
- Fixed bug #25756 (SimpleXML's validate_schema_file() broken). (Moriyoshi)
- Fixed bug #25581 (getimagesize() returns incorrect values on bitmap (os2)
  files). (Marcus)
- Fixed bug #25494 (array_merge*() allows non-arrays as argument). (Jay)
- Fixed bug #24766 (strange result array from unpack()). (Moriyoshi)
- Fixed bug #24729 ($obj = new $className; causes crash when $className is not
  set). (Marcus)
- Fixed bug #24565 (cannot read array elements received via $_REQUEST). (Zeev)
- Fixed bug #24445 (get_parent_class() returns different values).
  (Sterling, Stanislav)
- Fixed bug #24403 (preg_replace() problem: Using $this when not in object
  context). (Zeev)
- Fixed bug #24399 (PEAR DB isError crash [instanceof_function fault?]).
  (Sterling, Marcus)
- Fixed bug #24396 (foreach ($k=>$v), the key $k is missing). (Zeev)
- Fixed bug #24279 (__get() crash when no value is returned). (Ilia)
- Fixed bug #22367 (undefined variable has a value). (Zeev)
- Fixed bug #19859 (allow fast_call_user_function to support __call).
  (Stanislav)
- Fixed bug #17997 (Warning when switch() and reference are combined). (Zeev)
- Fixed bug #17988 (strtotime failed to parse postgresql timestamp). (Derick)

29 Jun 2003, PHP 5 Beta 1
- Removed the bundled MySQL client library. (Sterling)
- Switched to Zend Engine 2, which includes numerous engine level improvements.
  A full list is available at http://www.php.net/zend-engine-2.php.
- Added SQLite (http://www.hwaci.com/sw/sqlite/) extension: (Wez, Marcus, Tal)
  . Includes bundled SQLite library
  . Enabled by default
- Completely Overhauled XML support:
  . New simplexml extension. (Sterling)
  . New DOM extension. (Rob, Chregu, Marcus)
  . New XSL extension. (Chregu, Rob)
  . Moved the old DOM-XML and XSLT extensions to PECL. (James, Sterling)
  . ext/xml can now use either libxml2 or expat to parse XML. (Sterling)
  . Removed bundled expat library. (Jani)
- New php.ini options:
  . "session.hash_function" and "session.hash_bits_per_character". (Sascha)
  . "mail.force_extra_paramaters". (Derick)
  . "register_long_arrays". (Zeev)
- Improved the speed of internal functions that use callbacks by 40% due to a
  new internal fast_call_user_function() function. (Sterling)
- Improved the streams support: (Wez)
  . Improved performance of readfile(), fpassthru() and some internal streams
    operations under Win32.
  . stream_socket_client() - similar to fsockopen(), but more powerful.
  . stream_socket_server() - Creates a server socket.
  . stream_socket_accept() - Accept a client connection.
  . stream_socket_get_name() - Get local or remote name of socket.
  . stream_copy_to_stream()
  . stream_get_line() - Reads either the specified number of bytes or until
    the ending string is found. (Ilia)
  . Added context property to userspace streams object. (Sara)
  . Added generic crypto interface for streams.
    (supports dynamic loading of OpenSSL)
  . Added lightweight streaming input abstraction to the Zend Engine scanners
    to provide uniform support for include()'ing data from PHP streams across
    all platforms.
  . Added 'string.base64' stream filter. (Moriyoshi)
  . Renamed stream_register_wrapper() to stream_wrapper_register(). (Derick)
- Improved the GD extension: (Pierre-Alain Joye, Ilia)
   . imagefilter() - Apply different filters to image.
    (Only available with bundled GD library)
   . Antialiased drawing support:
     o imageantialias() - (de)active antialias
     o imageline() and imagepolygon() antialias support
- Changed the length parameter in fgetss() to be optional. (Moriyoshi)
- Changed ini parser to allow for handling of quoted multi-line values. (Ilia)
- Changed get_extension_funcs() to return list of the built-in Zend Engine
  functions if "zend" is specified as the module name. (Ilia)
- Changed array_search() to accept also objects as a needle. (Moriyoshi)
- Changed ext/mcrypt to require libmcrypt version 2.5.6 or greater. (Derick)
- Changed uniqid() parameters to be optional and allow any prefix length.
  (Marcus)
- Added new iconv functions. (Moriyoshi)
  . iconv_strlen()
  . iconv_substr()
  . iconv_strpos()
  . iconv_strrpos()
  . iconv_mime_decode()
  . iconv_mime_encode()
- Added misc. new functions:
  . ldap_sasl_bind(). (peter_c60@hotmail.com, Jani)
  . imap_getacl(). (Dan, Holger Burbach)
  . file_put_contents(). (Sterling)
  . proc_nice() - Changes priority of the current process. (Ilia)
  . pcntl_getpriority() and pcntl_setpriority(). (Ilia)
  . idate(), date_sunrise() and date_sunset(). (Moshe Doron)
  . strpbrk() - Searches a string for a list of characters. (Ilia)
  . get_headers() - Returns headers sent by the server of the specified URL.
    (Ilia)
  . str_split() - Breaks down a string into an array of elements based on
    length. (Ilia)
  . array_walk_recursive(). (Ilia)
  . array_combine(). (Andrey)
- Added optional parameter to get_browser() to make it return an array. (Jay)
- Added optional parameter to openssl_sign() to specify the hashing algorithm.
  (scott@planetscott.ca, Derick)
- Added optional parameter to sha1(), sha1_file(), md5() and md5_file() which
  makes them return the digest as binary data. (Michael Bretterklieber, Derick)
- Added optional parameter to mkdir() to make directory creation recursive.
  (Ilia)
- Added optional parameter to file() which makes the result array not contain
  the line endings and to skip empty lines. (Ilia)
- Added new range() functionality:
  . Support for float modifier. (Ilia)
  . Detection of numeric values inside strings passed as high & low. (Ilia)
  . Proper handle the situations where high == low. (Ilia)
  . Added an optional step parameter. (Jon)
- Added encoding detection feature for expat XML parser.
  (Adam Dickmeiss, Moriyoshi)
- Added missing multibyte (unicode) support and numeric entity support to
  html_entity_decode(). (Moriyoshi)
- Added IPv6 support to ext/sockets. (Sara)
- Added "ftp://" wrapper support to opendir(), stat() and unlink(). (Sara)
- Added context options 'method', 'header' and 'content' for "http://" fopen
  wrapper. (Sara)
- Added input filter support. See README.input_filter for more info. (Rasmus)
- Added a replace count for str_[i]replace(), see bug #8218. (Sara)
- Fixed is_executable() to be available also on Windows. (Shane)
- Fixed dirname() and strip_tags() to be binary-safe. (Moriyoshi)
- Fixed bug #24098 (crash in pathinfo()). (Ilia)
- Fixed bug #21985 and #22064 (various mb_send_mail() issues). (Moriyoshi)
- Fixed bug #21600 (Assign by reference function call changes variable
  contents). (Zeev)