我仍然相对较新的PHP,但我正在尝试编写一个脚本,在找到一两个字后,只会在字符串中打印下35个左右的字符。我熟悉使用strpos()
来查找特定值,只是不确定如何在找到我设置的字符串值后打印下35个字符。
因此,如果输入的随机字符串包含单词,则从最初输入的句子中的“某事”,“我的朋友在公园旁边的公园里发现了一些东西。”它只会打印,“在公园旁边的公园里。”
答案 0 :(得分:2)
这应该做你需要的:
substr($string, strpos($string, $searchedWord) + strlen($searchedWord), 35);
答案 1 :(得分:1)
您正在搜索的单词的位置由您提到的strpos()
确定;接下来你需要跳过那个单词并返回接下来的35个字符:
$str = 'My friend had found something in the park next to the bench.';
$needle = 'something';
substr($str, strpos($str, $needle) + strlen($needle), 35);
如果在字符串中找不到$needle
(在这种情况下strpos()
返回false
),则需要添加条件:
if (($pos = strpos($str, $needle)) !== false) {
return substr($str, $pos + strlen($needle), 35);
} else {
return ''; // search failed, return what you like
}
这假设在函数内部运行。
另请参阅:substr()
答案 2 :(得分:-1)
您需要的是substr:
$start = strpos('something', $string);
echo substr($string, $start, 35);