Καλησπέρα Γιώργο αλλά και σε όλους τους φίλους,
Γιώργο το παράδειγμα δουλεϋει μόνο που εφόσον σταλεί το μήνυμα στα κινητά, δεν εμφανίζονται οι χαρακτήρες (λέξεις, προτάσεις κλπ) παρά μόνο εμφανίζονται ερωτηματικά συνεχόμενα (??????). Ψάχνωντας να λύσω το πρόβλημα κατόρθωσα και μίλησα με κάποιο τεχνικό της υπηρεσίας και μου εξήγησε οτι το μηνυμα πρέπει να αποστέλνεται σε 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.