千家信息网

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

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"23个php实用代码片段编写方法教程",在日常操作中,相信很多人在23个php实用代码片段编写方法教程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"2
千家信息网最后更新 2026年11月02日23个php实用代码片段编写方法教程

这篇文章主要介绍"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 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;}

语法:

alert(1)";$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('{
  • 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."\r\n");    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; }

    语法:

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

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

    语法:

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

    语法:

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

    语法:

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

    语法:

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

    语法:

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

    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 ''.$file.''."\n";        }      }      closedir($handle);    }  }}

    语法:

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

    语法:

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

    语法 代码 片段 面的 文件 用户 函数 网站 实用 教程 方法 地址 数据 邮件 学习 帮助 检测 输入 时候 语言 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州百单互联网科技有限公司 互联网科技保险 科技互联网项目 河南真二互联网科技有限公司 互联网金融 科技金融 深圳互联网络科技有限公司 鑫亿盛互联网科技 广州紫鲸互联网科技 滨湖区互联网智能科技产品供应 互联网科技创新企业排名 深圳互联网科技怎么样 江苏南京365互联网科技 哈尔滨新华互联网科技学院 链环科技传统企业怎么转型互联网 互联网保险科技创业 四川慕妮娅互联网科技有限公司 互联网科技年终奖 新氧科技和美国互联网有关系吗 兰石爱特工业互联网科技分公司 北京互联网科技类企业分布 有格互联网科技 广州百单互联网科技有限公司 互联网女皇 腾讯科技 互联网科技公司有哪些 互联网科技英文翻译 国外互联网科技网站 华中科技有哪些互联网大佬 九思连强互联网电子科技有限公司 安徽九吞吴互联网科技有限公司 武汉亿视互联网科技有限公司
    0