0

私は試してみましたが、私は困惑しています。次のシナリオがあるとします。

$string = "Jenny's garden is one of the best in town, it has lush greens and colorful flowers. With what happened to her recently, she could use a new sprinkler system so that she does not have to over exert herself. Perhaps Joel can sell that extra bike to raise money or perhaps put up a garage sale.";

$keyword = "recently";

$length = 136;

// when keyword keyword is empty
$result = "Jenny's garden is one of the best in town, it has lush greens and colorful flowers. With what happened to her recently, she could use a (snip)";

// when keyword is NOT empty
$result = "(snip)it has lush greens and colorful flowers. With what happened to her recently, she could use a new sprinkler system so that she does not h(snip)";

私がやろうとしているのは、$result に示されている文字列の抜粋を取得することです。おそらく、キーワードの最初の出現を中心にしています (存在する場合)。substrとstrposを使用してphpでこれを達成する方法に困惑しています。ヘルプ?

4

1 に答える 1

1

これは、必要なものに対して機能するはずです。

if ($keyword != "") {
    $strpos = strpos($string, $keyword);
    $strStart = substr($string, $strpos - ($length / 2), $length / 2);
    $strEnd = substr($string, $strpos + strlen($keyword), $length / 2);

    $result = $strStart . $keyword . $strEnd;
}
else {
    $result = substr($string, 0, $length);
}

使用したテストコードは次のとおりです。

<?PHP
$string = "Jenny's garden is one of the best in town, it has lush greens and colorful flowers. With what happened to her recently, she could use a new sprinkler system so that she does not have to over exert herself. Perhaps Joel can sell that extra bike to raise money or perhaps put up a garage sale.";

$keyword = "recently";

$length = 136;

if ($keyword != "") {
    $strpos = strpos($string, $keyword);
    $strStart = substr($string, $strpos - ($length / 2), $length / 2);
    $strEnd = substr($string, $strpos + strlen($keyword), $length / 2);

    $result = $strStart . $keyword . $strEnd;
}
else {
    $result = substr($string, 0, $length);
}

echo $result;
?>

そして、エコーされた結果は次のとおりです。

緑豊かな緑と色とりどりの花があります。彼女に最近起こったことで、彼女は新しいスプリンクラー システムを使用できたので、その必要はありませんでした。

編集:私のコードでいくつかのバグを修正しました...

注: これにより、136 文字 + キーワードの長さの $result が表示されます。136だけにしたい場合は、追加します$length = 136 - strlen($keyword);

于 2013-03-09T07:52:32.757 に答える