Foros del Web » Programando para Internet » PHP »

Negrita en palabras de un array

Estas en el tema de Negrita en palabras de un array en el foro de PHP en Foros del Web. Hola, He creado dos arrays, uno con una frase y otro con un listado de palabras que deberá subrayar si alguna de esas palabras de ...
  #1 (permalink)  
Antiguo 12/12/2011, 00:28
 
Fecha de Ingreso: febrero-2011
Mensajes: 37
Antigüedad: 13 años, 2 meses
Puntos: 2
Negrita en palabras de un array

Hola,

He creado dos arrays, uno con una frase y otro con un listado de palabras que deberá subrayar si alguna de esas palabras de la lista se encuentran en la frase... el problema es que reemplaza también la palabra por la palabra en negrita en los enlaces, y las urls quedan mal.

este es mi código:

Código:
$content=get_the_content();
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
$tag=get_option('palabrasc');
$separar3 = explode(" ",strip_tags($tag));
foreach($separar3 as $valor3){
$arraytags[]=strtolower($valor3);
}

$texto2=strtolower($content);
$separar = explode(" ",$texto2);
foreach($separar as $valor2){
$arraytexto[]=strtolower($valor2);
}	

    $resultado=array_intersect($arraytags,$arraytexto);
    foreach($resultado as $valor){
		$texto2=str_replace($valor,'<strong>'.$valor.'</strong>',$texto2);
	}
echo $texto2;
Como puedo hacer que el str_replace no afecte a los href de los enlaces?.

Gracias de antemano.
  #2 (permalink)  
Antiguo 12/12/2011, 00:43
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Negrita en palabras de un array

No entendí muy bien el proceso que realiza tu código, supongo que es texto con html que viene de la base de datos, se me ocurre que ya que lo que está dentro de etiquetas no debería llevar espacios ni delante ni detrás creo que se podría hacer

str_replace(' '.$valor.' ',' <strong>'.$valor.'</strong> ',$texto2);
__________________
la la la
  #3 (permalink)  
Antiguo 12/12/2011, 00:49
 
Fecha de Ingreso: febrero-2011
Mensajes: 37
Antigüedad: 13 años, 2 meses
Puntos: 2
Respuesta: Negrita en palabras de un array

El código tiene funciones de wordpress.

Es simple, lo primero, coge el contenido del post, luego get_option, recoge las palabras que previamente guardé separadas por espacio en un option de wordpress (un campo en una tabla de wp), luego separo por espacio y las convierto en un array. Hago lo mismo con el contenido del post... y por último comparo si alguna de las palabras del get_option coincide con get_the_content, si es así le pongo negrita con str_replace.

Todo esto, funciona perfectamente... lo que quiero impedir es que si coincide que una palabra de la lista, está en el href de un enlace no le añada strong...

Lo intenté así pero no va:

Código:
    $resultado=array_intersect($arraytags,$arraytexto);
    foreach($resultado as $valor){
		$tag_count = preg_match_all( '#(\<a.*\>.*\</a\>|\<img.*\>)#Usi', $valor, $valor);
		if ($tag_count){
		$texto2=str_replace(array_keys($valor),'<strong>'.$valor.'</strong>',$texto2);
		}
	}
  #4 (permalink)  
Antiguo 12/12/2011, 01:04
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Negrita en palabras de un array

SI entiendo , quizás con javascript
__________________
la la la
  #5 (permalink)  
Antiguo 12/12/2011, 09:07
 
Fecha de Ingreso: febrero-2011
Mensajes: 37
Antigüedad: 13 años, 2 meses
Puntos: 2
Respuesta: Negrita en palabras de un array

Nadie puede ayudarme?

Etiquetas: negrita, palabras
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 05:16.