すべての体に平安がありますように
テキストの感情を画像に置き換えることについて検索しました
sultion が見つかりましたが、問題があります
<?php
function emoticons($text) {
$icons = array(
':)' => '<img src="/images/blank.gif" alt="smile" class="emo1" />',
':-)' => '<img src="/images/blank.gif" alt="smile" class="emo2" />',
':/' => '<img src="/images/blank.gif" alt="smile" class="emo3" />',
);
return strtr($text, $icons);
}
echo "http://stackoverflow.com good site:) :-)";
?>
それは出力します:(私はそれを作りたくありません)
"http<img src="/images/blank.gif" alt="smile" class="emo3" />/stackoverflow.com good site<img src="/images/blank.gif" alt="smile" class="emo1" /> <img src="/images/blank.gif" alt="smile" class="emo2" />"
出力したい
"http://stackoverflow.com good site:) <img src="/images/blank.gif" alt="smile" class="emo2" />"
テキストの前後にスペースを入れてから置き換える必要があると思います
これと同じ別の質問では、正しい答えは
foreach($icons as $icon=>$image) {
$icon = preg_quote($icon);
$text = preg_replace("~\b$icon\b~",$image,$text);
}
しかし、私はそれを使用しましたが、結果には画像がありません
私を助けてください、stackoverflow && allに感謝します:)
アップデート :
私は機能を修正してうまくいきましたが、チャットメッセージで使用する場合はあなたの意見を聞きたいですか? または問題に直面しますか?
function emoticons($text) {
$icons = array(
':)' => '<img src="/images/blank.gif" class="emo1"/>',
':-)' => '<img src="/images/blank.gif" class="emo1"/>',
':/' => '<img src="/images/blank.gif" class="emo3"/>',
);
$text = " ".$text." ";
foreach ($icons as $search => $replace){
$text = str_replace(" ".$search." ", " ".$replace." ", $text);
}
return trim($text);
}
$str = ":)http://stackoverflow.com good site:) :-)";
echo emoticons($str);