1

我对 PHP 还比较陌生,但我正在尝试编写一个脚本,在找到某个或两个单词后,它只会打印字符串中接下来的 35 个左右的字符。我熟悉使用strpos()来查找特定值,只是不确定如何在找到我要设置的字符串值后打印接下来的 35 个字符。

因此,如果输入的随机字符串包含单词,则来自最初输入的句子中的“某物”,“我的朋友在长凳旁边的公园里发现了一些东西”。它只会打印“在长凳旁边的公园里”。

4

3 回答 3

2

这应该做你需要的:

substr($string, strpos($string, $searchedWord) + strlen($searchedWord), 35);
于 2013-07-02T23:03:11.430 回答
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()

于 2013-07-02T23:06:08.317 回答
-1

你需要的是substr

$start = strpos('something', $string);
echo substr($string, $start, 35);
于 2013-07-02T23:05:54.620 回答