:PHP에서 이모티콘을 대체하는 더 좋은 방법은 무엇입니까? 지금 내가 이모티콘이 기능을 사용하고
function emoticons($text) {
$icons = array(
':)' => '<img src="/images/blank.gif" alt="smile" class="icon_smile" />',
':-)' => '<img src="/images/blank.gif" alt="smile" class="icon_smile" />',
':D' => '<img src="/images/blank.gif" alt="smile" class="icon_laugh" />',
':d' => '<img src="/images/blank.gif" alt="laugh" class="icon_laugh" />',
';)' => '<img src="/images/blank.gif" alt="wink" class="icon_wink" />',
':P' => '<img src="/images/blank.gif" alt="tounge" class="icon_tounge" />',
':-P' => '<img src="/images/blank.gif" alt="tounge" class="icon_tounge" />',
':-p' => '<img src="/images/blank.gif" alt="tounge" class="icon_tounge" />',
':p' => '<img src="/images/blank.gif" alt="tounge" class="icon_tounge" />',
':(' => '<img src="/images/blank.gif" alt="sad face" class="icon_sad" />',
':o' => '<img src="/images/blank.gif" alt="shock" class="icon_shock" />',
':O' => '<img src="/images/blank.gif" alt="shock" class="icon_shock" />',
':0' => '<img src="/images/blank.gif" alt="shock" class="icon_shack" />',
':|' => '<img src="/images/blank.gif" alt="straight face" class="icon_straight" />',
':-|' => '<img src="/images/blank.gif" alt="straight face" class="icon_straight" />',
':/' => '<img src="/images/blank.gif" alt="straight face" class="icon_straight" />',
':-/' => '<img src="/images/blank.gif" alt="straight face" class="icon_straight" />'
);
return strtr($text, $icons);
}
을하지만 당신은 http://
의 :/
부분이 교체됩니다 링크를 입력하면 앞 4 자리 (코드
같은 코드 상자를 만들려면 각 줄마다). 그러나 어떤 이유로 단순한 )
이 대체됩니다 (윙크 포함).
이렇게 모든 아이콘을 바꾸는 것보다 더 나은 해결책이 있습니까? 분명히 잘 작동하지 않습니다. 나는 Google에서 많이 검색했지만 더 좋은 방법을 찾지 못했습니다. 위의 연관 배열에있는 각 이모티콘 앞에 공백을 넣으려고했지만 그 앞에 아무 것도 입력하지 않으면 작동하지 않습니다.
+1 단어 경계는 +1하지만 'http : // www'는 단어가 아니며 '/'단어 경계이므로': /'는 여전히 필터링됩니까? – Tim
실제로, 나는 그것을 다시 잡는다 - ['preg_quote'] (http://php.net/preg_quote)에 +1, 그것은 대단하다! – Tim
그래서 이것을'strtr()'대신에 함수에 넣었습니까? ** 편집 : ** 흠, 어떤 이유로 아이콘이 이미지로 바뀌지 않습니다. 코드 상자에서 이모티콘이 이미지로 변환되지 않게하는 방법이 있는지 궁금합니다. – Nathan