×

46 个非常有用的 PHP 代码片段

技术文档

46 个非常有用的 PHP 代码片段

admin admin 发表于2016-11-09 浏览1942 评论0

1.发送 SMS

在开发 Web 或者移动应用的时候,经常会遇到需要发送 SMS 给用户,或者因为登录原因,或者是为了发送信息。下面的 PHP 代码就实现了发送 SMS 的功能。

为了使用任何的语言发送 SMS,需要一个 SMS gateway。大部分的 SMS 会提供一个 API,这里是使用MSG91作为 SMS gateway。

function send_sms($mobile,$msg){
$authKey = "XXXXXXXXXXX";
date_default_timezone_set("Asia/Kolkata");
$date = strftime("%Y-%m-%d %H:%M:%S");//Multiple mobiles numbers separated by comma$mobileNumber = $mobile;//Sender ID,While using route4 sender id should be 6 characters long.$senderId = "IKOONK";//Your message to send, Add URL encoding here.$message = urlencode($msg);//Define route $route = "template";//Prepare you post parameters$postData = array(    'authkey' => $authKey,    'mobiles' => $mobileNumber,    'message' => $message,    'sender' => $senderId,    'route' => $route
);//API URL$url="https://control.msg91.com/sendhttp.php";// init the resource$ch = curl_init();
curl_setopt_array($ch, array(
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $postData    //,CURLOPT_FOLLOWLOCATION => true));//Ignore SSL certificate verificationcurl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);//get response$output = curl_exec($ch);//Print error if anyif(curl_errno($ch))
{    echo 'error:' . curl_error($ch);
}

curl_close($ch);
}

其中“$authKey = "XXXXXXXXXXX";”需要你输入你的密码,“$senderId = "IKOONK";”需要你输入你的 SenderID。当输入移动号码的时候需要指定国家代码 (比如,美国是 1,印度是 91 )。

语法:

<?php$message = "Hello World";
$mobile = "918112998787";
send_sms($mobile,$message);?>
2016-02-02 15:48
实验楼管理员 

2.使用 mandrill 发送邮件

Mandrill 是一款强大的 SMTP 提供器。开发者倾向于使用一个第三方 SMTP provider 来获取更好的收件交付。

下面的函数中,你需要把 “Mandrill.php” 放在同一个文件夹,作为 PHP 文件,这样就可以使用TA来发送邮件。

function send_email($to_email,$subject,$message1){require_once 'Mandrill.php';
$apikey = 'XXXXXXXXXX'; //specify your api key here$mandrill = new Mandrill($apikey);

$message = new stdClass();
$message->html = $message1;
$message->text = $message1;
$message->subject = $subject;
$message->from_email = "blog@koonk.com";//Sender Email$message->from_name  = "KOONK";//Sender Name$message->to = array(array("email" => $to_email));
$message->track_opens = true;

$response = $mandrill->messages->send($message);
}
“$apikey = 'XXXXXXXXXX'; //specify your api key here”这里需要你指定你的 API 密钥(从 Mandrill 账户中获得)。

语法:

<?php$to = "abc@example.com";
$subject = "This is a test email";
$message = "Hello World!";
send_email($to,$subject,$message);?>

为了达到最好的效果,最好按照 Mandrill 的教程去配置 DNS。

3.PHP 函数:阻止 SQL 注入

SQL 注入或者 SQLi 常见的攻击网站的手段,使用下面的代码可以帮助你防止这些工具。

function clean($input){    if (is_array($input))
    {        foreach ($input as $key => $val)
         {
            $output[$key] = clean($val);            // $output[$key] = $this->clean($val);
        }
    }    else
    {
        $output = (string) $input;        // if magic quotes is on then use strip slashes
        if (get_magic_quotes_gpc()) 
        {
            $output = stripslashes($output);
        }        // $output = strip_tags($output);
        $output = htmlentities($output, ENT_QUOTES, 'UTF-8');
    }// return the clean text
    return $output;
}

语法:

<?php$text = "<script>alert(1)</script>";
$text = clean($text);echo $text;?>
2016-02-02 15:48<hr style="box-sizing: content-box;