1999-04-17 08:37:12 +08:00
|
|
|
|
/*
|
|
|
|
|
+----------------------------------------------------------------------+
|
2000-07-24 09:40:02 +08:00
|
|
|
|
| PHP version 4.0 |
|
1999-04-17 08:37:12 +08:00
|
|
|
|
+----------------------------------------------------------------------+
|
2001-02-26 14:11:02 +08:00
|
|
|
|
| Copyright (c) 1997-2001 The PHP Group |
|
1999-04-17 08:37:12 +08:00
|
|
|
|
+----------------------------------------------------------------------+
|
2000-07-24 09:40:02 +08:00
|
|
|
|
| This source file is subject to version 2.02 of the PHP license, |
|
|
|
|
|
| that is bundled with this package in the file LICENSE, and is |
|
|
|
|
|
| available at through the world-wide-web at |
|
|
|
|
|
| http://www.php.net/license/2_02.txt. |
|
|
|
|
|
| If you did not receive a copy of the PHP license and are unable to |
|
|
|
|
|
| obtain it through the world-wide-web, please send a note to |
|
|
|
|
|
| license@php.net so we can mail you a copy immediately. |
|
1999-04-17 08:37:12 +08:00
|
|
|
|
+----------------------------------------------------------------------+
|
|
|
|
|
| Authors: Rasmus Lerdorf <rasmus@lerdorf.on.ca> |
|
1999-06-16 05:51:00 +08:00
|
|
|
|
| Stig S<EFBFBD>ther Bakken <ssb@guardian.no> |
|
1999-04-17 08:37:12 +08:00
|
|
|
|
+----------------------------------------------------------------------+
|
2000-07-24 09:40:02 +08:00
|
|
|
|
*/
|
1999-04-17 08:37:12 +08:00
|
|
|
|
|
|
|
|
|
/* $Id$ */
|
|
|
|
|
|
1999-12-18 12:01:20 +08:00
|
|
|
|
/* Synced with php 3.0 revision 1.43 1999-06-16 [ssb] */
|
* fixed some #if/#ifdef issues
* hand-patched in php3 changes from 3.0.6 to HEAD in these files:
fopen-wrappers.[ch] ext/standard/file.[ch] ext/standard/fsock.[ch]
ext/standard/php3_string.h ext/standard/string.c
* added some new file/socket macros for more readable code:
FP_FGETS(buf,len,sock,fp,issock)
FP_FREAD(buf,len,sock,fp,issock)
FP_FEOF(sock,fp,issock)
FP_FGETC(sock,fp,issock)
1999-06-17 01:06:53 +08:00
|
|
|
|
|
2000-07-03 08:41:19 +08:00
|
|
|
|
#ifndef PHP_STRING_H
|
|
|
|
|
#define PHP_STRING_H
|
1999-04-17 08:37:12 +08:00
|
|
|
|
|
1999-05-16 19:19:26 +08:00
|
|
|
|
PHP_FUNCTION(strspn);
|
|
|
|
|
PHP_FUNCTION(strcspn);
|
|
|
|
|
PHP_FUNCTION(str_replace);
|
|
|
|
|
PHP_FUNCTION(chop);
|
|
|
|
|
PHP_FUNCTION(trim);
|
|
|
|
|
PHP_FUNCTION(ltrim);
|
1999-07-25 06:16:54 +08:00
|
|
|
|
PHP_FUNCTION(soundex);
|
2000-05-23 22:37:39 +08:00
|
|
|
|
PHP_FUNCTION(levenshtein);
|
1999-04-17 08:37:12 +08:00
|
|
|
|
|
1999-12-14 11:52:12 +08:00
|
|
|
|
PHP_FUNCTION(count_chars);
|
2000-07-22 09:12:24 +08:00
|
|
|
|
PHP_FUNCTION(wordwrap);
|
1999-05-16 19:19:26 +08:00
|
|
|
|
PHP_FUNCTION(explode);
|
|
|
|
|
PHP_FUNCTION(implode);
|
|
|
|
|
PHP_FUNCTION(strtok);
|
|
|
|
|
PHP_FUNCTION(strtoupper);
|
|
|
|
|
PHP_FUNCTION(strtolower);
|
|
|
|
|
PHP_FUNCTION(basename);
|
|
|
|
|
PHP_FUNCTION(dirname);
|
2000-09-10 13:59:16 +08:00
|
|
|
|
PHP_FUNCTION(pathinfo);
|
1999-05-16 19:19:26 +08:00
|
|
|
|
PHP_FUNCTION(strstr);
|
|
|
|
|
PHP_FUNCTION(strpos);
|
|
|
|
|
PHP_FUNCTION(strrpos);
|
|
|
|
|
PHP_FUNCTION(strrchr);
|
|
|
|
|
PHP_FUNCTION(substr);
|
|
|
|
|
PHP_FUNCTION(quotemeta);
|
|
|
|
|
PHP_FUNCTION(ucfirst);
|
|
|
|
|
PHP_FUNCTION(ucwords);
|
|
|
|
|
PHP_FUNCTION(strtr);
|
|
|
|
|
PHP_FUNCTION(strrev);
|
|
|
|
|
PHP_FUNCTION(hebrev);
|
* fixed some #if/#ifdef issues
* hand-patched in php3 changes from 3.0.6 to HEAD in these files:
fopen-wrappers.[ch] ext/standard/file.[ch] ext/standard/fsock.[ch]
ext/standard/php3_string.h ext/standard/string.c
* added some new file/socket macros for more readable code:
FP_FGETS(buf,len,sock,fp,issock)
FP_FREAD(buf,len,sock,fp,issock)
FP_FEOF(sock,fp,issock)
FP_FGETC(sock,fp,issock)
1999-06-17 01:06:53 +08:00
|
|
|
|
PHP_FUNCTION(hebrevc);
|
1999-05-16 19:19:26 +08:00
|
|
|
|
PHP_FUNCTION(user_sprintf);
|
|
|
|
|
PHP_FUNCTION(user_printf);
|
2001-08-08 03:44:45 +08:00
|
|
|
|
PHP_FUNCTION(vprintf);
|
|
|
|
|
PHP_FUNCTION(vsprintf);
|
1999-09-06 04:55:13 +08:00
|
|
|
|
PHP_FUNCTION(addcslashes);
|
1999-05-16 19:19:26 +08:00
|
|
|
|
PHP_FUNCTION(addslashes);
|
1999-09-06 04:55:13 +08:00
|
|
|
|
PHP_FUNCTION(stripcslashes);
|
1999-05-16 19:19:26 +08:00
|
|
|
|
PHP_FUNCTION(stripslashes);
|
|
|
|
|
PHP_FUNCTION(chr);
|
|
|
|
|
PHP_FUNCTION(ord);
|
* fixed some #if/#ifdef issues
* hand-patched in php3 changes from 3.0.6 to HEAD in these files:
fopen-wrappers.[ch] ext/standard/file.[ch] ext/standard/fsock.[ch]
ext/standard/php3_string.h ext/standard/string.c
* added some new file/socket macros for more readable code:
FP_FGETS(buf,len,sock,fp,issock)
FP_FREAD(buf,len,sock,fp,issock)
FP_FEOF(sock,fp,issock)
FP_FGETC(sock,fp,issock)
1999-06-17 01:06:53 +08:00
|
|
|
|
PHP_FUNCTION(nl2br);
|
1999-05-16 19:19:26 +08:00
|
|
|
|
PHP_FUNCTION(setlocale);
|
2001-01-15 00:36:30 +08:00
|
|
|
|
PHP_FUNCTION(localeconv);
|
2001-07-04 18:10:30 +08:00
|
|
|
|
PHP_FUNCTION(nl_langinfo);
|
1999-05-16 19:19:26 +08:00
|
|
|
|
PHP_FUNCTION(stristr);
|
|
|
|
|
PHP_FUNCTION(chunk_split);
|
1999-07-25 06:16:54 +08:00
|
|
|
|
PHP_FUNCTION(parse_str);
|
1999-05-16 19:12:23 +08:00
|
|
|
|
PHP_FUNCTION(bin2hex);
|
* fixed some #if/#ifdef issues
* hand-patched in php3 changes from 3.0.6 to HEAD in these files:
fopen-wrappers.[ch] ext/standard/file.[ch] ext/standard/fsock.[ch]
ext/standard/php3_string.h ext/standard/string.c
* added some new file/socket macros for more readable code:
FP_FGETS(buf,len,sock,fp,issock)
FP_FREAD(buf,len,sock,fp,issock)
FP_FEOF(sock,fp,issock)
FP_FGETC(sock,fp,issock)
1999-06-17 01:06:53 +08:00
|
|
|
|
PHP_FUNCTION(similar_text);
|
1999-07-24 06:35:14 +08:00
|
|
|
|
PHP_FUNCTION(strip_tags);
|
1999-10-28 06:06:05 +08:00
|
|
|
|
PHP_FUNCTION(str_repeat);
|
1999-11-17 06:44:13 +08:00
|
|
|
|
PHP_FUNCTION(substr_replace);
|
2000-04-13 03:39:02 +08:00
|
|
|
|
PHP_FUNCTION(strnatcmp);
|
|
|
|
|
PHP_FUNCTION(strnatcasecmp);
|
2000-04-26 08:29:59 +08:00
|
|
|
|
PHP_FUNCTION(substr_count);
|
2000-06-07 04:42:33 +08:00
|
|
|
|
PHP_FUNCTION(str_pad);
|
2000-06-07 02:58:15 +08:00
|
|
|
|
PHP_FUNCTION(sscanf);
|
2001-01-17 09:10:50 +08:00
|
|
|
|
#ifdef HAVE_STRCOLL
|
|
|
|
|
PHP_FUNCTION(strcoll);
|
|
|
|
|
#endif
|
2000-04-13 03:39:02 +08:00
|
|
|
|
|
2001-01-15 18:48:48 +08:00
|
|
|
|
|
2001-01-18 04:37:49 +08:00
|
|
|
|
#if defined(HAVE_LOCALECONV) && defined(ZTS)
|
2001-01-15 18:48:48 +08:00
|
|
|
|
PHP_MINIT_FUNCTION(localeconv);
|
|
|
|
|
PHP_MSHUTDOWN_FUNCTION(localeconv);
|
|
|
|
|
#endif
|
2001-07-04 18:10:30 +08:00
|
|
|
|
#if HAVE_NL_LANGINFO
|
|
|
|
|
PHP_MINIT_FUNCTION(nl_langinfo);
|
|
|
|
|
#endif
|
2001-01-15 18:48:48 +08:00
|
|
|
|
|
2000-04-13 03:39:02 +08:00
|
|
|
|
#define strnatcmp(a, b) \
|
|
|
|
|
strnatcmp_ex(a, strlen(a), b, strlen(b), 0)
|
|
|
|
|
#define strnatcasecmp(a, b) \
|
|
|
|
|
strnatcmp_ex(a, strlen(a), b, strlen(b), 1)
|
|
|
|
|
PHPAPI int strnatcmp_ex(char const *a, size_t a_len, char const *b, size_t b_len, int fold_case);
|
1999-04-17 08:37:12 +08:00
|
|
|
|
|
2000-02-11 03:41:21 +08:00
|
|
|
|
PHPAPI char *php_strtoupper(char *s, size_t len);
|
|
|
|
|
PHPAPI char *php_strtolower(char *s, size_t len);
|
|
|
|
|
PHPAPI char *php_strtr(char *str, int len, char *str_from, char *str_to, int trlen);
|
2001-08-06 11:50:52 +08:00
|
|
|
|
PHPAPI char *php_addslashes(char *str, int length, int *new_length, int freeit TSRMLS_DC);
|
|
|
|
|
PHPAPI char *php_addcslashes(char *str, int length, int *new_length, int freeit, char *what, int wlength TSRMLS_DC);
|
|
|
|
|
PHPAPI void php_stripslashes(char *str, int *len TSRMLS_DC);
|
2000-02-11 03:41:21 +08:00
|
|
|
|
PHPAPI void php_stripcslashes(char *str, int *len);
|
2001-08-12 01:03:37 +08:00
|
|
|
|
PHPAPI char *php_basename(char *str, size_t len , char *suffix, size_t sufflen);
|
2000-02-11 03:41:21 +08:00
|
|
|
|
PHPAPI void php_dirname(char *str, int len);
|
|
|
|
|
PHPAPI char *php_stristr(unsigned char *s, unsigned char *t, size_t s_len, size_t t_len);
|
|
|
|
|
PHPAPI char *php_str_to_str(char *haystack, int length, char *needle,
|
1999-06-23 03:37:26 +08:00
|
|
|
|
int needle_len, char *str, int str_len, int *_new_length);
|
2001-09-04 17:35:53 +08:00
|
|
|
|
PHPAPI void php_trim(zval **str, zval *return_value, int mode TSRMLS_DC);
|
2001-09-04 17:33:30 +08:00
|
|
|
|
PHPAPI void php_trim2(zval **str, zval **what, zval *return_value, int mode TSRMLS_DC);
|
2000-02-11 03:41:21 +08:00
|
|
|
|
PHPAPI void php_strip_tags(char *rbuf, int len, int state, char *allow, int allow_len);
|
* fixed some #if/#ifdef issues
* hand-patched in php3 changes from 3.0.6 to HEAD in these files:
fopen-wrappers.[ch] ext/standard/file.[ch] ext/standard/fsock.[ch]
ext/standard/php3_string.h ext/standard/string.c
* added some new file/socket macros for more readable code:
FP_FGETS(buf,len,sock,fp,issock)
FP_FREAD(buf,len,sock,fp,issock)
FP_FEOF(sock,fp,issock)
FP_FGETC(sock,fp,issock)
1999-06-17 01:06:53 +08:00
|
|
|
|
|
2001-09-09 20:55:48 +08:00
|
|
|
|
PHPAPI int php_char_to_str(char *str, uint len, char from, char *to, int to_len, pval *result);
|
* fixed some #if/#ifdef issues
* hand-patched in php3 changes from 3.0.6 to HEAD in these files:
fopen-wrappers.[ch] ext/standard/file.[ch] ext/standard/fsock.[ch]
ext/standard/php3_string.h ext/standard/string.c
* added some new file/socket macros for more readable code:
FP_FGETS(buf,len,sock,fp,issock)
FP_FREAD(buf,len,sock,fp,issock)
FP_FEOF(sock,fp,issock)
FP_FGETC(sock,fp,issock)
1999-06-17 01:06:53 +08:00
|
|
|
|
|
2001-09-04 17:33:30 +08:00
|
|
|
|
PHPAPI void php_implode(zval *delim, zval *arr, zval *return_value);
|
|
|
|
|
PHPAPI void php_explode(zval *delim, zval *str, zval *return_value, int limit);
|
2000-09-27 23:18:00 +08:00
|
|
|
|
|
|
|
|
|
static inline char *
|
|
|
|
|
php_memnstr(char *haystack, char *needle, int needle_len, char *end)
|
|
|
|
|
{
|
|
|
|
|
char *p = haystack;
|
2001-07-21 11:26:31 +08:00
|
|
|
|
char first = *needle;
|
|
|
|
|
|
|
|
|
|
/* let end point to the last character where needle may start */
|
|
|
|
|
end -= needle_len;
|
|
|
|
|
|
|
|
|
|
while (p <= end) {
|
|
|
|
|
while (*p != first)
|
|
|
|
|
if (++p > end)
|
|
|
|
|
return NULL;
|
|
|
|
|
if (memcmp(p, needle, needle_len) == 0)
|
|
|
|
|
return p;
|
|
|
|
|
p++;
|
2000-09-27 23:18:00 +08:00
|
|
|
|
}
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
|
2000-02-11 03:41:21 +08:00
|
|
|
|
PHPAPI size_t php_strspn(char *s1, char *s2, char *s1_end, char *s2_end);
|
|
|
|
|
PHPAPI size_t php_strcspn(char *s1, char *s2, char *s1_end, char *s2_end);
|
|
|
|
|
|
|
|
|
|
#ifndef HAVE_STRERROR
|
|
|
|
|
PHPAPI char *php_strerror(int errnum);
|
|
|
|
|
#define strerror php_strerror
|
|
|
|
|
#endif
|
1999-04-17 08:37:12 +08:00
|
|
|
|
|
2000-07-09 04:38:23 +08:00
|
|
|
|
void register_string_constants(INIT_FUNC_ARGS);
|
2001-08-06 04:25:40 +08:00
|
|
|
|
int php_charmask(unsigned char *input, int len, char *mask TSRMLS_DC);
|
2000-07-09 04:38:23 +08:00
|
|
|
|
|
2000-07-03 08:41:19 +08:00
|
|
|
|
#endif /* PHP_STRING_H */
|