Citat:
Ursprungligen postat av zenda
Jag har hört att jorden är platt - måste stämma :-)
Skämt åsido, hoosten du kör ifrån kan neka file_get_contents, vilket jag ser iof att du ändå använder i din klass. UTF8 är nödvändigt vilket man också kan läsa sig till på siten.
Om man inte vill använda file_get_contents pga dåliga rykten på stan så finns cURL.
Kör hårt!
|
Ja, nu har jag fixat till så min klass använder curl i stället för file_get_contents() så den koden ska tydligen vara något bättre att använda, den verkar funka på sms.inleed.se också enligt mina något rudimentära tester.
Jag kör en console-app från min lokala PC så jag drabbas inte av problem med att en del hostar spärrat file_get_contents(), men vän av ordning så använder jag de rutiner som rekommenderas, så jag har uppdaterat min klass enligt de principerna.
PHP-kod:
<?php
////////////////////////////////////////////////////////////////////////////////
// File: smsutility.php
// Date: 2013-07-21 // created file_get_contents()
// Date: 2013-07-23 // added cURL...
// Author: Conny Westh, Adopter KB, 073-898 68 61, [email protected]
// UTF-8 med URLEncode
////////////////////////////////////////////////////////////////////////////////
// Refgistrera dig och skaffa en sms-nyckel på http://sms.inleed.se
// Alla SMS skickas idag från nummer 0763448100.
////////////////////////////////////////////////////////////////////////////////
class SmsUtility
{
var $smskey;
function __construct($smskey)
{
$this->smskey = $smskey;
}
function __destruct()
{
}
function send($recipient, $message)
{
$encodedMessage = $this->url_encode($message);
$url = "http://sms.inleed.se/skickaSMS/?nummer=" . $recipient . "&text=" . $encodedMessage . "&nyckel=" . $this->smskey;
echo $url . "\n";
try
{
$this->curl_execute($url); // Using cURL...
// $this->file_execute($url); // Using file_get_contents()...
}
catch (Exception $e)
{
echo $e;
throw new Exception($e);
}
}
// To use cURL on Windows-platform you need to
// copy libeay32.dll and ssleay32.dll to Windows\System32
// and uncomment ;php_libcurl.dll in php.ini, the maybe reboot PC...
function curl_execute($url)
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_exec($ch);
curl_close($ch);
}
function file_execute($url)
{
file_get_contents($url);
}
function url_encode($string)
{
return rawurlencode(utf8_encode($string));
}
function url_decode($string)
{
return utf8_decode(rawurldecode($string));
}
}
class SmsUtilityTest
{
function __construct()
{
echo "********************************************************************************\n";
echo "** Begin Test...\n";
echo "********************************************************************************\n";
$this->main();
}
function main()
{
$smskey = "<Den 50 siffriga sms-nyckeln ska läggas in här>";
$recipient1 = "070..."; // Mottagare 1 mobilnummer
$recipient2 = "073..."; // Mottagare 2 mobilnummer
$message1 = "Hejsan Conny,\nNu fungerar SmsUtility med specialtecken och källkoden finns i din mejl med (åäöÅÄÖ)!";
$message2 = "Hejsan Conny,\nNu fungerar SmsUtility.php med cURL och (åäöÅÄÖ)!";
$sms = new SmsUtility($smskey);
$sms->send($recipient1, $message2);
$sms->send($recipient2, $message2);
}
function __destruct()
{
echo "********************************************************************************\n";
echo "** End Test...\n";
echo "********************************************************************************\n";
}
}
new SmsUtilityTest();
?>