<,'´`\.\""; $charPos="AaEeIiOoUuCcAaAaAaEeIiOoOoUu "; $textNormal = strip_tags($text); $textFormat = $textNormal; $textFormat = strtolower(strtr($textFormat, $charAnt, $charPos)); $queryNormal = explode(" ", $query); $queryFormat = explode(" ", strtolower(strtr($query, $charAnt, $charPos))); for ($i = 0; $i < count($queryFormat); $i++) { if (strlen($queryFormat[$i]) == 0) { continue; } $ini = strpos($textFormat, $queryFormat[$i]); if ($ini !== false) { $len = strlen($queryFormat[$i]); $fim = $ini + $len - 1; $pos[$fim] = array("ini" => $ini, "queryFormat" => $queryFormat[$i], "len" => $len ); } } if($pos==""){ $trecho2 = substr($textNormal, 0, $charTrecho); $trecho2 = substr("$trecho2", 0, strrpos("$trecho2", " ") + 1) . "..."; }else{ krsort($pos); reset($pos); } $textLen = strlen($textFormat); for ($i = 0; $i < count($pos); $i++) { $key = key($pos); $trecho = substr($textNormal, 0, $key + $charTrecho); if (strlen($trecho) < $textLen) { $trecho = substr($trecho, 0, strrpos($trecho, " ") + 1) . "..."; } $tmp = substr($trecho, $pos[$key]["ini"], $pos[$key]["len"]); $trecho = substr_replace($trecho, "" . $tmp . "", $pos[$key]["ini"], $pos[$key]["len"]); $sair = false; while ($sair == false) { $trechoIni = $pos[$key]["ini"] - $charTrecho; if ($trechoIni < 0) { $trechoIni = 0; } if (next($pos) AND key($pos) > $trechoIni) { $key = key($pos); $tmp = substr($trecho, $pos[$key]["ini"], $pos[$key]["len"]); $trecho = substr_replace($trecho, "" . $tmp . "", $pos[$key]["ini"], $pos[$key]["len"]); $i++; } else { $tmp = substr($trecho, $trechoIni); if ($trechoIni > 0) { $tmp = "..." . strstr($tmp, " "); } $trechos[] = $tmp; $sair = true; } } } if($pos==""){ return $trecho2; }else{ return implode("
", $trechos); } } echo textQuery($texto, "grifada"); ?>