Εμφάνιση ενός μόνο μηνύματος
  #6  
Παλιά 17-04-20, 22:14
γιώργοςΚ Ο χρήστης γιώργοςΚ δεν είναι συνδεδεμένος
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 02-04-2013
Περιοχή: Κύπρος
Μηνύματα: 738
Προεπιλογή

Καλησπέρα Γιώργο αλλά και σε όλους τους φίλους,

Γιώργο το παράδειγμα δουλεϋει μόνο που εφόσον σταλεί το μήνυμα στα κινητά, δεν εμφανίζονται οι χαρακτήρες (λέξεις, προτάσεις κλπ) παρά μόνο εμφανίζονται ερωτηματικά συνεχόμενα (??????). Ψάχνωντας να λύσω το πρόβλημα κατόρθωσα και μίλησα με κάποιο τεχνικό της υπηρεσίας και μου εξήγησε οτι το μηνυμα πρέπει να αποστέλνεται σε UTF8 encoding...

Παραθέτω και ενα μικρό παράδειγμα ενος αρχείου που μου δόθηκε

Παράδειγμα: Ελληνικά, απλό sms
Για να στείλουμε sms με ελληνικούς χαρακτήρες ακολουθείται η εξής
διαδικασία πριν καλέσουμε το παραπάνω url, προκειμένου να
μετατρέψουμε τους χαρακτήρες σε 7bit encoding :
$text = mb_convert_case($text, MB_CASE_UPPER, "UTF-8"); //μετατρέπουμε όλο το
κείμενο σε κεφαλαία
$text = urlencode($text); //κωδικοποίηση χαρακτήρων σε url encoding
$text = to7bit($text); // εφαρμόζουμε την παρακάτω συνάρτηση
function to7bit($text){
$text = str_replace('%CE%91', 'A', $text );
$text = str_replace('%CE%86', 'A', $text ); // Ά
$text = str_replace('%CE%92', 'B', $text );
$text = str_replace('%CE%93', '%13', $text ); // Γ
$text = str_replace('%CE%94', '%10', $text ); // Δ
$text = str_replace('%CE%95', 'E', $text );
$text = str_replace('%CE%88', 'E', $text ); // Έ
$text = str_replace('%CE%96', 'Z', $text );
$text = str_replace('%CE%97', 'H', $text );
$text = str_replace('%CE%89', 'H', $text );
$text = str_replace('%CE%98', '%19', $text ); // Θ
$text = str_replace('%CE%99', 'I', $text );
$text = str_replace('%CE%8A', 'I', $text );
$text = str_replace('%CE%AA', 'I', $text ); // Ϊ
$text = str_replace('%CE%90', 'I', $text );// ΐ
$text = str_replace('%CE%9A', 'K', $text );
9
www.smsbox.gr HTTP API v1.7
$text = str_replace('%CE%9B', '%14', $text ); // Λ
$text = str_replace('%CE%9C', 'M', $text );
$text = str_replace('%CE%9D', 'N', $text );
$text = str_replace('%CE%9E', '%1A', $text );// Ξ
$text = str_replace('%CE%9F', 'O', $text );
$text = str_replace('%CE%8C', 'O', $text ); // Ό
$text = str_replace('%CE%A0', '%16', $text ); // Π
$text = str_replace('%CE%A1', 'P', $text );
$text = str_replace('%CE%A3', '%18', $text ); // Σ
$text = str_replace('%CE%A4', 'T', $text );
$text = str_replace('%CE%A5', 'Y', $text );
$text = str_replace('%CE%8E', 'Y', $text );
$text = str_replace('%CE%AB', 'Y', $text ); // Ϋ
$text = str_replace('%CE%B0', 'Y', $text ); // ΰ
$text = str_replace('%CE%A6', '%12', $text ); // Φ
$text = str_replace('%CE%A7', 'X', $text );
$text = str_replace('%CE%A8', '%17', $text );
$text = str_replace('%CE%A9', '%15', $text ); // Ω
$text = str_replace('%CE%8F', '%15', $text ); // Ώ
$text = str_replace('%E2%82%AC', '%80', $text ); // €
return $text;

Για να στείλουμε sms με ελληνικούς χαρακτήρες, υπάρχει και πιό απλός
τρόπος με τη χρήση της παραμέτρου coding=UTF8 κατά την κλήση*:
$from = urlencode("smsboxt");
$text = urlencode("για να δούμε ένα... παράδειγμα με τον απλό τρόπο");
$fp = fopen('http://www.smsbox.gr/httpapi/sendsms.php?
coding=UTF8&username=xxx&password=xxx&from='.
$from.'&to=306947992777&text='.$text, 'r');
$content = '';
while ($line = fread($fp, 1024)) { $content .= $line;
}
fclose($fp);
*Για να λειτουργήσει σωστά η κλίση με coding=UTF8, θα πρέπει το file
encoding του αρχείου php να είναι UTF-8.
Απάντηση με παράθεση