栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

PHP实用代码片段(一)

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PHP实用代码片段(一)

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 )。

语法:

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 账户中获得)。

语法:

为了达到最好的效果,最好按照 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;
}

语法:

4. 检测用户位置

使用下面的函数,可以检测用户是在哪个城市访问你的网站。

function detect_city($ip) {        
        $default = 'UNKNOWN'; 
        $curlopt_useragent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) 
        Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)';        
        $url = 'http://ipinfodb.com/ip_locator.php?ip=' . urlencode($ip);        
        $ch = curl_init();        
        $curl_opt = array(
            CURLOPT_FOLLOWLOCATION  => 1,
            CURLOPT_HEADER      => 0,
            CURLOPT_RETURNTRANSFER  => 1,
            CURLOPT_USERAGENT   => $curlopt_useragent,
            CURLOPT_URL       => $url,
            CURLOPT_TIMEOUT         => 1,
            CURLOPT_REFERER         => 'http://' . $_SERVER['HTTP_HOST'],
        );
        
        curl_setopt_array($ch, $curl_opt);        
        $content = curl_exec($ch);        
        if (!is_null($curl_info)) {      
        $curl_info = curl_getinfo($ch);
        }
        
        curl_close($ch);        
        if ( preg_match('{
  • City : ([^<]*)
  • }i', $content, $regs) )           {                     $city = $regs[1];         }                 if ( preg_match('{
  • State/Province : ([^<]*)
  • }i', $content, $regs) )           {            $state = $regs[1];         }          if( $city!='' && $state!='' )         {                   $location = $city . ', ' . $state;                   return $location;         }         else         {                   return $default;          }              }

    语法:

    5. 获取 Web 页面的源代码

    使用下面的函数,可以获取任意 Web 页面的 HTML 代码。

    function display_sourcecode($url)
    {$lines = file($url);$output = "";
    foreach ($lines as $line_num => $line) 
    { 
        // loop thru each line and prepend line numbers
        $output.= "Line #{$line_num} : " . htmlspecialchars($line) . "
    n"; } }

    语法:

    6. 计算喜欢你的 Facebook 页面的用户
    function fb_fan_count($facebook_name)
    {    
    $data = json_decode(file_get_contents("https://graph.facebook.com/".$facebook_name));    
    $likes = $data->likes;    
    return $likes;
    }

    语法:

    7. 确定任意图片的主导颜色
    function dominant_color($image)
    {$i = imagecreatefromjpeg($image);for ($x=0;$x> 16) & 0xFF;        
    $g   = ($rgb >>  & 0xFF;        
    $b   = $rgb & 0xFF;        
    $rTotal += $r;        
    $gTotal += $g;        
    $bTotal += $b;        
    $total++;
        }
    }$rAverage = round($rTotal/$total);
    $gAverage = round($gTotal/$total);
    $bAverage = round($bTotal/$total);
    }
    8. whois 查询

    使用下面的函数可以获取任何域名用户的完整细节。

    function whois_query($domain) { 
        // fix the domain name:
        $domain = strtolower(trim($domain));    
        $domain = preg_replace('/^http:///i', '', $domain);    
        $domain = preg_replace('/^www./i', '', $domain);    
        $domain = explode('/', $domain);    $domain = trim($domain[0]); 
        // split the TLD from domain name
        $_domain = explode('.', $domain);    $lst = count($_domain)-1;    
        $ext = $_domain[$lst]; 
        // You find resources and lists 
        // like these on wikipedia: 
        //
        // http://de.wikipedia.org/wiki/Whois
        //
        $servers = array(        "biz" => "whois.neulevel.biz",
            "com" => "whois.internic.net",
            "us" => "whois.nic.us",
            "coop" => "whois.nic.coop",
            "info" => "whois.nic.info",
            "name" => "whois.nic.name",
            "net" => "whois.internic.net",
            "gov" => "whois.nic.gov",
            "edu" => "whois.internic.net",
            "mil" => "rs.internic.net",
            "int" => "whois.iana.org",
            "ac" => "whois.nic.ac",
            "ae" => "whois.uaenic.ae",
            "at" => "whois.ripe.net",
            "au" => "whois.aunic.net",
            "be" => "whois.dns.be",
            "bg" => "whois.ripe.net",
            "br" => "whois.registro.br",
            "bz" => "whois.belizenic.bz",
            "ca" => "whois.cira.ca",
            "cc" => "whois.nic.cc",
            "ch" => "whois.nic.ch",
            "cl" => "whois.nic.cl",
            "cn" => "whois.cnnic.net.cn",
            "cz" => "whois.nic.cz",
            "de" => "whois.nic.de",
            "fr" => "whois.nic.fr",
            "hu" => "whois.nic.hu",
            "ie" => "whois.domainregistry.ie",
            "il" => "whois.isoc.org.il",
            "in" => "whois.ncst.ernet.in",
            "ir" => "whois.nic.ir",
            "mc" => "whois.ripe.net",
            "to" => "whois.tonic.to",
            "tv" => "whois.tv",
            "ru" => "whois.ripn.net",
            "org" => "whois.pir.org",
            "aero" => "whois.information.aero",
            "nl" => "whois.domain-registry.nl"
        ); 
        if (!isset($servers[$ext])){        
        die('Error: No matching nic server found!');
        } 
        $nic_server = $servers[$ext]; 
        $output = ''; 
        // connect to whois server:
        if ($conn = fsockopen ($nic_server, 43)) {        
        fputs($conn, $domain."rn");        
        while(!feof($conn)) {            
        $output .= fgets($conn,128);
            }        
            fclose($conn);
        }    
        else { die('Error: Could not connect to ' . $nic_server . '!'); } 
        return $output;
    }

    语法:

    9. 验证邮箱地址

    有时候,当在网站填写表单,用户可能会输入错误的邮箱地址,这个函数可以验证邮箱地址是否有效。

    function is_validemail($email)
    {$check = 0;
    if(filter_var($email,FILTER_VALIDATE_EMAIL))
    {$check = 1;
    }return 
    $check;
    }

    语法:

    10. 获取用户的真实  IP
    function getRealIpAddr()  
    {  
        if (!emptyempty($_SERVER['HTTP_CLIENT_IP']))  
        {  
            $ip=$_SERVER['HTTP_CLIENT_IP'];  
        }  
        elseif (!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR']))  
        //to check ip is pass from proxy      {  
            $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];  
        }  
        else  
        {  
            $ip=$_SERVER['REMOTE_ADDR'];  
        }  
        return $ip;  
    }

    语法:

    
    
    原文作者:dreams7433
    原文链接:https://www.cnblogs.com/phperlinxinlan/p/8472425.html
    转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/227034.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号