अभी मैं इमोटिकॉन के लिए इस समारोह का उपयोग कर रहा: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 - लेकिन 'http: // www' के मामले में 'http' शब्द नहीं होगा, और एक शब्द सीमा होगी, इसलिए ': /' अभी भी फ़िल्टर हो जाएगा? – Tim
असल में, मैं इसे वापस लेता हूं - +1 ['preg_quote'] (http://php.net/preg_quote) के लिए, यह कमाल है! – Tim
तो मैंने इसे 'strtr() 'का उपयोग करने के बजाय अपने फ़ंक्शन में रखा है? ** संपादित करें: ** हम्म, किसी कारण से अब छवियों में कोई आइकन नहीं बदला जा रहा है। मुझे आश्चर्य है कि कोई कोड इमोटिकॉन्स कोड बॉक्स में छवियों में बदलने का कोई तरीका नहीं है? – Nathan