Commit Graph

47 Commits

Author SHA1 Message Date
Sebastian Bergmann
4223aa4d5e MFH: Bump year. 2007-01-01 09:36:18 +00:00
Marcus Boerger
6fb763c4f9 - MFH Clean up (after consulting Andrei)
. Change the handlers SPL uses to php_pcre_*_impl(pcre_cache_entry*,....)
  . All refactored funcs (match, split, replace, grep) use the above
  . Change (zend|php)_error() to php_error_docref()
  . Move from old to new param parsing api
  . Fix memleaks in unicode mode
2006-07-20 22:53:07 +00:00
Marcus Boerger
bf4c9ef686 - MFH: Little bit refactoring: Two new PHPAPI functions:
. php_pcre_match
  . php_pcre_split
2006-07-16 21:09:30 +00:00
Marcus Boerger
0de69fe97d - MFH pcre_get_compiled_regex_cache() support 2006-05-09 23:53:40 +00:00
Andrei Zmievski
f9de2cc142 MFH 2006-05-09 18:29:26 +00:00
foobar
5bd93221a8 bump year and license version 2006-01-01 12:51:34 +00:00
foobar
23e671a51e - Bumber up year 2005-08-03 14:08:58 +00:00
Andrey Hristov
9e939133d2 FR 32275 - fifth parameter to preg_replace() to count number of replaces
made.
#it would be nice if someone of the doc team documents it. thanks!
2005-03-12 12:03:50 +00:00
Moriyoshi Koizumi
5d9495dfe7 - Binary compatibility stuff, for safety. 2004-02-01 03:02:47 +00:00
Moriyoshi Koizumi
0330fb2cbf - Fix bug #27103 (preg_split('//u') incorrectly splits UTF-8 strings into octets). 2004-01-31 22:36:33 +00:00
foobar
ccfc46b0aa - Happy new year and PHP 5 for rest of the files too..
# Should the LICENSE and Zend/LICENSE dates be updated too?
2004-01-08 17:33:29 +00:00
James Cox
f68c7ff249 updating license information in the headers. 2003-06-10 20:04:29 +00:00
Sebastian Bergmann
5ca078779a Eliminate some TSRMLS_FETCH() calls. Tested with Win32 build of SAPI/CGI and SAPI/CLI on Win32. 2003-03-25 08:07:13 +00:00
Sebastian Bergmann
b506f5c8f8 Bump year. 2002-12-31 16:08:15 +00:00
Andrei Zmievski
1668570e4d Changing email address. 2002-05-13 17:28:38 +00:00
Sebastian Bergmann
90613d2282 Maintain headers. 2002-02-28 08:29:35 +00:00
Andrei Zmievski
260aee10fe Fix a long-standing infelicity that resulted in extra regex information
not being passed to PCRE functions.
2002-02-12 03:15:27 +00:00
Andrei Zmievski
51f1739983 Expose pcre_get_compiled_regex as an API function. 2002-02-12 03:00:05 +00:00
Sebastian Bergmann
38933514e1 Update headers. 2001-12-11 15:32:16 +00:00
Rasmus Lerdorf
02e25f0a1e # Butt-ugly looking code here, but I need regular expressions to do this.
Re-instated safe-mode realm mangling as it was in php 2 and 3 albeit
in a somewhat more robust way.
@ Re-instated safe-mode realm mangling (Rasmus)
2001-10-20 22:01:56 +00:00
Andrei Zmievski
8fca87adb5 Updated to match TSRM changes. 2001-07-30 15:41:11 +00:00
Andrei Zmievski
285ec0ca2c @- IMPORTANT: removed /F modifier handling from preg_replace(). Instead
@  one should use new preg_replace_callback() function. (Andrei)
2001-03-13 05:24:03 +00:00
Andi Gutmans
eb6ba01d1c - Fix copyright notices with 2001 2001-02-26 06:11:02 +00:00
Andrei Zmievski
0651b4ff16 Modified /F handling to allow calling object methods. 2001-02-01 05:04:58 +00:00
Andrei Zmievski
5068444dfe Z-ify the source. 2001-01-22 19:29:44 +00:00
Sascha Schumann
16017f6d78 Change header protection macros to conform to standard.
Draft 3 of IEEE 1003.1 200x, "2.2 The Compilation Environment"

  All identifiers that begin with an underscore and either an uppercase
  letter or another underscore are always reserved for any use by the
  implementation.
2000-07-02 23:46:51 +00:00
Andrei Zmievski
29e8e565c6 @- Added an optional parameter to preg_replace() that can be used to
@  specify how many replacements to make. (Andrei)
2000-06-28 20:07:26 +00:00
Andrei Zmievski
4ef2af7c72 Update header file. 2000-06-01 16:34:50 +00:00
Zeev Suraski
e043439ff6 Update the license with the new clause 6 2000-05-18 15:34:45 +00:00
Zeev Suraski
86fa2aade2 the pipe is breaking all the time 2000-02-19 23:41:32 +00:00
Andrei Zmievski
24150ded0d Changing the header. 2000-02-15 14:24:46 +00:00
Stig Bakken
ae1b7bf4b8 @Fix warnings compiling in maintainer mode. (Stig)
Fix warnings compiling in maintainer mode.
Install DB/common.php and DB/mysql.php on "make install".
# We still have a warning from http_config.h:97.  Rasmus? :-)
1999-12-05 10:29:06 +00:00
Andrei Zmievski
a92fb5fe3d rename. 1999-10-01 14:54:55 +00:00
Andrey Hristov
870a6679ff - Updated bundled PCRE library to version 2.08
- Made it possible to specify external location of the PCRE library
- Reworked PCRE extension to use updated PCRE library API

Hopefully now everything behaves just like Perl..
1999-09-14 19:24:37 +00:00
Andrey Hristov
5e4a85f2e3 Static is good... 1999-09-03 21:12:10 +00:00
Andrey Hristov
f72897c29d Practice what you preach, I guess. 1999-09-03 19:01:19 +00:00
Andrey Hristov
6b82192bf7 Added locale support. 1999-07-20 20:57:04 +00:00
Andrey Hristov
7aa981f5b7 Correct option caching 1999-07-05 15:25:51 +00:00
Andrey Hristov
3b1843bc9f Added preg_grep() function. 1999-06-10 14:41:38 +00:00
Andrey Hristov
dbfeaabb16 Added preg_quote() function. 1999-06-04 13:56:23 +00:00
Andrey Hristov
3fe94e5b37 -Modified PCRE library slightly to do what needs to be done
-Updated preg_replace() code to handle stuff properly
-Removed ability to specify external PCRE library source to link against
(since our bundled version is patched now)
1999-05-28 20:54:52 +00:00
Andrey Hristov
e10e4dbe10 Really fix the configuration now so that it's possible to compile both
against the bundled PCRE library and the one external to the source tree.
Crossing my fingers while Zeev compiles this. :)
1999-05-27 13:59:39 +00:00
Zeev Suraski
36947fc45a Fix pcre build 1999-05-27 01:19:00 +00:00
Andrey Hristov
d73c638526 Added preg_split. Same syntax as regular split(). 1999-05-26 18:59:04 +00:00
Andrey Hristov
0062ae6218 A few changes here.
First of all, as per extensive discussion on the list, the functions are now
prefixed with "preg" instead of "pcre".

Secondly, global matching is now possible using preg_match_all.  Please, give
suggestions on a better name if this one doesn't sit well with you.  Possible
names are preg_global_match and preg_gmatch.

preg_match_all takes 4 arguments: a regex pattern, a subject string,
the array for capturing subpatterns, and a parameter that tells how the results
in the subpatterns array are arranged.

Basically, preg_match_all will go through the subject string and try to capture
all the matches that it finds, not just the first one like preg_match.

4th parameter can be PREG_PATTERN_ORDER (default) or PREG_SET_ORDER.

Example:
preg_match_all("|</?([^>]+)>|", "<div align=left>a test</div>", $out, PREG_PATTERN_ORDER);

This returns results so that $out[0] is an array of full pattern matches, $out[1] is an array
of first captured subpattern matches, and so on.

$out[0] -> ("<div align=left>", "</div>")
$out[1] -> ("div align=left", "div")

Example:
preg_match_all("|</?([^>]+)>|", "<div align=left>a test</div>", $out, PREG_SET_ORDER);

This returns results so that $out[0] is an array of first full pattern match and subpatterns,
$out[1] is an array of second full pattern match and subpatterns.

$out[0] -> ("<div align=left>", "div align=left")
$out[1] -> ("</div>", "div")

If anyone has a better name for these PREG_ constants and also which one should be the default,
I'd like to hear it.
1999-05-26 15:22:02 +00:00
Andrey Hristov
e3a70c1f04 -Added regex cache
-Made module thread-safe
1999-05-21 19:27:44 +00:00
Andrey Hristov
17bbbf2963 Initial check-in of PCRE (Perl Compatible Regular Expressions) extension.
PCRE library can be found at ftp://ftp.cus.cam.ac.uk/pub/software/programs/pcre/

config.m4 will be updated to be more robust later on.

perl_match() takes a regular expression, the source string, and the array
for subpattern matches.

perl_replace() takes a regular expression, the search string, and the replacement
string.

Regular expression is specified using delimiters and options.  Example:

perl_match("/<[a-z]*>/i", $text, $tags);

More stuff is coming soon.
1999-05-21 13:17:23 +00:00