2014-04-03 2 views
0

Мне нужно отправить СМС на хинди, для этого мне нужно передать строку хинди по URL-адресу.Сбой для отправки СМС на Хинди

Поскольку я использую php, я использовал urlencode($hindimessage) на строке и передал полный URL-адрес через file_get_contents(). Исполняя я получил ошибку:

Warning: file_get_contents(http://IP GOES HERE/smpp/sendsms?username=$name&password=******&to=$contact&from=DEMOTT&coding=3&&text=%E0%A4%AE%E0%A4%A8%E0%A5%80%E0%A4%B7+%E0%A4%95%E0%A5%81%E0%A4): failed to open stream: HTTP request failed! HTTP/1.1 505 HTTP Version Not Supported 

Без использования UrlEncode(), сервер трактует текст пустой строки и отвергаю.

Я также пробовал использовать utf8_encode() кодировку. Я получаю сообщение в тегах HTML, таких как ही ....

Но когда я использую URL-адрес API напрямую, я могу получить сообщение на хинди, поскольку API - это кодировка Unicode API, кодированная = 3 для хинди. (Т.е. API работа должным образом)

Пожалуйста, сообщите, какой подход мне необходимо принять для отправки сообщения как на хинди, так и на английском языке.

Спасибо заранее

+0

file_get_contents() нуждается в правильном URL-адресе с именем файла, которое отсутствует. Проверьте фактический URL-адрес API, и я предполагаю, что параметр будет вашим хинди-текстом. –

+1

Я использую полный URL-адрес, но проблема остается такой же. Тот же URL-адрес, который я вставил на вкладке URL, получил SMS. Но он создает ошибку во время выполнения. Текст на английском языке успешно передается таким же образом. –

ответ

1

urlencode() является необходимым, если вы звоните URL в file_get_contents() функции.

Вам необходимо принять CURL для отправки сообщения как на хинди, так и на английском языке.

$smsgatewayurl = 'http://IP GOES HERE/smpp/sendsms'; 
$post_data = array(); // All params including text message 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $smsgatewayurl); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); 
$output = curl_exec($ch); 
curl_close($ch); 

CURL - лучший вариант для вызова сторонних API-интерфейсов по сравнению с функцией file_get_contents. Я протестировал эту функцию выше с помощью шлейфа sms с пружинным фронтом, включая текст хинди.

0

Установите dcs coding = 8 и преобразуйте ваши символы хинди в символы Юникода и поместите его в текстовое поле. Это будет работать.

Смежные вопросы