2016-11-08 225 views
2

我試圖通過電報機器人發送表情符號,但是當我從數組或變量中取出時,我無法發送它。通過電報機器人發送表情符號

如果我一個這樣做在PHP中,它的工作原理:

$emoji = "\xF0\x9F\x98\x81"; 
echo $emoji; 

但我想要做這樣的事情:

$emoji = "\xF0\x9F\x98\x81"; 
$content = array('chat_id' => $id, 'text' => $emoji); 
$telegram->sendMessage($content); 

預先感謝您。

UPDATE: 它沒有顯示任何內容。 我試過define,它工作,但我需要數組或變量來有條件地做它。

define(emoji, "\xF0\x9F\x98\x81"); 
$content = array('chat_id' => $id, 'text' => emoji); 
$telegram->sendMessage($content); 

我認爲引號有問題。

UPDATE2:問題解決了,感謝@CaldwellYSR提供的these link

你必須這樣發送:

$emoji = "\xE2\x98\x94"; 
$content = array('chat_id' => $id, 'text' => json_decode('"'.$emoji.'"'); 
$telegram->sendMessage($content); 

太謝謝你了。

+0

可你'的var_dump($ telegram->的sendMessage($內容))'據我所知使用VS常量字符串不該」沒有什麼不同。我試圖得到預期的產出與實際產出。我對telegram-bot一無所知,但PHP是有效的。 – CaldwellYSR

+1

https://github.com/akalongman/php-telegram-bot/issues/48 此鏈接是否有幫助? – CaldwellYSR

+0

是的@CaldwellYSR,這可以幫助我。解決了這個問題。 – albertoperojo

回答

0

您正試圖在數組上發送消息。您需要訪問「文本」鍵的陣列中,像這樣:

$telegram->sendMessage($content["text"]); 
+0

感謝您的答案,但這不是問題。您必須將數組傳遞給此函數。它正在處理其他一些文字。 – albertoperojo

+0

你應該編輯你的問題,然後提供更多信息。根據你所顯示的代碼,字符串應該顯示。也許告訴我們你的結果是什麼? – CaldwellYSR

+0

謝謝,更新! – albertoperojo