2

データベースのテキスト エントリから最初と最後の文を取得しようとしています。

私が持っているコードは、この例でうまく動作します:

$text = "He was doing ok so far, but this one had stumped him. He was a bit lost..."

機能:

function first_sentence($content) {  
 $pos = strpos($content, '.');  
 if($pos === false) {  
  return $content;  
  }  
 else {  
 return substr($content, 0, $pos+1);  
 }  
} // end function

// Get the last sentence

function last_sentence($content) {
 $content = array_pop(array_filter(explode('.', $content), 'trim'));
 return $content;
} // end function

最後のセンテンス関数は、センテンスの末尾にある後続の ... を考慮に入れますが、どちらも次のものには対応できません。

$text = "Dr. Know-all was a coding master, he knew everything and was reputed the world over. But the Dr. was in trouble..."

結果: 最初の文: Dr. 最後の文: 困っていた

「Dr.」などを考慮して関数を変更する必要があります。可能であれば他のそのような略語を使用すると、最後のテキスト変数は次のようになります。

最初の文: Dr. Know-all はコーディングの達人であり、彼はすべてを知っていて、世界中で評判でした 最後の文: しかし Dr. は困っていました

それはできますか?どんな助けでも大歓迎です!

4

4 に答える 4

2

単語を置き換えることで、一部の単語を除外できます。

<?

function first_sentence($content) {  
 $pos = strpos($content, '.');  
 if($pos === false) {  
  return $content;  
  }  
 else {  
 return substr($content, 0, $pos+1);  
 }  
} // end function

// Get the last sentence

function last_sentence($content) {
 $content = array_pop(array_filter(explode('.', $content), 'trim'));
 return $content;
} // end function

$text = "Dr. Know-all was a coding master, he knew everything and was reputed the world over. But the Dr. was in trouble...";

$tmp = str_replace("Dr.","Dr____",$text);
echo $tmm ."\n"; 
echo str_replace("Dr____","Dr.",first_sentence($tmp ))."\n";
echo str_replace("Dr____","Dr.",last_sentence($tmp ));

?>

作業コード

于 2013-10-21T11:04:54.217 に答える
1

たぶんあなたはそれについて考えました..

$content文を検索する前にエンコード/デコードする関数を作成できますか?

function encode_content($content){
    return $encoded_content = str_replace("Dr.", "Dr#;#", $content);
}

文を取得したら、再度デコードします。

function decode_content($content){
    return $encoded_content = str_replace("Dr#;#", "Dr." , $content);
}
于 2013-10-21T10:57:17.050 に答える
0

長さを確認し、substr3文字以上(ポイント込み)の場合のみ返却できます。それ以下の場合は、ホワイトリストを使用して、「いいえ」、「私」、「私たち」、「ああ」などの単語につまずかないようにすることができます...スクラブル辞書が役立つはずです:)

于 2013-10-21T10:57:02.793 に答える