PHP - Crear filtro de busqueda en PHP

   
Vista:

Crear filtro de busqueda en PHP

Publicado por Deftones (1 intervención) el 28/06/2016 02:28:28
Alguien que pueda ayudarme a entender en que estoy fallando con mi código por favor! Necesito realizar un filtro de búsqueda en PHP, tengo lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
$texto = array();
array_push($texto,"<h3>URANO</h3>");
array_push($texto,"<p>En la mitología clásica, Urano es el dios primordial del cielo. En la mitología griega era personificado como hijo y esposo de Gea, la Madre Tierra. Ambos fueron ancestros de la mayoría de los dioses griegos, pero ningún culto dirigido directamente a Urano sobrevivió hasta la época clásica,1 y el dios no aparece entre los temas comunes de la cerámica griega antigua. Sin embargo, la Tierra, el Cielo y Estigia podían unirse en una solemne invocación en la épica homérica.</p>");
array_push($texto,"<h3>GEA</h3>");
array_push($texto,"<p>La Teogonía de Hesíodo cuenta cómo, tras el Caos, surgió Gea «la de amplio pecho», la eterna fundación de los dioses del Olimpo. De su propio ser, «sin mediar el grato comercio», trajo a Urano, el cielo estrellado, su igual, para cubrirla a ella y a las colinas, y también a Ponto, la infructuosa profundidad del mar. Pero tras esto, como cuenta Hesíodo:</p>");
array_push($texto,"<h3>CRONOS</h3>");
array_push($texto,"<p>En la mitología griega, Crono o Cronos era el líder y —en algunos mitos— el más joven de la primera generación de Titanes, descendientes divinos de Gea, la tierra, y Urano, el cielo. Crono derrocó a su padre y gobernó durante la mitológica edad dorada, hasta que fue derrocado por sus propios hijos, Zeus, Hades y Poseidón, y encerrado en el Tártaro o enviado a gobernar el paraíso de los Campos Elíseos.</p>");
array_push($texto,"<h3>REA</h3>");
array_push($texto,"<p>En la mitología griega, la titánide Rea era hija de Urano y Gea, hermana y esposa de Crono, y madre con éste de Deméter, Hades, Hera, Hestia, Poseidón y Zeus. Estaba fuertemente asociada a Cibeles, tanto que en obras de arte solía ser representada en un carro tirado por dos leones, y no siempre era posible distinguirlas. En la mitología romana, fue la Magna Mater deorum Idaea y se la identificaba con Ops. Según Hesíodo fue nodriza de Dioniso. En la Antología Palatina se la menciona como nodriza de fieras y leones.</p>");
//1. Verificar la variable "buscar" con el método POST
	if(isset($_POST["buscar"])){
 
	//2. Vaciar el contenido a la variable $buscar
	$buscar = $_POST["buscar"];
	//3. Verificar si la cadena $buscar no está vacía
	if($buscar!==""){
		//4. Llamar a la función buscaPalabras()
		buscaPalabras($buscar);
	}
 
}
 
//5. La función buscaPalabras tiene como parámetro $busca
function buscaPalabras($busca){
 
	//6. Hacer global el arreglo $texto
	global $texto;
 
	//7. Hacer un ciclo de 0 al número de elementos del arreglo $texto
 
		for($i=0; $i<count($texto); $i++){
 
 
		}
 
		//8. Variable "enunciado"
		$enunciado = strtolower($busca);
 
 
 
		//9. Variable busca
		$buscar = strtolower($busca);
 
		//10. Busca la variable "busca" en el "enunciado"
		if(strstr($enunciado, $busca)){
 
			//11. Si no lo encuentra, marca el elemento del arreglo
			} else {
				if($texto[$i]!="***"){
				print $texto[$i];
			}
		}
	}
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de VRM

Crear filtro de busqueda en PHP

Publicado por VRM (171 intervenciones) el 28/06/2016 08:09:50
Hola:

1
2
3
4
5
6
7
8
9
10
//8. Variable "enunciado"
$enunciado = strtolower($busca);
 
 
 
//9. Variable busca
$buscar = strtolower($busca);
 
//10. Busca la variable "busca" en el "enunciado"
if(strstr($enunciado, $busca)){

En las lineas 2 y 7 haces que $enunciado sea igual que $busca pero en minúsculas y luego buscas $busca (la aguja) en $enunciado (el pajar), así que si la aguja contiene alguna mayúscula la función de la linea 10 strstr te devolverá false.

Por otro lado, en esa misma linea 10, deberías poner:
1
if ( strstr($enunciado, $busca) !== false ){
Para evitar problemas de interpretación de la respuesta de strstr.

Saludos de Víctor.-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar