多分あなたたちは助けることができます:
$bio という変数があり、バイオ データが含まれています。
$bio = "Hello, I am John, I'm 25, I like fast cars and boats. I work as a blogger and I'm way cooler then the author of the question";
関数のセットを使用して $bio を検索し、特定の単語を検索します。「author」と言って、その単語の周りにスパン クラスを追加すると、次のようになります。
$bio = "Hello, I am John, I'm 25, I like fast cars and boats. I work as a blogger and I'm way cooler then the <span class=\"highlight\">author</span> of the question";
関数を使用して、テキストを 85 文字に制限します。
$bio = limit_text($bio,85);
問題は、$bioの「author」という単語の前に 80 文字を超える文字がある場合です。が適用されると、強調表示された単語 author が表示されません。limit_text()
私が必要としているのは、 limit_text() 関数が正常に機能し、span クラスのハイライトを含むすべての単語を最後に追加することです。このようなもの:
*"This is the limited text to 85 chars, but there are no words with the span class highlight so I am putting to be continued ... **author**, **author2** (and all the other words that have a span class highlight around them separate by comma "*
私の言いたいことを理解していただければ幸いです。そうでない場合は、コメントしてください。より良い説明を試みます。
これが私のlimit_text()
機能です:
function limit_text($text, $length){ // Limit Text
if(strlen($text) > $length) {
$stringCut = substr($text, 0, $length);
$text = substr($stringCut, 0, strrpos($stringCut, ' '));
}
return $text;
}
更新:
$xturnons = str_replace(",", ", ", $xturnons);
$xbio = str_replace(",", ", ", $xbio);
$xbio = customHighlights($xbio,$toHighlight);
$xturnons = customHighlights($xturnons,$toHighlight);
$xbio = limit_text($xbio,85);
$xturnons = limit_text($xturnons,85);
customHighlights
強調表示されたスパン クラスを追加する関数:
function addRegEx($word){ // Highlight Words
return "/" . $word . '[^ ,\,,.,?,\.]*/i';
}
function highlight($word){
return "<span class='highlighted'>".$word[0]."</span>";
}
function customHighlights($searchString,$toHighlight){
$searchFor = array_map('addRegEx',$toHighlight);
$result = preg_replace_callback($searchFor,'highlight',$searchString);
return $result;
}