2011-10-30 3 views
0

leader sur de ma dernière question:Google comme résultats de recherche

Tidying search results from database php

Ma recherche m'a conduit au code suivant pour tronquer les résultats de recherche, mettre en évidence le mot-clé et afficher un certain nombre de caractères à gauche et droite du mot-clé. Vous cherchez mieux.

Ma question est maintenant, avec le code ci-dessous, en ajoutant des caractères à gauche ou à droite du mot-clé, il coupe les mots de moitié.

exemple:

Savings plans 

..le="background: #E13300;">investing in international accounts is no longer the premise of the rich and famous, all expatriates living abroad can now enjoy flex... 

Comment puis-je faire la fonction de troncature arrêter de couper mes mots et les étiquettes dans la moitié ????

code:

$word = 'invest'; 
$characters_before="80"; 
$characters_after="80"; 
function supertruncate($text, $word, $characters_before, $characters_after){ 
        $pos = strpos($text, $word); 
    $start = $characters_before < $pos ? $pos - $characters_before : 0; 
    $len = $pos + strlen($word) + $characters_after - $start; 
        $text = str_ireplace($word, '<span class="highlight" style="background: #E13300;">' . $word . '</span>', $text); 
    return substr($text, $start, $len); 
} 

Répondre

0

troncature premier. Puis surlignez.

$text = substr($text, $start, $len); 
return str_ireplace($word, '<span class="highlight" style="background: #E13300;">' . $word . '</span>', $text); 
+0

Merci Peter, ça marche. Des conseils sur la façon dont je peux obtenir la fin de tronquer sur les mots complets ?? – hairynuggets

+0

trouvez le dernier espace en utilisant 'strrpos()' et utilisez de nouveau 'substr()'. N'oubliez pas de mettre en surbrillance comme dernière opération. – Peter

Questions connexes