मेरे पास चैट एप्लिकेशन है और मैं फ़ंक्शन जोड़ना चाहता हूं जो कुछ वर्ण संदेश स्ट्रिंग के रूप में ढूंढेगा और इसे डेटाबेस में सहेजने के लिए इमोजी के रूप में परिवर्तित करेगा

मेरा कोड नीचे है:


$list = array(
    '<3'        => '❤️',
    ':D'        => '😃',
    ':/'        => '😒',
    ':*'        => '😘',
    ':('        => '😢',
);

$string = ":DD I don't know how to fix this issue :D <3";        // message example
$array = explode(' ', $string);      // I am trying to explode message into array and then compare

foreach ($array as $key => $value) {
    foreach ($list as $emoji => $emojied) {
        if(strpos($value, $emoji) !== false) {
            echo $emojied . '<br>';
        } else {
            echo $value;
        }
    }
}

लेकिन यह काम नहीं करता है सही ढंग से

आउटपुट निम्नलिखित है:

:डीडी😃

:डीडी:डीडी:डीडीIIIIIIनहीं नहीं पता नहीं पता नहीं पता है कि कैसे पता है कि कैसे कैसे टोटोटोटो फिक्स फिक्स फिक्स यह यह यह यह मुद्दा मुद्दा मुद्दा मुद्दा: डी :D:D:D❤️ <3<3<3<3

यह होना चाहिए:

:DD मुझे नहीं पता कि इस समस्या को कैसे ठीक किया जाए ❤️**

php
-1
georgian 11 फरवरी 2020, 19:57
1
क्या काम नहीं कर रहा है?
 – 
Felippe Duarte
11 फरवरी 2020, 20:01
डीबग करने के लिए आपने क्या किया? ऐसा लगता है कि यह आसान सामान है, कुछ पाठ को किसी अन्य पाठ से बदलना, यह एक बड़ी समस्या नहीं होनी चाहिए, हो सकता है कि कहीं कोई टाइपो हो, कुछ ऐसा जो आप कर सकते हैं (और चाहिए) पहले स्वयं को खोजने का प्रयास करें। आपको हमें दिखाना होगा कि आपने अपनी समस्या का समाधान करने के लिए कुछ किया है। चरण दर चरण यह देखने के लिए कि क्या गलत है, आपको अपने foreach लूप में कुछ print_r सामान करना पड़ सकता है
 – 
Pierre
11 फरवरी 2020, 20:07

2 जवाब

आप str_replace और सरणी तर्कों का उपयोग करके इसे और अधिक सरलता से कर सकते हैं:

<?php


$list = array(
    '<3'        => '❤️',
    ':D'        => '😃',
    ':/'        => '😒',
    ':*'        => '😘',
    ':('        => '😢',
);

$string = ":DD I don't know how to fix this issue :D <3";        // message example

$keys = array_keys($list);
$values = array_values($list);

$output = str_replace($keys, $values, $string);

print $output;

आउटपुट उत्पन्न करता है:

😃D I don't know how to fix this issue 😃 ❤️
1
diamondsea 11 फरवरी 2020, 20:48
शुक्रिया!! तुमने मुझे बचाया
 – 
georgian
11 फरवरी 2020, 20:53

मेरा सुझाव है कि आप strtr फ़ंक्शन का उपयोग करें, जो इस परिदृश्य के लिए अधिक उपयुक्त है, उदाहरण:

<?php

$string = ":DD I don't know how to fix this issue :D <3";        // message example

$list = array(
    '<3' => '❤️',
    ':D' => '😃',
    ':/' => '😒',
    ':*' => '😘',
    ':(' => '😢',
);

print strtr($string, $list);

आउटपुट:

😃D I don't know how to fix this issue 😃 ❤️
0
Luna 12 फरवरी 2020, 05:39
धन्यवाद सर आपकी मदद के लिए
 – 
georgian
12 फरवरी 2020, 14:53