用于格式化搜索结果的PHP字符串函数

时间:2017-04-25 12:52:36

标签: php string search formatting

我使用MySQL全文搜索,需要按照下面描述的方式格式化搜索结果。

在PHP或某些库函数中,获取指定的参数并返回指定的结果?
如果没有,有没有人实现类似的功能?

$needles = ['word1', 'word2'];
$haystack = 'This string contains word1. Also this string contains word2';
$wordsGap = 1;  //word quantity from left and right of every in $result;
$delimiter = '...';
$result = desired_function($needles, $haystack, $wordsGap, $delimiter);
//$result must be String like '... contains word1. Also ... contains word2'

更新
我需要与此类似的结果。
http://joxi.net/BA01zg3tJ4l5Or

现在我已经' T want_function。但我需要它。我需要一个函数来获取描述的参数并返回描述的结果。

2 个答案:

答案 0 :(得分:0)

看起来你需要使用php函数http://php.net/manual/en/function.strpos.php

答案 1 :(得分:0)

不完全确定wordsGapdelimiter的含义,但下面的函数会返回一个包含找到的单词的数组:

function cool_function($needles, $haystack, $wordGap, $delimiter){


    $haystack = explode(' ', $haystack);
    $mFinalArray = [];

    foreach($haystack as $current){

        foreach($needles as $currentNeedle){
            if(strpos($current, $currentNeedle) !== false){
                $mFinalArray[] = $currentNeedle;
            }
        }
    }

    return $mFinalArray;
}

示例:

$needles = ['word1', 'word2'];
$haystack = 'This string contains word1. Also this string contains word2';
$wordsGap = 1;  //word quantity from left and right of every in $result;
$delimiter = '...';
$result = cool_function($needles, $haystack, $wordsGap, $delimiter);

输出:

Array
(
    [0] => word1
    [1] => word2
)

你可以在

行玩

$mFinalArray[] = $currentNeedle;

如果你想添加分隔符和wordsGap,但是从你拥有数据开始,你可以显示你喜欢的任何内容。