variable validar strings minusculas mayúsculas mayusculas importar con comparar caracter cadenas cadena buscar acentos php

validar - strncmp php



Ignorar la distinción entre mayúsculas y minúsculas al comparar cadenas en PHP (6)

Estoy tratando de comparar palabras para la igualdad, y el caso [superior e inferior] es irrelevante. Sin embargo, PHP no parece estar de acuerdo. ¿Alguna idea sobre cómo forzar a PHP a ignorar el caso de las palabras al compararlas?

$arr_query_words = array( "hat","Cat","sAt","maT" ); // for each element in $arr_query_words - for( $j= 0; $j < count( $arr_query_words ); $j++ ){ // Split the $query_string on "_" or "%" : $story_body = str_replace( $arr_query_words[ $j ], ''<span style=" background-color:yellow; ">'' . $arr_query_words[ $j ] . ''</span>'', $story_body ); // --- This ONLY replaces where the case [upper or lower] is identical -> }

¿Hay alguna manera de llevar a cabo el reemplazo incluso si el caso es diferente?


La manera más fácil y más ampliamente aceptada para lograr esto es posiblemente minúsculas de ambas cadenas antes de compararlas, de esta forma:

if(strtolower($var1) == strtolower($var2)) { // Equals, case ignored }

Es posible que desee recortar las cadenas que se comparan, simplemente use algo como esto para lograr esta funcionalidad:

if(strtolower(trim($var1)) == strtolower(trim($var2))) { // Equals, case ignored and values trimmed }

¡Espero que esto ayude!


Siempre agrego la diferencia ascii entre mayúsculas y minúsculas a los caracteres minúsculos.


Use str_ireplace para realizar una sustitución de cadena insensible a mayúsculas y minúsculas ( str_ireplace está disponible en PHP 5):

$story_body = str_ireplace($arr_query_words[$j], ''<span style=" background-color:yellow; ">''. $arr_query_words[$j]. ''</span>'', $story_body);

Para comparar cadenas de manera insensible, use strcasecmp :

<?php $var1 = "Hello"; $var2 = "hello"; if (strcasecmp($var1, $var2) == 0) { echo ''$var1 is equal to $var2 in a case-insensitive string comparison''; } ?>



$var1 = "THIS is A teST"; $var2 = "this is a tesT"; if (strtolower($var1) === strtolower($var2) ) { echo "var1 and var2 are same"; }

strtolower convierte cadena a minúscula


if(!strcasecmp($str1, $str2)) ... //they are equals ignoring case

strcasecmp devuelve 0 solo si las cadenas son iguales a ignorar mayúsculas y minúsculas, entonces! strcasecmp devuelve true si son iguales a ignorar mayúsculas y minúsculas, de lo contrario

http://php.net/manual/en/function.strcasecmp.php