Home  >  Article  >  Backend Development  >  46 Very Useful PHP Code Snippets (1)

46 Very Useful PHP Code Snippets (1)

黄舟
黄舟Original
2016-12-21 09:14:061480browse

It’s always good to have a magical tool when writing code! Here is a collection of 40+ php code snippets to help you develop PHP projects.

These PHP snippets are also very helpful for PHP beginners and are very easy to learn. Let’s start learning~

1. Send SMS

When developing web or mobile applications, you often encounter the need to send SMS to users , either for login reasons or to send information. The following PHP code implements the function of sending SMS.

In order to send SMS in any language, an SMS gateway is required. Most SMS will provide an API, here MSG91 is used as the SMS gateway.

[Code]php code:

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 verification
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  
  
//get response
$output = curl_exec($ch);
//Print error if any
if(curl_errno($ch))
{
    echo 'error:' . curl_error($ch);
}
  
curl_close($ch);
}

Among them, "$authKey = "XXXXXXXXXXX";" requires you to enter your password, and "$senderId = "IKOONK";" requires you to enter your SenderID. When entering a mobile number, you need to specify the country code (for example, 1 for the United States, 91 for India).

Syntax:

e1b0111affb0236716bf7a07bfa48dc7

2. Use mandrill Send Email

Mandrill is a powerful SMTP provider. Developers tend to use a third-party SMTP provider for better inbox delivery.

In the following function, you need to put "Mandrill.php" in the same folder as a PHP file, so that you can use TA to send emails.

[Code]php code:

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"Here you need to specify your API key (obtained from Mandrill account).

Syntax:

< ;?php

$to = "abc@example.com";

$subject = "This is a test email";

$message = "Hello World!";

send_email($to,$subject, $message);

?>

In order to achieve the best results, it is best to follow Mandrill’s tutorial to configure DNS.

3. PHP function: prevent SQL injection

SQL injection or SQLi are common means of attacking websites. , using the code below can help you prevent these tools.

[code]php code:

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, &#39;UTF-8&#39;);
    }
// return the clean text
    return $output;
}

Syntax:

e7146280834bc229a41051bcd36fa435alert(1)2cacc6d41bbb37262a98f745aa00fbf0 ";

$text = clean($text);

echo $text;

?>

4. Detect user location

Use the following function to detect the city from which the user visits your website

[Code]php code:

function detect_city($ip) {
         
        $default = &#39;UNKNOWN&#39;;
  
        $curlopt_useragent = &#39;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)&#39;;
         
        $url = &#39;http://ipinfodb.com/ip_locator.php?ip=&#39; . 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         => &#39;http://&#39; . $_SERVER[&#39;HTTP_HOST&#39;],
        );
         
        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(&#39;{<li>City : ([^<]*)</li>}i&#39;, $content, $regs) )  {
            $city = $regs[1];
        }
        if ( preg_match(&#39;{<li>State/Province : ([^<]*)</li>}i&#39;, $content, $regs) )  {
            $state = $regs[1];
        }
  
        if( $city!=&#39;&#39; && $state!=&#39;&#39; ){
          $location = $city . &#39;, &#39; . $state;
          return $location;
        }else{
          return $default; 
        }
         
    }

Syntax:

75b9da6e4a43cc9ff71fb65b08a2d96d

5. Get the source code of the Web page

Use the following function to get the HTML code of any Web page

[code]php code:

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

Syntax:

9146c9215c911218ede08e69db98db2b

6. Count likes for your Facebook page User

[Code]php code:

function fb_fan_count($facebook_name)
{
    $data = json_decode(file_get_contents("https://graph.facebook.com/".$facebook_name));
    $likes = $data->likes;
    return $likes;
}

Syntax:

85941b6a736c7d057c12cd286c7da75f

7. Determine the dominant color of any image

[code]php code:

function dominant_color($image)
{
$i = imagecreatefromjpeg($image);
for ($x=0;$x<imagesx($i);$x++) {="" for="" ($y="0;$y<imagesy($i);$y++)" $rgb="imagecolorat($i,$x,$y);" $r="($rgb">> 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);
}</imagesx($i);$x++)>

8. Whois query

Use the function below to get complete details of any domain user

[code]php code:

function whois_query($domain) {
  
    // fix the domain name:
    $domain = strtolower(trim($domain));
    $domain = preg_replace(&#39;/^http:\/\//i&#39;, &#39;&#39;, $domain);
    $domain = preg_replace(&#39;/^www\./i&#39;, &#39;&#39;, $domain);
    $domain = explode(&#39;/&#39;, $domain);
    $domain = trim($domain[0]);
  
    // split the TLD from domain name
    $_domain = explode(&#39;.&#39;, $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(&#39;Error: No matching nic server found!&#39;);
    }
  
    $nic_server = $servers[$ext];
  
    $output = &#39;&#39;;
  
    // connect to whois server:
    if ($conn = fsockopen ($nic_server, 43)) {
        fputs($conn, $domain."\r\n");
        while(!feof($conn)) {
            $output .= fgets($conn,128);
        }
        fclose($conn);
    }
    else { die(&#39;Error: Could not connect to &#39; . $nic_server . &#39;!&#39;); }
  
    return $output;
}

Syntax:

1e0317b4e9afe4094caa8dee60fff09d

9. Verify email address

Sometimes, when filling out a form on a website, the user may enter an incorrect email address. This function can verify whether the email address is valid.

[Code]php code:

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

Syntax:

60044fe8417fc863f96edf96d59841ac

10. 获取用户的真实  IP

[代码]php代码:

function getRealIpAddr()  
{  
    if (!emptyempty($_SERVER[&#39;HTTP_CLIENT_IP&#39;]))  
    {  
        $ip=$_SERVER[&#39;HTTP_CLIENT_IP&#39;];  
    }  
    elseif (!emptyempty($_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;]))  
    //to check ip is pass from proxy  
    {  
        $ip=$_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;];  
    }  
    else  
    {  
        $ip=$_SERVER[&#39;REMOTE_ADDR&#39;];  
    }  
    return $ip;  
}

语法:

9c089c1b032d5d3e8774c3b562b7d772

11. 转换 URL:从字符串变成超链接

如果你正在开发论坛,博客或者是一个常规的表单提交,很多时候都要用户访问一个网站。使用这个函数,URL 字符串就可以自动的转换为超链接。

[代码]php代码:

function makeClickableLinks($text) 
{  
 $text = eregi_replace(&#39;(((f|ht){1}tp://)[-a-zA-Z0-9@:%_+.~#?&//=]+)&#39;,  
 &#39;<a href="\1">\1</a>&#39;, $text);  
 $text = eregi_replace(&#39;([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_+.~#?&//=]+)&#39;,  
 &#39;\1<a href="http://\2">\2</a>&#39;, $text);  
 $text = eregi_replace(&#39;([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})&#39;,  
 &#39;<a href="mailto:\1">\1</a>&#39;, $text);  
   
return $text;

语法:

794adf657d97aff47bc7927f295b5895

12. 阻止多个 IP 访问你的网站

这个代码片段可以方便你禁止某些特定的 IP 地址访问你的网站

[代码]php代码:

if ( !file_exists(&#39;blocked_ips.txt&#39;) ) {
 $deny_ips = array(
  &#39;127.0.0.1&#39;,
  &#39;192.168.1.1&#39;,
  &#39;83.76.27.9&#39;,
  &#39;192.168.1.163&#39;
 );
} else {
 $deny_ips = file(&#39;blocked_ips.txt&#39;);
}
// read user ip adress:
$ip = isset($_SERVER[&#39;REMOTE_ADDR&#39;]) ? trim($_SERVER[&#39;REMOTE_ADDR&#39;]) : &#39;&#39;;
  
// search current IP in $deny_ips array
if ( (array_search($ip, $deny_ips))!== FALSE ) {
 // address is blocked:
 echo &#39;Your IP adress (&#39;.$ip.&#39;) was blocked!&#39;;
 exit;
}

13. 强制性文件下载

如果你需要下载特定的文件而不用另开新窗口,下面的代码片段可以帮助你。

[代码]php代码:

function force_download($file) 
{ 
    $dir      = "../log/exports/"; 
    if ((isset($file))&&(file_exists($dir.$file))) { 
       header("Content-type: application/force-download"); 
       header(&#39;Content-Disposition: inline; filename="&#39; . $dir.$file . &#39;"&#39;); 
       header("Content-Transfer-Encoding: Binary"); 
       header("Content-length: ".filesize($dir.$file)); 
       header(&#39;Content-Type: application/octet-stream&#39;); 
       header(&#39;Content-Disposition: attachment; filename="&#39; . $file . &#39;"&#39;); 
       readfile("$dir$file"); 
    } else { 
       echo "No file selected"; 
    } 
}

语法:

3a8cb7f761becb9db2e161aa2a765c61

14. 创建 JSON 数据

使用下面的 PHP 片段可以创建 JSON 数据,可以方便你创建移动应用的 Web 服务

$json_data = array ('id'=>1,'name'=>"Mohit");

echo json_encode($json_data);

15. 压缩 zip 文件

使用下面的 PHP 片段可以即时压缩 zip 文件

[代码]php代码:

function create_zip($files = array(),$destination = &#39;&#39;,$overwrite = false) {  
    //if the zip file already exists and overwrite is false, return false  
    if(file_exists($destination) && !$overwrite) { return false; }  
    //vars  
    $valid_files = array();  
    //if files were passed in...  
    if(is_array($files)) {  
        //cycle through each file  
        foreach($files as $file) {  
            //make sure the file exists  
            if(file_exists($file)) {  
                $valid_files[] = $file;  
            }  
        }  
    }  
    //if we have good files...  
    if(count($valid_files)) {  
        //create the archive  
        $zip = new ZipArchive();  
        if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {  
            return false;  
        }  
        //add the files  
        foreach($valid_files as $file) {  
            $zip->addFile($file,$file);  
        }  
        //debug  
        //echo &#39;The zip archive contains &#39;,$zip->numFiles,&#39; files with a status of &#39;,$zip->status;  
           
        //close the zip -- done!  
        $zip->close();  
           
        //check to make sure the file exists  
        return file_exists($destination);  
    }  
    else  
    {  
        return false;  
    }  
}

语法:

3cb669f4efda051f9550154fbe08f9f1

 以上就是46 个非常有用的 PHP 代码片段(一)的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn