我需要提取并在查询词之前和之后显示一些词,比如谷歌搜索结果,例如:
$str = "hi user! welcome to new php open source world, we are trying to learn you something!";
$query = "new php";
$result = "... welcome to new php open source ...";
我搜索了 google 和 SO 但没有找到明确的答案,或者我的 php 知识还不够! 是否有可行且易于使用的功能来完成这项工作?
最佳答案
function yourFuncName($str, $query, $numOfWordToAdd) {
list($before, $after) = explode($query, $str);
$before = rtrim($before);
$after = ltrim($after);
$beforeArray = array_reverse(explode(" ", $before));
$afterArray = explode(" ", $after);
$countBeforeArray = count($beforeArray);
$countAfterArray = count($afterArray);
$beforeString = "";
if($countBeforeArray < $numOfWordToAdd) {
$beforeString = implode(' ', $beforeArray);
}
else {
for($i = 0; $i < $numOfWordToAdd; $i++) {
$beforeString = $beforeArray[$i] . ' ' . $beforeString;
}
}
$afterString = "";
if($countAfterArray < $numOfWordToAdd) {
$afterString = implode(' ', $afterArray);
}
else {
for($i = 0; $i < $numOfWordToAdd; $i++) {
$afterString = $afterString . $afterArray[$i] . ' ';
}
}
$string = $beforeString . $query . ' ' . $afterString;
return $string;
}
输出是: user!欢迎来到新的 php 开源世界,
($numOfWordToAdd = 3)
关于php - 提取单词前后的部分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12629081/