-
Notifications
You must be signed in to change notification settings - Fork 1
/
ChangeLog
1263 lines (1228 loc) · 67.1 KB
/
ChangeLog
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
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
PHP 3.0 CHANGE LOG ChangeLog
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
October 21, 2000, Version 3.0.18
- Fixed file upload bugs (Sascha)
October 11, 2000, Version 3.0.17
- Fixed output functions (Sascha)
- Added odbc_tables() (Frank)
- Fixed htmlspecialchars/htmlentities inconsistencies (Rasmus)
- Added is_uploaded_file() (Zeev)
- Clean up htmlspecialchars/htmlentities inconsistencies (Rasmus)
- Add optional charset parameter to sybase_[p]connect (alf@alpha.ulatina.ac.cr)
- Fixed incorrect handling of 0-precision strings (e.g., %4.0s)
in printf (Ken Coar)
- You can now call Ora_Error() without prameters to get the reason
for a failed connection attempt. (Kirill Maximov)
- Fixed crash in OCIFetchStatement() when trying to read after
all data has already been read. (Thies)
- Added --enable-sigchild. Use this option if you encounter
<defunc> processes when using Oracle 8i. (Thies)
- Uncommitted outstanding OCI8 transactions are now rolled back
before the connection is closed. (Thies)
- Improved configure checks for Oracle 8i. (Thies)
- Added imap_mime_header_decode() function (Skalski)
April 05, 2000, Version 3.0.16
- Fixed semaphore problem (Sascha)
Reported by: ilia@astrive.com
- Fixed pcre, dbase dupe symbol problems (Sascha)
- Fixed pcre, regex, dbase relocation problems (Sascha)
- Added UCD-SNMP 4.1.x support (Sascha)
- Make it possible to set both the socket and the port at the same time
in mysql_[p]connect() (Rasmus)
- Fixed exec() and friends and make them return last line of output
again. (Rasmus)
- Added check and support for JPEG format available in gd-1.8+ (Rasmus)
- Fixed Solid 2.3 support on glibc2 systems (Stig)
- Enhanced resolution of microtime() on OS/2 by using the high resolution timer
API. (Brian Havard)
February 25, 2000, Version 3.0.15
- Fixed crash in preg_match_all(). (Andrei)
- Backported safe_mode_protected_env_vars and safe_mode_allowed_env_vars INI
directives from PHP 4.0 (Zeev)
- Added Matthew Herman's FTP module patch for compatibility with Microsoft
FTP service. (Andrew Skalski)
- Fixed crash in strip_tags() and related functions.
- Fixed passthru() to no longer return any value. (Andrei)
- base64_decode() will decode POST data correct. (Thies)
Patch submitted by: Turadg Aleahmad <turadg@wise.berkeley.edu>
- Fixed a bug in the XML module that could cause crashes (Zeev)
- Fixed a long historical bug in the API function call_user_function(),
that could cause crashes in functions that made use of it (e.g.,
XML module functions) (Zeev)
- Fixed possible buffer-overflow in base64_decode(). (Thies)
- Fixed possible buffer-overflow in setcookie(). (Thies)
- Added ImageWbmp() for outputting WAP's Wireless Bitmaps (markonen)
- Support for LZW-compressed GIFs with gd 1.5, gd/freetype cleanups (markonen)
- Added IMAP modified UTF-7 encode/decode routines (Andrew Skalski)
- Added .ini option to set the default charset for the default text/html mime
type that php serves up (Rasmus)
January 11, 2000, Version 3.0.14
- Fixed broken GD autoconf check - GIF support was not detected unless libpng
and libz were both installed on the system (Rasmus)
- Fixed safe-mode problem in popen() (Kristian)
- Fixed safe-mode problem when resource had multiple consecutive /'s (Rasmus)
- Remove written permission clause from license
January 1, 2000, Version 3.0.13
- Fixed timezone conflict on AIX (Sascha)
- Fixed mysql_errno() problem when compiled against MySQL 3.23.x (Rasmus)
- Fixed buffer overruns in iptcembed(). (Thies)
- OCI8 now returns NULL values in LONG columns correct. (Thies)
- Check for broken apxs (Rasmus)
- explode() is now binary-safe. (Thies)
- strpos() is now binary-safe. (Thies)
- Added configure command to phpinfo() output (Stig)
- Added sketchy support for GNU recode 3.5 (Kristian)
- Added tmpfile() function (Stig)
- Fixed trim(), chop(), ltrim(), etc. to remove NULL characters as
well. (Colin Viebrock)
- krsort() added, although someone forgot to mention it ... (Thies)
- Upgraded regex library to alpha3.8 (Sascha)
- RFC-854 fix for internal FTP-Code. Commands have to end in "\r\n" (Thies)
- GD-1.7.x detection (Rasmus)
- added patch to functions/mime.c so that form submit with lynx and old IE
works properly (closes bug #2362, code by ash@ash.de)
- tempnam() now uses mkstemp() if available (Stig)
- serialize()/var_dump() now honor the precision set in php3.ini for
double-values. (Thies)
- Added mysql_change_user() function (Rasmus)
- Fixed garbage returned at the end of certain Sybase-Columns (Thies)
Patch submitted by: neal@wanlink.com
- XML_Parse_Into_Struct() no longer eats data. (Thies)
- Added portable access to stdio streams by using the
"php://stream-name" syntax (Sascha)
- Fixed zombie problem when using backquotes. eg: $x = `ls /`; (Thies)
- Locale settings are restored correctly at request end if they
were changed in the script (Jouni)
- Fixed wrong values returned by gmmktime() and its inconsistent behaviour.
Now gmmktime([args]) == mktime([args]) + date('Z', mktime([args])) should
always be true (Jouni)
- Proper handling of the slightly different behavior of Fdf Toolkit 4.0 (U. Steinmann)
- Fixed LOB/Persistent-Connection related OCI8-Crash (Thies)
- Added a function for applying a gamma correction to a GD image
Example: imagegammacorrect($im,1.8,2.2); (markonen)
- Added a function for applying a gamma correction to a HTML color value
Example: $maccolor = gamma_correct_tag("#cccccc",2.2,1.8); (markonen)
- Ora_Fetch_Into now resets the returned array in all cases (Thies)
- Fixed SEGV in mcal make_event_object() and
typo in mcal_list_alarms() (Andrew Skalski)
- Fixed memory leak in pdf_open_memory_image() (Uwe Steinmann)
- Added FTP support (Andrew Skalski)
- Added optional allowable_tags arguments to strip_tags(),
gzgetss() and fgetss() to allow you to specify a string of tags
that are not to be stripped (Rasmus)
- Fixed longstanding Apache .conf nested directive problem (Rasmus)
- OCI8 fix for fetching empty LOBs (Thies)
- OCI8 supports appending and positioning when saving LOBs (Thies)
- Added Mcal support (Mark Musone)
- OCI8 doesn't use define callbacks any longer. (Thies)
- Safe-Mode fix for oci8 savefile() function. (Thies)
- Added ldap_get_values_len function (Stig Venaas)
- Added more functions to posix module (Kristian).
- Close loophole that allowed virtual() to be used on a PHP file
without an error (Ken Coar)
- Added versioning support for shared library (Sascha)
- Fixed bug with '%' in error_log() strings when run as Apache module (Ken Coar)
- Return false from mysql_query() and mysql_db_query() in case saving the
result set data fails (Zeev)
- Make --with-apache --with-xml pick up Apache-bundled expat lib (Rasmus)
- Carry special Apache CFLAGS into PHP build for apxs build
This should fix any PHP/mod_ssl compile issues (Rasmus)
- Fixed a crash that would occur if wddx_deserialize did not receive
a valid packet (Andrey)
- Fixed sem_get() on AIX (Sascha)
- Removed --with-shared-apache to avoid problems with Apache 1.3.9 (Sascha)
- Improved speed of uniqid() by using the combined LCG and removing
the extra usleep() (Sascha)
- Introduced general combined linear congruential generator (Sascha)
- OciFetchInto now resets the returned array in all cases (Thies)
- Fixed flushing of cached information to disk in DBA's DB2 module (Sascha)
- DiskFreeSpace() fix (Thies)
- pdflib 2.01 support (Uwe Steinmann)
- Fixed mem-leak in sysv-shm (Thies)
- Added IMSP module (Chuck Hagenbuch)
- Added gd-1.6.x PNG functions (Rasmus from drew@elysium.ltd.uk)
- Fixed [s]printf 0-padding issues (Rasmus)
- Fixed a crash bug in number_format(), in case of very large numbers (Zeev)
July 28, 1999, Version 3.0.12
- gmktime/mktime DST fix (RL and Jim)
- Add imap_search (Chuck Hagenbuch)
- Added locale support for Perl Compatible Regexp functions (Andrey)
- fix crash on invalid URLs in fopen wrappers (Sascha)
- Add support for gd1.6 (disables the ImageCreateFromGif and ImageGif
functions because gd1.6 no longer supports GIF format files) (Jim)
- Fixed popen and pclose functions on Windows. (Jim)
- Fixed subprocess creation on Windows when used with IIS (Jim, Dave Cramer)
- Support for Swatch(r) Beat(tm), also known as Internet Time.
Use by including "B" in the date() or gmdate() format string. (markonen)
- added gmstrftime() (like strftime() but prints out in GMT not local
time) (David Sklar)
- A hack to allow 4bit antialiasing by modifying Freetype2 source (markonen)
- Initial Freetype2 support. You need to use the 1.2 compatibility
API <truetype.h> for now.. (markonen)
- added strtotime() function from <nsayer@quack.kfu.com> with some
modifications (Andrey)
- fix some problems in the socket buffering system (Sascha)
- allow subsecond precision in timeout parameter to fsockopen (Sascha)
- OCI8 - got rid of most Callback-Code (there's a bug in the Oracle
Client-Libraries). (Thies)
- OCI8 - added OCISetPrefetch($stmt,$rows) for automatic prefetching of
data. (Thies)
- make buildable on OS/2 (Brian Havard <brianh@kheldar.apana.org.au>)
- added Chad Cunningham's patches for Mac OS X Server compatibility (markonen)
- added ldap_error(), ldap_errno() and ldap_err2str() functions (kk)
- fix --with-shared-apache (Sascha)
NOTE: Use of this is deprecated. Refer to INSTALL.DSO instead.
Future releases do not support this option.
- support for accessing the raw POST data when its content-type isn't
already understood by PHP (Jim)
- fix pgsql_fetch_array/pgsql_fetch_object (Sascha)
- detect missing getrlimit function (Jim Jag.)
- fix diskfreespace() on Windows post-OSR2 again (Jim)
- added Chuck Hagenbuch's imap_getmailboxes(), imap_getsubscribed(),
and imap error queues; added preliminary support for persistent IMAP
connections. <askalski@chekinc.com>
June 27, 1999, Version 3.0.11
- detect missing getpgid function, fix posix_getsid (Jim)
- fix diskspacefree() on Win95 pre-OSR2 (Jim)
- fix APXS argument order (Sascha)
- decrease lexer memory footprint (see #1600) (alanc@soar.berkeley.edu, Sascha)
- add dbase_replace_record() (Greg <greg@darkphoton.com>, Sascha)
- bringing preg_split() behavior in line with split() (Andrey)
- fix APXS build on AIX (Rasmus)
June 25, 1999, Version 3.0.10
- fix base64_decode to match RFC 2045 semantics (Sascha & bfranklin@dct.com)
- fix potential segfault in tempnam() (Sascha)
- fix buffer overruns in dbase_get_record() (Sascha)
- workaround for negative 1-digit numbers not returned correct via OCI8 (Thies)
- fix APXS linking wrt to static libraries (Sascha)
- OCIExecute would sometimes return true on error (Thies)
- Made dba_open modes consistant with those from dbm_open. Specifically,
'w' is read/write but will NOT auto-create a non-existant file.
To do this, use 'c' which is read/write and auto-create. (Jim Jagielski)
- reverted split() to work the same way as pre 3.0.9 versions (Andrey)
- moved easter_date and easter_days to the calendar extension (Jim)
- fix VPATH APXS build process (Sascha)
- make workaround for UCD SNMP deallocate problem optional (Sascha)
(see the documentation for a more verbose description)
- make fgetcsv() understand multi-line fields and embedded quotes (RL & Nick
Talbott)
- Add extension_loaded() function (Jim)
- fix URL wrapper functions to play nicely with the socket code (Sascha)
- fix persistent definitions of constants in the mcrypt module (Sascha)
- Fix gmmktime() problems (RL and Cole Tuininga)
- Added support for "localhost:/path/to/socket" syntax for mysql_connect
(Thanks to Orion Poplawski <orion@bvt.com>.)
- Added support for file-upload arrays and put file-upload vars into
HTTP_POST_VARS (Brian)
- fix a string allocation bug introduced in 3.0.8 in the MySQL module (Sascha)
- overhaul of Hyperwave module, mainly code clean ups, some bug fixes
- fixed a bug in preg_split() that would return nothing if nothing
matched (Andrey)
- fixed a bug in preg_replace() that had to do with "\\" at the end
of the replacement string (Andrey)
- open_basedir now resolves symlinks in the configuration (S. Steffann)
- added 'Z' flag to date(): timezone offset in seconds (C. Viebrock)
- added 'L' flag to date(): 1 if it's a leap year, 0 if it isn't (C. Viebrock)
- fixed 't' flag in date() (J. Ahto)
- added support for upcoming pdflib 2.0 (U. Steinmann)
- mail() on Win32 will only add Date: and From: headers if not supplied
by the caller. (F. Kromann)
June 6 1999, Version 3.0.9
- added preg_quote() function (Andrey)
- fixed OCI8 crash for "Fetch out of sequence". (Thies)
- fix deallocation bug in dba's db2 module (Sascha)
- add "--enable-dmalloc" option (Sascha)
- added workaround for 1-digit numbers not returned correct via OCI8 (Thies)
- removed the limit for Ora_GetColumn/Ora_Fetch_Into again. (Thies C. Arntzen)
- fix WDDX buffer bug (Sascha)
- fixed Ora_GetColumn/Ora_Fetch_Into for LONG/LONG RAW (had to put in the 64K
limit again). (Thies C. Arntzen)
- added easter_date() function: returns timestamp of midnight on Easter
of the given year (valid for years 1970-2037) (Colin Viebrock)
- added easter_days() function: returns number of days after March 21 on which
Easter falls for a given year (Colin Viebrock)
- added 't' option to date() function: returns number of days in the
current month (Colin Viebrock)
- enabled warning when header() is used after the headers have
been sent in in non-debug builds (Jim)
- fixed connection and cursor shutdown in oracle-module (this is a fix for
the previous fix). (Thies C. Arntzen)
- fixed shutting down of statements in OCI8 if user logs-off. (Thies C. Arntzen)
- fixed very rare crash in shutdown of oracle-cursors. (Thies C. Arntzen)
- added Perl Compatible Regular Expressions support (Andrey Zmievski)
- fixed a couple of bugs in split()
- cpdf module now supports adding hyperlinks, annotations and outline.
Some testing was suggesful. (U. Steinmann)
- OCI8 now supports LONG/LONG RAW > 64K (Thies C. Arntzen)
- add connection timeout to p?fsockopen (Sascha)
- fix socket buffering subsystem for blocking sockets (Sascha)
- fix fopen-wrappers.c for url's (danny)
- fix fgets() semantics (Sascha)
- fix segfault in wddx_serialize_value (Sascha)
- add support for using PostScript Type 1 fonts for text in gd.c using T1lib
(ftp://sunsite.unc.edu/pub/Linux/libs/graphics/t1lib-0.?.tar.gz) (Jouni Ahto)
- add bin2hex (Sascha)
- add mhash support (see http://sasweb.de/mhash/ ) (Sascha)
May 22 1999, Version 3.0.8
- OCI8 fix for RAW and LONG RAW (Binary data) - sorry currently limited to
64K (Thies C. Arntzen)
- Added support for pdf creation lib from FastIO, www.fastio.com
This has not been tested, yet (U. Steinmann)
- Rewrite socket buffering subsystem (Sascha)
- Fix semaphore support on glibc-2.1 systems (Sascha)
- Add headers_sent() function which returns true if the http headers have been
sent out already
- Ora_GetColumn and Ora_Fetch_Into can now return "LONG" and "LONG RAW"
columns > 64K (Thies C. Arntzen)
- Another str_replace() fix to check for a 0-length haystack (RL)
- Add range() and shuffle() functions (Jim)
- Fix glibc-2.1.1 (RH6) related crashes (ssb)
- Fix md5 on 64-bit platforms (Sascha)
- Let exit/die set exit status in CGI version (Sascha)
- Make substr() binary-safe (RL)
- OCIError can now be called without any arguments to check the error of a failed
OCILogon. (Thies C. Arntzen)
- added XML_Parse_Into_Struct. Parse XML without using callbacks - This makes
life far easier when using the XML-Parser from classes etc. (Thies C. Arntzen)
- Small fix in configure.in: doesn't try to add in Informix support anymore
if INFORMIXDIR is set but --with-informix not specified (Jouni Ahto)
- add mcrypt module (Sascha)
- added REFCURSOR (including nested table) handling for OCI8. (Thies C. Arntzen)
- finalized new behaviour of hw_modifyobject() (U. Steinmann)
- added OCINLogon function (New-Logon) - if you need you "own-private" transaction context. (Thies C. Arntzen)
- GetImageSize now also returns the bits/sample ("bits") and samples/pixel ("cannels") ->
currently only works for JPEGs (Thies C. Arntzen)
- changed parameter evaluation of hw_modifyobject() (see docs) (U. Steinmann)
- fixed a sporadic crash when shutting down a request that used the ora_** calls. (Thies C. Arntzen)
- Add fgetcsv() function (RL from Nick Talbott)
- fixed mem-leak in ora_bind (Thies C. Arntzen)
- fixed length of bound variables returned from ora_bind. (Thies C. Arntzen)
- Added V1 of DBA (Sascha)
- made strtr() binary safe and faster. (Thies C. Arntzen)
- added Oracle-OCI8 persistent connections (Thies C. Arntzen)
- fixed OCIDefineByName crash. (Thies C. Arntzen)
- fixed some NULL-column related problems in OCI8-module. (Thies C. Arntzen)
- avoid stripping double slashes when fopen'ing files (Sascha)
- sql_regcase() change: only apply to alphabetic characters (Sascha)
- add snmprealwalk() (Sascha Schumann)
- fix serious bug in strftime() (Sascha Schumann)
- fix bug in ucwords() (Sascha Schumann)
- optimized fgets() and fread() (ssb)
- memory leak in operators.c fixed
- socket leak fixed (Sascha Schumann)
- Fixed the XML bug that caused garbage behind attributes
- Some Informix driver improvements.
- PUT method support (RL from mlemos@acm.org)
- Add ldap_mod_add(), ldap_mod_del() and ldap_mod_replace() (Gerritt Thomson)
- Fix parameter count problem in odbc_setoption()
- Replace broken str_replace(). The fix in 3.0.7 was bogus (Sascha Schumann)
- Really fix implode() this time. The fix in 3.0.7 was bogus (RL)
- Added more options 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 (RL)
- Add strip_tags() which uses the fgetss state-machine but acts on a string (RL)
- Add CRYPT_SALT_LENGTH constant (RL)
- added set_file_buffer() (Brian Moon)
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 (Thies C. Arntzen)
- Make configure script detect Netscape's LDAP SDK automagically
- Fixed Oracle-OCI8 module for windows. (Thies C. Arntzen)
- Add OCIRowCount function. (Number of affected rows for update-statements) (Thies C. Arntzen)
- Add OCIDefineByName function. (Thies C. Arntzen)
- 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. (Thies C. Arntzen)
- Add extract() function.
- Oracle-OCI8 driver now supports BLOBS/CLOBS and IN/OUT binding of local php
variables. (Thies C. Arntzen)
- Clean up apxs build
- Add INSTALL.REDHAT file to walk RedHat users through the install
- Added YP/NIS module from Stephanie Wehner
- 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
- Add flock() function
- 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
- Make sure XML element attributes have the right character encoding
- hw_insertdocument() returns object id now
- Add pdf_open() warning in configure and documentation
- Add diskfreespace() function (Thies C. Arntzen)
- Added aspell support
- Iptcparse would sometimes find a wrong tag. (Thies C. Arntzen)
- Force var_dump() to output headers
- Add optional 3th parameter to ora_fetchinto. (Thies C. Arntzen)
- Serialize and var_dump no longer show array elements that
have been unset. (Thies C. Arntzen)
- Add IptcEmbed() function (can replace an APP13-Marker in a JPEG file) (Thies C. Arntzen)
- 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
- Add gettimeofday() function
- Add getrusage() function
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 libphp3.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/php3 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.