
problema con funcion strpos()
Publicado por Eduardo (17 intervenciones) el 12/05/2020 17:20:02
Saludos, yo nuevamente,
Tengo el siguiente segmento de código:
Esta es mi funcion IsIn():
Y aquí la captura del resultado:

Como se ve las cadenas que se comparan son practicamente las mismas, pero la función me devuelve un resultado distinto en cada ocasión. Aqui otra captura de la comparación entre cadenas del campo "producto" que está más abajo en la lista:

Como se ve, IsIn() se comporta bien con el campo "producto", pero no con el campo "cliente" - ¿ COMO PUEDE SER SI ES LA MISMA FUNCION ? - Sin embargo si paso las cadenas directamente si devuelve true. ¡ De locos !
Recién estoy empezando con PHP así que estoy en nivel esquizoide, así que agradeceré cualquier orientación al respecto.
Cordiales saludos,
Tengo el siguiente segmento de código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$bus_string = trim( strtoupper( $_GET["buscad"] ) ) ;
$bus_tipo = $_GET["bustip"] ;
$list_item = -1 ;
echo 'Test A/ABCDEFG:'.IsIn( 'A' , 'ABCDEFG' )."</br>" ; //<- AQUI ME DEVUELVE true
foreach ( $list_prec as list($pro_cod,$pro_nom,$pro_dci,$pro_mar,$pro_gpo,$pro_vvf,$pro_igv,$pro_pvf,$pro_stk,$prc_num,$prc_pak,$prc_dia,$prc_gpo,$prc_tba,$prc_tbb,$prc_tbc,$prc_tbd,$prc_tbe,$prc_tbf,$uni_ped,$es_nuevo) ) {
$list_item++ ;
$match_ok = IsIn( $bus_string , $pro_nom ) ;
$grupo_ok = IsIn( $clie_gpo , $prc_gpo ) ;
echo "producto:".$bus_string." / ".$pro_nom."cliente:".$clie_gpo."/".$prc_gpo."->".$match_ok." ".$grupo_ok."</br>" ; // ESTE ECHO ES PARA REVISAR LOS CONTENIDOS DE LAS VARIABLES
if( $grupo_ok = 'true' && $match_ok = 'true' ){
$bus_lineas[] = $list_item ;
}
}
Esta es mi funcion IsIn():
1
2
3
4
5
6
7
8
9
10
function IsIn( $corto , $largo ) {
$pos = strpos( $largo , $corto );
if($pos === false) {
$rpt = 'false' ;
}else{
$rpt = 'true' ;
}
return $rpt;
}
Y aquí la captura del resultado:

Como se ve las cadenas que se comparan son practicamente las mismas, pero la función me devuelve un resultado distinto en cada ocasión. Aqui otra captura de la comparación entre cadenas del campo "producto" que está más abajo en la lista:

Como se ve, IsIn() se comporta bien con el campo "producto", pero no con el campo "cliente" - ¿ COMO PUEDE SER SI ES LA MISMA FUNCION ? - Sin embargo si paso las cadenas directamente si devuelve true. ¡ De locos !
Recién estoy empezando con PHP así que estoy en nivel esquizoide, así que agradeceré cualquier orientación al respecto.
Cordiales saludos,
Valora esta pregunta


0