ほとんどの絵文字の交換機能がstucturedされています次のようにキーワードを指定して文字列内の顔文字を置き換え
array(
':-)' => 'happy', ':)' => 'happy', ':D' => 'happy', ...
)
これは、私には、私は「幸せ」を区別する必要はありません特にながら(ビット冗長に見えました、:-)と非常に満足しています: - D。だから私は、このを作ってみた:
$tweet = 'RT @MW_AAPL: Apple officially rich :-) LOLWUT #ipod :(';
function emoticons($tweet) {
$emoticons = array(
'HAPPY' => array(':-)', ':-D', ':D', '(-:', '(:'),
'SAD' => array(':-(', ':('),
'WINK' => array(';-)', ';)'),
);
foreach ($emoticons as $emotion) {
foreach ($emotion as $pattern) {
$tweet = str_replace($pattern, key($emoticons), $tweet);
}
}
return $tweet;
}
出力は次のようになります。
RT @MW_AAPL: Apple officially rich HAPPY LOLWUT #ipod SAD
しかし、私は$顔文字から正しいキーを呼び出す方法を知りません。私のコードでは、常に "HAPPY"というキーワードで任意の顔文字を置き換えているようです。
(1)自分のコードに何か問題がある場合は、教えてください。どんな助けでも大いに感謝されます:-) (2)ここでstr_replaceを使用していますが、他の多くのfunciotnsはpreg_replaceを使用しています。それの利点は何でしょうか?