elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Operador LIKE para PHP [Solucionado]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Operador LIKE para PHP [Solucionado]  (Leído 6,350 veces)
peib0l
Wiki

Desconectado Desconectado

Mensajes: 3.493


freedom


Ver Perfil WWW
Operador LIKE para PHP [Solucionado]
« en: 22 Noviembre 2014, 17:42 pm »

Buenas tardes foreros,

Tengo un ligero contratiempo, estoy realizando una web donde tengo un buscador y necesito encontrar algo similar al operador LIKE de MySQL pero para realizar búsquedas en cadenas de texto las cuales están en un array de PHP, no puedo almacenarlo en una bases de datos pues los datos son externos a mi sistema y pueden variar en cualquier momento, ademas que esto supondría una carga inmensa.

Gracias

Solucion:

Código
  1. if(strpos($texto, $busqueda) !== false) {
  2.  echo 'ocurrencia detectada';
  3. }


« Última modificación: 23 Noviembre 2014, 09:39 am por peib0l » En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Operador LIKE para PHP
« Respuesta #1 en: 22 Noviembre 2014, 17:47 pm »

Lo más parecido que conozco son expresiones regulares sobre cada registro, pero obviamente hablando de rapidez es mejor usar un motor de bases de datos optimo para la cantidad de registros e interacción


« Última modificación: 22 Noviembre 2014, 17:49 pm por Shell Root » En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Re: Operador LIKE para PHP
« Respuesta #2 en: 22 Noviembre 2014, 17:52 pm »

Expresiones regulares:


Código
  1. <?php
  2. # Similar al Like. Besitos, Dimitrix ^^
  3.  
  4. $texto = "Este libro es *muy* difícil de encontrar.";
  5. $palabra = "*muy*";
  6. $texto = preg_replace ("/" . preg_quote($palabra) . "/",
  7.                          "<i>" . $palabra . "</i>",
  8.                          $texto);
  9. ?>
  10.  
En línea




MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Operador LIKE para PHP
« Respuesta #3 en: 22 Noviembre 2014, 19:58 pm »

Podrias usar strpos:

Código
  1. if(strpos($texto, $busqueda) !== false) {
  2.  echo 'ocurrencia detectada';
  3. }
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Operador LIKE para PHP
« Respuesta #4 en: 22 Noviembre 2014, 23:15 pm »

MinusFour como vas a comprar el poder de un LIKE o un ExpReg con un simple strpos...  ;-)
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Re: Operador LIKE para PHP
« Respuesta #5 en: 23 Noviembre 2014, 01:09 am »

MinusFour como vas a comprar el poder de un LIKE o un ExpReg con un simple strpos...  ;-)

Ojo, yo prefiero muchas veces el strpos ya que te devuelve la posición y de ahí puedes hacer muchas cosas.
En línea




MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Operador LIKE para PHP
« Respuesta #6 en: 23 Noviembre 2014, 01:20 am »

MinusFour como vas a comprar el poder de un LIKE o un ExpReg con un simple strpos...  ;-)

Depende de lo que quieras que haga el LIKE. Si tienes un LIKE:

Código
  1. SELECT * FROM tabla WHERE campo LIKE 'test';

No necesitas usar expresiones regulares y es justo lo que dice el manual de php.net.

Citar
Sugerencia
No use preg_match() si solo quiere verificar si una cadena está contenida en otra cadena. Use strpos() o strstr() en su lugar ya que éstas serán más rápidas.

http://php.net/manual/es/function.preg-match.php
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Operador LIKE para PHP
« Respuesta #7 en: 23 Noviembre 2014, 02:34 am »

Pues si quieres esa consulta no usaría LIKE,
Código
  1. SELECT * FROM tabla WHERE campo = 'test';

Ojo, yo prefiero muchas veces el strpos ya que te devuelve la posición y de ahí puedes hacer muchas cosas.
Pues porque necesitas la posición, pero cuando necesitas sólo sacar registros con x caracteristicas que?
« Última modificación: 23 Noviembre 2014, 02:36 am por Shell Root » En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Re: Operador LIKE para PHP
« Respuesta #8 en: 23 Noviembre 2014, 02:52 am »

Citar
Pues porque necesitas la posición, pero cuando necesitas sólo sacar registros con x caracteristicas que?

Por eso he dicho "en ocasiones", en ocasiones lo puedo necesitar para virsas cosas, como por ejemplo:

- Si es la última palabra, añadir "..."
- Cortar todo el texto "hasta la palabra" y poner antes "..."
- etc.

Son ejemplos, aunq  el segundo creo que se podría hacer también con expr. regulares.
En línea




Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Operador LIKE para PHP
« Respuesta #9 en: 23 Noviembre 2014, 02:59 am »

Pues en este caso no se ha preguntado por la posición, sino algo que se asemeje al operador LIKE de mysql
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines