温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

23个php实用代码片段编写方法教程

发布时间:2021-09-29 11:32:11 来源:亿速云 阅读:172 作者:iii 栏目:开发技术

这篇文章主要介绍“23个php实用代码片段编写方法教程”,在日常操作中,相信很多人在23个php实用代码片段编写方法教程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”23个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 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); }

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

<?php $message = "Hello World"; $mobile = "918112998787"; send_sms($mobile,$message); ?>

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; ?>

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('{<li>City : ([^<]*)</li>}i', $content, $regs) ) {       $city = $regs[1];     }     if ( preg_match('{<li>State/Province : ([^<]*)</li>}i', $content, $regs) ) {       $state = $regs[1];     }            if( $city!='' && $state!='' ){      $location = $city . ', ' . $state;      return $location;     }else{      return $default;     }              }

语法:

<?php $ip = $_SERVER['REMOTE_ADDR']; $city = detect_city($ip); echo $city; ?>

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 #<b>{$line_num}</b> : " . htmlspecialchars($line) . "\n"; } }

语法:

<?php $url = "http://blog.koonk.com"; $source = display_sourcecode($url); echo $source; ?>

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; }

语法:

<?php $page = "koonktechnologies"; $count = fb_fan_count($page); echo $count; ?>

7. 确定任意图片的主导颜色

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); }

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."\r\n");     while(!feof($conn)) {       $output .= fgets($conn,128);     }     fclose($conn);   }   else { die('Error: Could not connect to ' . $nic_server . '!'); }         return $output; }

语法:

<?php $domain = "http://www.blog.koonk.com"; $result = whois_query($domain); print_r($result); ?>

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

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

语法:

<?php $email = "blog@koonk.com"; $check = is_validemail($email); echo $check; // If the output is 1, then email is valid. ?>

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;  }

语法:

<?php $ip = getRealIpAddr(); echo $ip; ?>

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

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

语法:

<?php $text = "This is my first post on http://blog.koonk.com"; $text = makeClickableLinks($text); echo $text; ?>

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

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

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

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

语法:

<php force_download("image.jpg"); ?>

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

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

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

function create_zip($files = array(),$destination = '',$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 'The zip archive contains ',$zip->numFiles,' files with a status of ',$zip->status;                //close the zip -- done!      $zip->close();                //check to make sure the file exists      return file_exists($destination);    }    else    {      return false;    }  }

语法:

<?php $files=array('file1.jpg', 'file2.jpg', 'file3.gif');  create_zip($files, 'myzipfile.zip', true); ?>

16. 解压文件

function unzip($location,$newLocation) {     if(exec("unzip $location",$arr)){       mkdir($newLocation);       for($i = 1;$i< count($arr);$i++){         $file = trim(preg_replace("~inflating: ~","",$arr[$i]));         copy($location.'/'.$file,$newLocation.'/'.$file);         unlink($location.'/'.$file);       }       return TRUE;     }else{       return FALSE;     } }

语法:

<?php unzip('test.zip','unziped/test'); //File would be unzipped in unziped/test folder ?>

17. 缩放图片

function resize_image($filename, $tmpname, $xmax, $ymax)  {    $ext = explode(".", $filename);    $ext = $ext[count($ext)-1];          if($ext == "jpg" || $ext == "jpeg")      $im = imagecreatefromjpeg($tmpname);    elseif($ext == "png")      $im = imagecreatefrompng($tmpname);    elseif($ext == "gif")      $im = imagecreatefromgif($tmpname);            $x = imagesx($im);    $y = imagesy($im);            if($x <= $xmax && $y <= $ymax)      return $im;          if($x >= $y) {      $newx = $xmax;      $newy = $newx * $y / $x;    }    else {      $newy = $ymax;      $newx = $x / $y * $newy;    }            $im2 = imagecreatetruecolor($newx, $newy);    imagecopyresized($im2, $im, 0, 0, 0, 0, floor($newx), floor($newy), $x, $y);    return $im2;  }

18. 使用 mail() 发送邮件
 之前我们提供了如何使用 Mandrill 发送邮件的 PHP 代码片段,但是如果你不想使用第三方服务,那么可以使用下面的 PHP 代码片段。

function send_mail($to,$subject,$body) { $headers = "From: KOONK\r\n"; $headers .= "Reply-To: blog@koonk.com\r\n"; $headers .= "Return-Path: blog@koonk.com\r\n"; $headers .= "X-Mailer: PHP5\n"; $headers .= 'MIME-Version: 1.0' . "\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; mail($to,$subject,$body,$headers); }

语法:

<?php $to = "admin@koonk.com"; $subject = "This is a test mail"; $body = "Hello World!"; send_mail($to,$subject,$body); ?>

19. 把秒转换成天数,小时数和分钟

function secsToStr($secs) {   if($secs>=86400){$days=floor($secs/86400);$secs=$secs%86400;$r=$days.' day';if($days<>1){$r.='s';}if($secs>0){$r.=', ';}}   if($secs>=3600){$hours=floor($secs/3600);$secs=$secs%3600;$r.=$hours.' hour';if($hours<>1){$r.='s';}if($secs>0){$r.=', ';}}   if($secs>=60){$minutes=floor($secs/60);$secs=$secs%60;$r.=$minutes.' minute';if($minutes<>1){$r.='s';}if($secs>0){$r.=', ';}}   $r.=$secs.' second';if($secs<>1){$r.='s';}   return $r; }

语法:

<?php $seconds = "56789"; $output = secsToStr($seconds); echo $output; ?>

20. 数据库连接
连接 MySQL 数据库

<?php $DBNAME = 'koonk'; $HOST = 'localhost'; $DBUSER = 'root'; $DBPASS = 'koonk'; $CONNECT = mysql_connect($HOST,$DBUSER,$DBPASS); if(!$CONNECT) {   echo 'MySQL Error: '.mysql_error(); } $SELECT = mysql_select_db($DBNAME); if(!$SELECT) {   echo 'MySQL Error: '.mysql_error(); } ?>

21. 目录清单
使用下面的 PHP 代码片段可以在一个目录中列出所有文件和文件夹

function list_files($dir) {   if(is_dir($dir))   {     if($handle = opendir($dir))     {       while(($file = readdir($handle)) !== false)       {         if($file != "." && $file != ".." && $file != "Thumbs.db"/*pesky windows, images..*/)         {           echo '<a target="_blank" href="'.$dir.$file.'">'.$file.'</a>'."\n";         }       }       closedir($handle);     }   } }

语法:

<?php   list_files("images/"); //This will list all files of images folder ?>

22. 检测用户语言
使用下面的 PHP 代码片段可以检测用户浏览器所使用的语言

function get_client_language($availableLanguages, $default='en'){   if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {     $langs=explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);     foreach ($langs as $value){       $choice=substr($value,0,2);       if(in_array($choice, $availableLanguages)){         return $choice;       }     }   }   return $default; }

23. 查看 CSV 文件

function readCSV($csvFile){   $file_handle = fopen($csvFile, 'r');   while (!feof($file_handle) ) {     $line_of_text[] = fgetcsv($file_handle, 1024);   }   fclose($file_handle);   return $line_of_text; }

语法:

<?php $csvFile = "test.csv"; $csv = readCSV($csvFile); $a = csv[0][0]; // This will get value of Column 1 & Row 1 ?>

到此,关于“23个php实用代码片段编写方法教程”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI