Home > Article > Backend Development > A brief discussion on PHP source code 2: About strlen, strtolower, strtoupper, ord, chr functions
This article mainly introduces a brief discussion of PHP source code 2: about strlen, strtolower, strtoupper, ord, chr functions, which have certain reference value. Now I share them with you. Friends in need can refer to them
int strlen (string string)
Return the length of the string
There is no relevant implementation in the standard extension. Use Z_STRLEN, Z_STRLEN_P or Z_STRLEN_PP to obtain the length in other extension functions
string strtolower (string str )
Change a string to lowercase, the implementation is as follows
[Classic source code]
char *php_strtolower(char *s, size_t len){ unsigned char *c, *e; c = s; e = c+len; while (c < e) { *c = tolower(*c); c++; } return s;}
Although this is a simple program that traverses the string and changes each character to lowercase , but this is a standard procedure using pointers.
string strtoupper (string string)
Change a string to uppercase
The code implementation is similar to the above program except that the tolower function is changed to toupper
string chr (int ascii)
Returns a single character corresponding to ascii.
The essence is to return a string of length 1
[Source code]
temp[0] = (char) Z_LVAL_PP(num); temp[1] = 0; RETVAL_STRINGL(temp, 1, 1);
int ord (string string)
Return the ASCII value of the character
The essence is to return The ASCII value of the first character of the string
[Source code]
RETURN_LONG((unsigned char) Z_STRVAL_PP(str)[0]);
The above is the entire content of this article. I hope it will be helpful to everyone's learning. For more related content, please pay attention to the PHP Chinese website!
Related recommendations:
A brief discussion of PHP source code 1: explode and implode functions
The above is the detailed content of A brief discussion on PHP source code 2: About strlen, strtolower, strtoupper, ord, chr functions. For more information, please follow other related articles on the PHP Chinese website!