Foros del Web » Programando para Internet » PHP »

Encontrar coincidencia a partir del primer caracter de una cadena

Estas en el tema de Encontrar coincidencia a partir del primer caracter de una cadena en el foro de PHP en Foros del Web. Hola a todos foreros... TENGO un inconveniente para encontrar coincidencias de una cadena dentro de otra lo intente con dos funciones: strpos y substr_count de ...
  #1 (permalink)  
Antiguo 29/11/2011, 09:51
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años, 6 meses
Puntos: 27
Encontrar coincidencia a partir del primer caracter de una cadena

Hola a todos foreros...

TENGO un inconveniente para encontrar coincidencias de una cadena dentro de otra
lo intente con dos funciones:
strpos y substr_count
de la siguiente forma:

Código PHP:
Ver original
  1. <?php
  2. $sql2="SELECT REPLACE(CAMPO, '~', '''') as campo, ALIASCAMPO, APLICALIAS, TIPODATO FROM REPORCAMP WHERE CODREPOR='".$reporte."'";
  3.  $obj2->consulta($sql2);
  4. while ($row2 = sqlsrv_fetch_array($obj2->result))
  5.  {
  6.       $sql3="SELECT FUNCION FROM REPORFUNCION";
  7.       $obj3->consulta($sql3);
  8.       $funcion="";
  9.        while ($row5 = sqlsrv_fetch_array($obj3->result))
  10.         {
  11.           // $var1=strpos($row2[0],$row5[0],0);
  12.             $var1=substr_count($row2[0],$row5[0]);
  13.            if($var1>0)
  14.            $funcion=$x;
  15.             else
  16.            $funcion="";
  17.  
  18.  
  19.          }
  20.  
  21.      //aca tomo el valor de $funcion
  22.        
  23.  
  24. }
  25. ?>
el problema que tengo es que lo que consulta la en REPORFUNCION es:

DATETIFF, ISNULL
Y por ejemplo al tratar de encontrar DATETIFF en la cadena:
DATEDIFF(YEAR,C.GPAFECNAC,GETDATE()), siempre me lo ubica en la posicion 0, y eso no me funciona porque me afecta otros campos...(con substr_count)

Con strpos no toma ningun valor...

COmo entonces podria encontrar la posicion pero que empiece en 1 ?

Agradezco me puedan dar alguna indicación
  #2 (permalink)  
Antiguo 29/11/2011, 09:56
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años, 6 meses
Puntos: 27
Respuesta: Encontrar coincidencia a partir del primer caracter de una cadena

Por ejemplo con lo siguiente:

Código PHP:
Ver original
  1. <?php
  2. $texto = 'Lorem ipsum at dolor...';
  3. $cadena = 'ipsum';
  4. if (strpos($texto, $cadena)) echo $cadena;  
  5.  
  6. $texto = 'Lorem ipsum at dolor...';
  7. $cadena = 'Lorem';
  8. if (strpos($texto, $cadena)) echo $cadena;
  9.  
  10.  
  11. ?>

Funcionara para el primer caso, ya para el segundo no.....
  #3 (permalink)  
Antiguo 29/11/2011, 20:44
 
Fecha de Ingreso: enero-2010
Mensajes: 127
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Encontrar coincidencia a partir del primer caracter de una cadena

Aqui esta amigo:

Código PHP:
Ver original
  1. <?php
  2. $cadena1 = 'Lorem ipsum at dolor...';
  3.  
  4. $cadena2 = 'ipsum';
  5.  
  6. $cadena3 = sizeof(explode(" ", $cadena1));
  7.  
  8. $cadena4 = sizeof(explode(" ", $cadena2));
  9.  
  10. $cadena5 = explode (" ", $cadena1);
  11.  
  12. $cadena6 = explode (" ", $cadena2);
  13.  
  14. $cont = 0;
  15.  
  16. for ($i = 0; $i < $cadena4; $i++) {
  17.     for ($j = 0; $j < $cadena3; $j++) {
  18.         $cont = $cont + 1;
  19.        
  20.         if ($cadena6[$i] == $cadena5[$j]) {
  21.             $arreglo[$cont] = $cadena6[$i];
  22.         } else {
  23.             $arreglo[$cont] = "";
  24.         }
  25.     }
  26. }
  27.  
  28. print_r ($arreglo);
  29. ?>
  #4 (permalink)  
Antiguo 01/12/2011, 10:15
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años, 6 meses
Puntos: 27
Respuesta: Encontrar coincidencia a partir del primer caracter de una cadena

Gracias,
realmente tendria inconvenientes con ese codigo porque las cadenas son dinamicas, varian
entonces lo hice asi:

Código PHP:
Ver original
  1. <?php
  2.  $valor="";
  3. while ($row5 = sqlsrv_fetch_array($obj3->result))
  4.  {
  5.       if (preg_match("/".$row5[0]."/i", $row2[0]))
  6.       $valor=1;
  7.   }
  8. if($valor!="")
  9. echo "pasa";
  10.  
  11. ?>

De esa forma la expresion regular es lo que hay almacenado en la tabla y me compara con lo que lleve la consulta

De todos modos gracias por tu ayuda......

Etiquetas: encontrar, primer, sql, caracteres, cadenas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:34.