Heim > Artikel > Backend-Entwicklung > Eine kurze Diskussion zum dritten PHP-Quellcode: Über die Funktionen strrchr, strstr und stristr
Dieser Artikel stellt hauptsächlich den PHP-Quellcode drei vor: die Funktionen strrchr, strstr, stristr, die einen bestimmten Referenzwert haben. Jetzt können Freunde in Not darauf verweisen
String strrchr (Zeichenfolge Heuhaufen, Zeichenfolge Nadel)
Gibt die Zeichenfolge nach der letzten Nadel (Zeichen) im Heuhaufen zurück
Wenn „Nadel“ eine Zahl ist, wandeln Sie diese Zahl in das diesem Wert entsprechende Zeichen um.
Wenn „Nadel“ eine Zahl ist mehr als eine Zeichenfolge, nehmen Sie das erste Zeichen
Wenn Heuhaufen eine Zahl ist, wird die Zahl direkt in eine Zeichenfolge umgewandelt
Rufen Sie im Programm „convert_to_string_ex(haystack)“ auf Die Implementierung davon; Die Funktion behandelt grundsätzlich einige Sondersituationen (wie oben). Am Ende wird die Position ermittelt, an der die letzte Nadel erscheint, und die Zeichenfolge wird entsprechend der Position nach dieser Position zurückgegeben. Das Gleiche gilt für die Rückgabe false
string strstr (string haystack, string Needle)
Diese Funktion ähnelt strrchr, außer dass ihre Nadel eine Zeichenfolge sein darf und sie nach dem ersten Vorkommen von „nadel“ sucht position gibt die folgende Zeichenfolge zurück. Wenn sie nicht existiert, wird FALSE zurückgegeben.
enthält einige spezielle Details, die es wert sind, in seinem Code gelernt zu werden, wie im folgenden Code gezeigt.
static inline char *zend_memnstr(char *haystack, char *needle, int needle_len, char *end){ char *p = haystack; char ne = needle[needle_len-1]; if(needle_len > end-haystack) { return NULL; } end -= needle_len; // 优化细节一,仅查找end-needle_len长度的字符串 while (p <= end) { // 优化细节二,此处先判断字符串的开头和结尾的字符是否一样,如果一样则再判断整个字符串,提升性能 if ((p = (char *)memchr(p, *needle, (end-p+1))) && ne == p[needle_len-1]) { if (!memcmp(needle, p, needle_len-1)) { return p; } } if (p == NULL) { return NULL; } p++; } return NULL;}Der obige Code ist der Kerncode für die Implementierung der Strstr- und Stristr-Funktion. Funktion: Finden Sie die Position, an der die Nadel zum ersten Mal im Heuhaufen erscheint.String Stristr (String Heuhaufen, String Needle)
stristr-Funktion Die Funktion ähnelt strstr, unterscheidet jedoch nicht zwischen Groß- und Kleinschreibung.
Der Hauptunterschied in der PHP-Quellcode-Implementierung besteht in der Hinzufügung der Operation zum Konvertieren aller Zeichenfolgen in Kleinbuchstaben. Die Programmimplementierung besteht darin, vor der Suche den folgenden Code hinzuzufügen:php_strtolower(s, s_len);php_strtolower(t, t_len);return php_memnstr(s, t, t_len, s + s_len);
Dies ist dasselbe wie bei ganzzahligen Variablen, da ganze Zahlen addiert, subtrahiert, multipliziert und dividiert werden können, sodass sie auch addiert, subtrahiert, multipliziert und dividiert werden können.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Ein kurzer Vortrag über PHP-Quellcode 2: Über die Funktionen strlen, strtolower, strtoupper, ord, chr
Ein kurzer Vortrag über PHP-Quellcode 1: Funktionen zum Explodieren und Implodieren
Das obige ist der detaillierte Inhalt vonEine kurze Diskussion zum dritten PHP-Quellcode: Über die Funktionen strrchr, strstr und stristr. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!