{"id":175,"date":"2015-10-29T18:05:08","date_gmt":"2015-10-29T23:05:08","guid":{"rendered":"https:\/\/wjharil.com\/blog\/?p=175"},"modified":"2015-10-29T18:24:07","modified_gmt":"2015-10-29T23:24:07","slug":"resaltar-palabra-de-cadena-con-php","status":"publish","type":"post","link":"https:\/\/wjharil.com\/blog\/resaltar-palabra-de-cadena-con-php\/","title":{"rendered":"Resaltar palabra de una cadena con PHP"},"content":{"rendered":"<p>Era un d\u00eda soleado con una <del>Coca Cola<\/del> en el escritorio. Me ve\u00eda envuelto en un proyecto interesante de un<em> buscador de m\u00fasica<\/em> y para el susodicho, necesitaba una funci\u00f3n que me permita <strong>resaltar las busquedas<\/strong> (palabras) que entraban y luego obtener un resultado algo como \u00e9ste ejemplo:<\/p>\n<p>Vamos a ponernos en el caso que buscamos la canci\u00f3n \u00ab<em>Adi\u00f3s<\/em>\u00bb y obtenemos una lista de artistas que tienen una canci\u00f3n con el mismo nombre. Para \u00e9sto, necesitaba <strong>resaltar la palabra que se hab\u00eda buscado<\/strong>; es decir: si la canci\u00f3n se llama \u00abTu Adi\u00f3s\u00bb deber\u00eda de mostrar en <strong><em>negritas<\/em> <\/strong>(\u00e9sto es opcional) s\u00f3lo la palabra \u00ab<em>Adi\u00f3s<\/em>\u00ab.<\/p>\n<p><a class=\"lightbox\" href=\"https:\/\/wjharil.com\/blog\/wp-content\/uploads\/2015\/10\/buscar-palabra-php.gif\"><img decoding=\"async\" loading=\"lazy\" class=\" size-full wp-image-182 aligncenter\" src=\"https:\/\/wjharil.com\/blog\/wp-content\/uploads\/2015\/10\/buscar-palabra-php.gif\" alt=\"buscar palabra php\" width=\"568\" height=\"254\" \/><\/a><\/p>\n<p>Bien, buscando en nuestro <del>querid\u00edsimo<\/del> Google, encontr\u00e9 una soluci\u00f3n que era b\u00e1sicamente <strong>reemplazar y mostrar el dato<\/strong> que necesitaba. Les comparto un c\u00f3digo, que est\u00e1 entre los helpers de <strong>CodeIgniter<\/strong>, que hace exactamente lo que buscas (asumo que por ello llegaste a este post, \u00bfverdad?).<\/p>\n<h2>Resaltar palabras de una cadena<\/h2>\n<pre class=\"lang:php decode:true \">function resaltar_frase($string, $frase, $taga = '&lt;b&gt;', $tagb = '&lt;\/b&gt;')\r\n{\r\n\treturn ($string !== '' &amp;&amp; $frase !== '')\r\n\t\t? preg_replace('\/('.preg_quote($frase, '\/').')\/i'.('true' ? 'u' : ''), $taga.'\\\\1'.$tagb, $string)\r\n\t\t: $string;\r\n}\r\n\r\n$frase = 'hola, esta es una prueba de hola. vamos a ver si funciona o no';\r\necho resaltar_frase($frase,'hola');\r\n\r\n\/\/Esto devolver\u00e1: &lt;b&gt;hola&lt;\/b&gt;, esta es una prueba de &lt;b&gt;hola&lt;\/b&gt;. vamos a ver si funciona o no<\/pre>\n<p>Para explicar r\u00e1pidamente la funci\u00f3n (me he comido muchas l\u00edneas de recuerdos), lo que hace es <strong>reemplazar a trav\u00e9s de expresiones regulares<\/strong> el contenido que necesitamos. Por ejemplo, estamos enviando 2 par\u00e1metros principales: La frase completa y posteriormente, la palabra a \u00abresaltar\u00bb. Los siguientes 2 par\u00e1metros, son para dar etiquetas opcionales como &#8216;&lt;mark&gt;&#8217; o &#8216;&lt;h3&gt;&#8217;, etc.<\/p>\n<p>Esta <strong>funci\u00f3n<\/strong>, est\u00e1 sencilla y por ello quer\u00eda compartirlo con ustedes por si se encontraban busc\u00e1ndola.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Era un d\u00eda soleado con una Coca Cola en el escritorio. Me ve\u00eda envuelto en<br \/><a class=\"moretag\" href=\"https:\/\/wjharil.com\/blog\/resaltar-palabra-de-cadena-con-php\/\">Continuar Leyendo...<\/a>","protected":false},"author":1,"featured_media":184,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[35],"tags":["funciones","helpers","php"],"featured_image_src":"https:\/\/wjharil.com\/blog\/wp-content\/uploads\/2015\/10\/resaltar-palabras-php1.jpg","categorias":["Facebook","Fuera de tema","Recursos","Tutoriales"],"_links":{"self":[{"href":"https:\/\/wjharil.com\/blog\/wp-json\/wp\/v2\/posts\/175"}],"collection":[{"href":"https:\/\/wjharil.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wjharil.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wjharil.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wjharil.com\/blog\/wp-json\/wp\/v2\/comments?post=175"}],"version-history":[{"count":6,"href":"https:\/\/wjharil.com\/blog\/wp-json\/wp\/v2\/posts\/175\/revisions"}],"predecessor-version":[{"id":183,"href":"https:\/\/wjharil.com\/blog\/wp-json\/wp\/v2\/posts\/175\/revisions\/183"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wjharil.com\/blog\/wp-json\/wp\/v2\/media\/184"}],"wp:attachment":[{"href":"https:\/\/wjharil.com\/blog\/wp-json\/wp\/v2\/media?parent=175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wjharil.com\/blog\/wp-json\/wp\/v2\/categories?post=175"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wjharil.com\/blog\/wp-json\/wp\/v2\/tags?post=175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}