我对 PHP 还比较陌生,但我正在尝试编写一个脚本,在找到某个或两个单词后,它只会打印字符串中接下来的 35 个左右的字符。我熟悉使用strpos()
来查找特定值,只是不确定如何在找到我要设置的字符串值后打印接下来的 35 个字符。
因此,如果输入的随机字符串包含单词,则来自最初输入的句子中的“某物”,“我的朋友在长凳旁边的公园里发现了一些东西”。它只会打印“在长凳旁边的公园里”。
我对 PHP 还比较陌生,但我正在尝试编写一个脚本,在找到某个或两个单词后,它只会打印字符串中接下来的 35 个左右的字符。我熟悉使用strpos()
来查找特定值,只是不确定如何在找到我要设置的字符串值后打印接下来的 35 个字符。
因此,如果输入的随机字符串包含单词,则来自最初输入的句子中的“某物”,“我的朋友在长凳旁边的公园里发现了一些东西”。它只会打印“在长凳旁边的公园里”。
这应该做你需要的:
substr($string, strpos($string, $searchedWord) + strlen($searchedWord), 35);
您正在搜索的单词的位置由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()
你需要的是substr:
$start = strpos('something', $string);
echo substr($string, $start, 35);