StrRist () est une fonction de chaîne intégrée dans PHP. Il est utilisé pour trouver l'emplacement où une chaîne apparaît d'abord dans une autre chaîne et renvoie cet emplacement et ses parties suivantes. strrist () est insensible à la cas, c'est-à-dire qu'il ignore la différence de cas de lettres.
<span><span><span class="hljs-title function_ invoke__">stristr</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-keyword">mixed</span></span><span> </span><span><span class="hljs-variable">$needle</span></span><span>, </span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-variable">$before_needle</span></span><span> = </span><span><span class="hljs-literal">false</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>|</span><span><span class="hljs-literal">false</span></span><span>
</span></span>
$ Haystack : La chaîne à rechercher.
$ aiguille : la sous-chaîne à trouver.
$ before_needle : Si défini sur true , la pièce avant l'aiguille est retournée et la pièce après l'aiguille est renvoyée par défaut.
<span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"Hello World!"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stristr</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-string">"world"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>; </span><span><span class="hljs-comment">// Sortir "World!"</span></span><span>
</span></span>
Dans cet exemple, strrist () ignore le cas, il peut donc égaler "monde" et retourner "monde!".
preg_match () est une fonction de PHP pour la correspondance d'expression régulière. Il peut faire correspondre les chaînes en fonction de l'expression régulière fournie. Contrairement à strrist () , preg_match () permet des opérations de correspondance plus complexes en utilisant de puissantes règles d'expression régulière. Cette fonction prend en charge non seulement l'appariement insensible à la casse, mais prend également en charge une variété d'autres modèles de correspondance, tels que les classes de caractères, les quantificateurs, les conditions aux limites, etc.
<span><span><span class="hljs-title function_ invoke__">preg_match</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$subject</span></span><span>, </span><span><span class="hljs-keyword">array</span></span><span> &</span><span><span class="hljs-variable">$matches</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$flags</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$offset</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>): </span><span><span class="hljs-keyword">int</span></span><span>|</span><span><span class="hljs-literal">false</span></span><span>
</span></span>
$ motif : modèle d'expression régulière.
$ Sujet : La chaîne à correspondre.
$ Matches : Si le match réussit, renvoyez le résultat correspondant.
$ Flags : bit de drapeau, contrôle le comportement de correspondance.
$ Offset : la position de départ du match.
<span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"Hello World!"</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">preg_match</span></span><span>(</span><span><span class="hljs-string">"/world/i"</span></span><span>, </span><span><span class="hljs-variable">$string</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Correspondre avec succès"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Le match a échoué"</span></span><span>;
}
</span></span>
Dans cet exemple, preg_match () utilise l'expression régulière / world / i pour correspondre à la chaîne "Hello World!". L'indicateur I indique que la base supérieure et minuscule en majuscules et en majuscules minuscules et en majuscules en majuscules en minuscules, donc il peut correspondre avec succès même si le cas du "monde" est différent.
Complexité fonctionnelle :
strrist () est une fonction de recherche de chaîne simple adaptée aux tâches de recherche simples. Il ne faut que deux paramètres: la chaîne à trouver et la chaîne cible. Les règles de correspondance sont très simples, se concentrant principalement sur la recherche de sous-chaînes et l'insensible aux cas de support.
preg_match () est une fonction plus puissante qui peut utiliser des expressions régulières pour effectuer une correspondance complexe et peut gérer des tâches de correspondance de chaînes plus diverses. Vous pouvez spécifier des modèles complexes, des classes de caractères, des quantificateurs, etc., qui sont plus flexibles.
Différences de performance :
Parce que strRist () a une fonction simple, elle est généralement meilleure que preg_match () en performance. Surtout lorsque seules des recherches de sous-chaîne simples sont nécessaires, strrist () est plus efficace en performance.
preg_match () nécessite l'analyse des expressions régulières pour une correspondance de motifs plus complexe, il est donc relativement lent en performances, en particulier lorsqu'il s'agit de chaînes très grandes ou d'expressions régulières complexes.
La différence de valeur de retour :
strRist () renvoie la partie de la chaîne cible de la position correspondante à la fin de la chaîne lorsqu'il trouve une correspondance. Si aucune correspondance n'est trouvée, false est renvoyé.
Si preg_match () correspond avec succès, il renverra 1, et s'il échoue, il renverra 0, et plus d'informations correspondantes peuvent être renvoyées (telles que les sous-chaînes correspondantes, les paquets capturés, etc.) via le paramètre $ correspond .
Support d'expression régulière :
StrRist () ne prend pas en charge les expressions régulières et la fonction de correspondance est relativement limitée, il ne peut donc effectuer qu'une correspondance de personnages simples.
preg_match () prend en charge des expressions complètes régulières et peut effectuer des opérations complexes telles que la correspondance de motifs, le regroupement et le backreference.
strrist () scénario d'utilisation :
Convient pour des opérations de recherche de sous-chaîne simples, surtout si vous n'avez besoin que de trouver une sous-chaîne fixe. En raison de ses bonnes performances, il convient aux scénarios avec des exigences de performance élevées.
Scénario d'utilisation prég_match () :
Convient pour une correspondance de motifs complexe, en particulier lorsque vous devez utiliser des expressions régulières pour effectuer des analyses complexes, valider ou remplacer les opérations sur des chaînes. preg_match () peut fournir plus de contrôle et de flexibilité correspondant.