Maison >développement back-end >Problème PHP >Quelle est la fonction pour comparer des chaînes en php
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><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></p>Sortie : <p><br></p>
<p><br></p>strcmp() est sensible à la casse lors de la comparaison de chaînes. <p><pre class="brush:php;toolbar:false"><?php
$str1="PHP中文网";
$str2="php中文网";
echo strcmp($str1,$str2)."<br>";
?></pre></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"><pre class="brush:php;toolbar:false">-1</pre></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><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><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><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></p>Résultat de sortie : <table class="reference notranslate"><pre class="brush:php;toolbar:false">两个网址相同</pre><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><pre class="brush:php;toolbar:false">strncasecmp(string1,string2,length)</pre></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></p></li>
<li><p>>0 - 如果 string1 大于 string2</p></li>
</ul>
<p><strong>示例:</strong></p><pre class="brush:php;toolbar:false"><?php
echo strncasecmp("Hello world!","hello earth!",6);
?></pre><p>输出:<br></p><pre class="brush:php;toolbar:false">0</pre><p><strong>4、strnatcasecmp()函数--大小写不敏感</strong></p>
<p>strnatcasecmp() 函数使用一种"自然"算法来比较两个字符串(不区分大小写)。</p>
<p>在自然算法中,数字 2 小于数字 10。在计算机排序中,10 小于 2,这是因为 10 中的第一个数字小于 2。</p>
<p>语法:</p><pre class="brush:php;toolbar:false">strnatcasecmp(string1,string2)</pre><p>返回值:<br></p>
<ul style="list-style-type: disc;">
<li><p>0 - 如果两个字符串相等</p></li>
<li><p></p></li>
<li><p>>0 - 如果 string1 大于 string2</p></li>
</ul>
<p><strong>示例:</strong></p><pre class="brush:php;toolbar:false"><?php
echo strnatcasecmp("2Hello world!","10Hello WORLD!");
echo "<br>";
echo strnatcasecmp("10Hello world!","2Hello WORLD!");
?></pre><p>输出:<br></p><pre class="brush:php;toolbar:false">-1
1</pre><p><strong>5、strncmp()函数--大小写敏感</strong></p>
<p>strncmp() 函数比较两个字符串(区分大小写)。</p>
<p>该函数与 strcmp() 函数类似,不同的是,strcmp() 没有 length 参数(不能指定每个字符串用于比较的字符数)。</p><pre class="brush:php;toolbar:false">strncmp(string1,string2,length)</pre><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><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><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!