如何生成类似于 Google 使用 PHP 和 MySQL 生成的代码段?

How to generate the snippet like those generated by Google with PHP and MySQL?(如何生成类似于 Google 使用 PHP 和 MySQL 生成的代码段?)
本文介绍了如何生成类似于 Google 使用 PHP 和 MySQL 生成的代码段?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

例如,它只返回搜索关键字所在的片段.

For example, it just returns the snippet around which the searching keyword exists.

并且部分文字被替换为...".

And part of the text is replaced by "...".

使用 PHP 和 MySQL 是否有可能实现该目标?

Is it possible to achieve that goal with PHP and MySQL?

推荐答案

稍微修改了 deceze 的功能以允许多个短语.例如您的短语可以是testa testb",如果没有找到 testa,则它会转到 testb.

Modified deceze's function slightly to allow multiple phrases. e.g. your phrase can be "testa testb" and if it does not find testa, then it will go to testb.

function excerpt($text, $phrase, $radius = 100, $ending = "...") { 


         $phraseLen = strlen($phrase); 
       if ($radius < $phraseLen) { 
             $radius = $phraseLen; 
         } 

         $phrases = explode (' ',$phrase);

         foreach ($phrases as $phrase) {
             $pos = strpos(strtolower($text), strtolower($phrase)); 
             if ($pos > -1) break;
         }

         $startPos = 0; 
         if ($pos > $radius) { 
             $startPos = $pos - $radius; 
         } 

         $textLen = strlen($text); 

         $endPos = $pos + $phraseLen + $radius; 
         if ($endPos >= $textLen) { 
             $endPos = $textLen; 
         } 

         $excerpt = substr($text, $startPos, $endPos - $startPos); 
         if ($startPos != 0) { 
             $excerpt = substr_replace($excerpt, $ending, 0, $phraseLen); 
         } 

         if ($endPos != $textLen) { 
             $excerpt = substr_replace($excerpt, $ending, -$phraseLen); 
         } 

         return $excerpt; 
   } 

突出显示功能

function highlight($c,$q){ 
$q=explode(' ',str_replace(array('','\','+','*','?','[','^',']','$','(',')','{','}','=','!','<','>','|',':','#','-','_'),'',$q));
for($i=0;$i<sizeOf($q);$i++) 
    $c=preg_replace("/($q[$i])(?![^<]*>)/i","<span class="highlight">${1}</span>",$c);
return $c;}

这篇关于如何生成类似于 Google 使用 PHP 和 MySQL 生成的代码段?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Difference between mt_rand() and rand()(mt_rand() 和 rand() 的区别)
Coalesce function for PHP?(PHP的合并函数?)
Fastest way to convert string to integer in PHP(在 PHP 中将字符串转换为整数的最快方法)
2 Column Mysql Date Range Search in PHP(PHP中的2列Mysql日期范围搜索)
mysql match against ~ example(mysql 匹配 ~ 示例)
How-to: Ranking Search Results(操作方法:对搜索结果进行排名)