sql >> データベース >  >> RDS >> Mysql

PHPとMySQLを使用してGoogleによって生成されたようなスニペットを生成するにはどうすればよいですか?

    複数のフレーズを許可するようにdecezeの機能をわずかに変更しました。例えばフレーズは「testatestb」にすることができ、testaが見つからない場合は、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;}
    


    1. MySQL階層データの隣接リストモデルと入れ子集合モデル?

    2. ポート5432がブロックされている場合のリモートサーバーからのpg_dumppostgresデータベース

    3. Debian8にphpMyAdminをインストールして設定する方法

    4. SQLServerで重大度の高いエラーに対処する