Fonctions PHP pour comparer des chaînes : 1. strcasecmp(), comparaison insensible à la casse de deux chaînes ; 2. strcmp(), comparaison sensible à la casse de deux chaînes ; 3. strcoll(), basée sur un ensemble local pour comparer deux chaînes ; ; 4. strnatcmp(), qui n'est pas sensible à la casse et utilise un algorithme de « tri naturel » pour comparer deux chaînes ; 5. strnatcmp(), qui n'est pas sensible à la casse et utilise un algorithme de « tri naturel » pour comparer deux. cordes.
L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 8.1, ordinateur DELL G3
php possède une variété de fonctions de comparaison de chaînes intégrées
Fonction | Description |
---|---|
strcasecmp( ) | Compare deux chaînes (insensible à la casse). |
strcmp() | Compare deux chaînes (sensible à la casse). |
strcoll() | Compare deux chaînes (selon les paramètres locaux). |
strnatcasecmp() | Utilise un algorithme de "classement naturel" pour comparer deux chaînes (insensible à la casse). |
strnatcmp() | Utilise un algorithme de "classement naturel" pour comparer deux chaînes (sensible à la casse). |
strncasecmp() | Comparaison de chaînes des n premiers caractères (insensible à la casse). |
strncmp() | Comparaison de chaînes des n premiers caractères (sensible à la casse). |
substr_compare() | Compare deux chaînes commençant à une position de départ spécifiée (coffre-fort binaire et éventuellement sensible à la casse). |
Fonctions de comparaison de chaînes couramment utilisées
1. Fonction strcmp() - compare deux chaînes en respectant la casse
strcmp(string1,string2) code>Quand comparer deux chaînes, si : <code>strcmp(string1,string2)
比较两个字符串时,如果:
如果两个字符串相等,则会返回0
;
如果string1 小于 string2,则会返回 的值;
如果string1 大于 string2,则会返回> 0
0
sera renvoyé Si string1 est inférieur à string2, la valeur de sera renvoyée ;
> > sera renvoyé > valeur ; <p><img src="https://img.php.cn/upload/image/890/419/489/162797046690039Quelle%20est%20la%20fonction%20pour%20comparer%20des%20cha%C3%AEnes%20en%20php" title="162797046690039Quelle est la fonction pour comparer des chaînes en php" alt="Quelle est la fonction pour comparer des chaînes en php"></p> Regardons d'abord l'exemple suivant : <p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><?php
$str1="12";
$str2="12";
echo strcmp($str1,$str2)."<br>";
$str1="12";
$str2="13";
echo strcmp($str1,$str2)."<br>";
$str1="15";
$str2="13";
echo strcmp($str1,$str2)."<br>";
?></pre><div class="contentsignin">Copier après la connexion</div></div></p>Sortie : <p><br/></p><p><br/></p>strcmp() est sensible à la casse lors de la comparaison de chaînes. <p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><?php
$str1="PHP中文网";
$str2="php中文网";
echo strcmp($str1,$str2)."<br>";
?></pre><div class="contentsignin">Copier après la connexion</div></div></p>Résultat de sortie : <p><img src="https://img.php.cn/upload/image/580/361/959/1661945418832627.png" title="1661945418832627.png" alt="Quelle est la fonction pour comparer des chaînes en php"/><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">-1</pre><div class="contentsignin">Copier après la connexion</div></div></p>Avec cette fonctionnalité, nous pouvons l'utiliser dans la fonction de confirmation du mot de passe utilisateur lors de l'enregistrement d'un compte sur le site Web (les mots de passe sont généralement sensibles à la casse), et comparer si les mots de passe saisis deux fois sont cohérents. <p></p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><?php
header("Content-type:text/html;charset=utf-8");
$pwd1 = &#39;php124@qq&#39;;
$pwd2 = &#39;php124@QQ&#39;;
if(strcmp($pwd1, $pwd2) != 0){
echo &#39;密码不匹配!&#39;;
} else {
echo &#39;密码匹配!&#39;;
}
?></pre><div class="contentsignin">Copier après la connexion</div></div><p>Seulement si deux chaînes correspondent complètement, la fonction strcmp() les considérera comme égales ; dans l'exemple ci-dessus, $pwd1 et $pwd2 ont une casse différente, donc les deux chaînes ne sont pas égales. <strong></strong></p><p></p>Mais parfois, nous avons seulement besoin de comparer les valeursdes chaînes et nous ne voulons pas être sensibles à la casse, comme par exemple en comparant les URL de sites Web, alors comment y faire face ? Simple, vous pouvez utiliser la fonction strcasecmp(). <p></p><p>2. Fonction strcasecmp() - compare deux chaînes sans tenir compte de la casse </p><p><strong> La fonction strcasecmp() est similaire à la fonction strcmp(). Les deux peuvent comparer des chaînes et les valeurs de retour sont également les mêmes. . La seule différence est que la fonction strcasecmp() n'est pas sensible à la casse. </strong></p>Jetons un coup d'œil à l'exemple suivant : <p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><?php
header("Content-type:text/html;charset=utf-8");
$url1="https://www.php.cn/";
$url2="HTTPS://WWW.PHP.CN/";
if(strcasecmp($url1, $url2) == 0){
echo &#39;两个网址相同&#39;;
} else {
echo &#39;两个网址不同&#39;;
}
?></pre><div class="contentsignin">Copier après la connexion</div></div></p>Résultat de sortie : <table class="reference notranslate"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">两个网址相同</pre><div class="contentsignin">Copier après la connexion</div></div><tbody><tr class="firstRow">3. Fonction strncasecmp() - insensible à la casse<th width="20%"></th><th width="80%">La fonction strncasecmp() compare deux chaînes (non sensible à la casse) . La syntaxe est la suivante</th><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">strncasecmp(string1,string2,length)</pre><div class="contentsignin">Copier après la connexion</div></div></tr><tr><td><em>Parameters</em></td>Description<td></td></tr><tr><td>string1<em></em></td>Obligatoire. Spécifie la première chaîne à comparer. <td></td></tr><tr><td>string2<em></em></td>Obligatoire. Spécifie la deuxième chaîne à comparer. <td></td></tr></tbody></table>longueur🎜🎜🎜Obligatoire. Spécifie le nombre de caractères par chaîne utilisés pour la comparaison. 🎜🎜🎜🎜<p>返回值:</p><ul style="list-style-type: disc;"><li><p>0 - 如果两个字符串相等</p></li><li><p><0 - 如果 string1 小于 string2</p></li><li><p>>0 - 如果 string1 大于 string2</p></li></ul><p><strong>示例:</strong></p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><?php
echo strncasecmp("Hello world!","hello earth!",6);
?></pre><div class="contentsignin">Copier après la connexion</div></div><p>输出:<br/></p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">0</pre><div class="contentsignin">Copier après la connexion</div></div><p><strong>4、strnatcasecmp()函数--大小写不敏感</strong></p><p>strnatcasecmp() 函数使用一种"自然"算法来比较两个字符串(不区分大小写)。</p><p>在自然算法中,数字 2 小于数字 10。在计算机排序中,10 小于 2,这是因为 10 中的第一个数字小于 2。</p><p>语法:</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">strnatcasecmp(string1,string2)</pre><div class="contentsignin">Copier après la connexion</div></div><p>返回值:<br/></p><ul style="list-style-type: disc;"><li><p>0 - 如果两个字符串相等</p></li><li><p><0 - 如果 string1 小于 string2</p></li><li><p>>0 - 如果 string1 大于 string2</p></li></ul><p><strong>示例:</strong></p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><?php
echo strnatcasecmp("2Hello world!","10Hello WORLD!");
echo "<br>";
echo strnatcasecmp("10Hello world!","2Hello WORLD!");
?></pre><div class="contentsignin">Copier après la connexion</div></div><p>输出:<br/></p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">-1
1</pre><div class="contentsignin">Copier après la connexion</div></div><p><strong>5、strncmp()函数--大小写敏感</strong></p><p>strncmp() 函数比较两个字符串(区分大小写)。</p><p>该函数与 strcmp() 函数类似,不同的是,strcmp() 没有 length 参数(不能指定每个字符串用于比较的字符数)。</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">strncmp(string1,string2,length)</pre><div class="contentsignin">Copier après la connexion</div></div><table class="reference notranslate"><tbody><tr class="firstRow"><th width="20%">参数</th><th width="80%">描述</th></tr><tr><td><em>string1</em></td><td>必需。规定要比较的第一个字符串。</td></tr><tr><td><em>string2</em></td><td>必需。规定要比较的第二个字符串。</td></tr><tr><td><em>length</em></td><td>必需。规定每个字符串用于比较的字符数。</td></tr></tbody></table><p>返回值和strcmp() 函数一样</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><?php
header("Content-type:text/html;charset=utf-8");
$pwd1 = &#39;password&#39;;
$pwd2 = &#39;Password&#39;;
if(strncmp($pwd1, $pwd2,8) != 0){
echo &#39;密码不匹配!&#39;;
} else {
echo &#39;密码匹配!&#39;;
}
?></pre><div class="contentsignin">Copier après la connexion</div></div></p>
<p><img src="https://img.php.cn/upload/image/423/765/326/166073605488919Quelle%20est%20la%20fonction%20pour%20comparer%20des%20cha%C3%AEnes%20en%20php" title="166073605488919Quelle est la fonction pour comparer des chaînes en php" alt="Quelle est la fonction pour comparer des chaînes en php"></p>
<p>推荐学习:《<a href="https://www.php.cn/course/list/29/type/2.html" target="_blank">PHP视频教程</a>》</p>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!