必须收藏的23个php实用代码片段


Posted in PHP onFebruary 02, 2016

在编写代码的时候有个神奇的工具总是好的!下面这里收集了 40+ PHP 代码片段,可以帮助你开发 PHP 项目。
这些 PHP 片段对于 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
?>

以上就是本文的全部内容,希望对大家的学习有所帮助。

PHP 相关文章推荐
桌面中心(四)数据显示
Oct 09 PHP
杏林同学录(七)
Oct 09 PHP
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
Jun 04 PHP
php启动时候提示PHP startup的解决方法
May 07 PHP
php将图片保存为不同尺寸图片的图片类实例
Mar 30 PHP
php简单实现快速排序的方法
Apr 04 PHP
php随机获取金山词霸每日一句的方法
Jul 09 PHP
浅谈PHP链表数据结构(单链表)
Jun 08 PHP
php中通过eval实现字符串格式的计算公式
Mar 18 PHP
PHP随机获取未被微信屏蔽的域名(微信域名检测)
Mar 19 PHP
PHP中trait使用方法详细介绍
May 21 PHP
Laravel中9个不经常用的小技巧汇总
Apr 16 PHP
如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )
Feb 01 #PHP
PHP自带方法验证邮箱是否存在
Feb 01 #PHP
YII CLinkPager分页类扩展增加显示共多少页
Jan 29 #PHP
实例详解PHP中html word 互转的方法
Jan 28 #PHP
PHP Curl模拟登录微信公众平台、新浪微博实例代码
Jan 28 #PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
Jan 27 #PHP
PHP文件上传之多文件上传的实现思路
Jan 27 #PHP
You might like
PHP时间格式控制符对照表分享
2013/07/23 PHP
php装饰者模式简单应用案例分析
2019/10/23 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
Yii中特殊行为ActionFilter的使用方法示例
2020/10/18 PHP
Stop SQL Server
2007/06/21 Javascript
javascript 动态数据下的锚点错位问题解决方法
2008/12/24 Javascript
parentElement,srcElement的使用小结
2014/01/13 Javascript
js 获取、清空input type=&quot;file&quot;的值示例代码
2014/02/19 Javascript
jQuery实现异步获取json数据的2种方式
2014/08/29 Javascript
探讨js字符串数组拼接的性能问题
2014/10/11 Javascript
JavaScript 变量、作用域及内存
2015/04/08 Javascript
JS制作类似选项卡切换的年历
2016/12/03 Javascript
JS高级运动实例分析
2016/12/20 Javascript
图解Javascript——作用域、作用域链、闭包
2017/03/21 Javascript
解决node-sass偶尔安装失败的方法小结
2018/12/05 Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
2019/02/17 Javascript
详解vue 不同环境配置不同的打包命令
2019/04/07 Javascript
JavaScript中将值转换为字符串的五种方法总结
2019/06/06 Javascript
JavaScript数组去重实现方法小结
2020/01/17 Javascript
JS数组方法push()、pop()用法实例分析
2020/01/18 Javascript
[46:44]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
Python科学计算环境推荐——Anaconda
2014/06/30 Python
Python随机数random模块使用指南
2016/09/09 Python
python中字符串类型json操作的注意事项
2017/05/02 Python
win8下python3.4安装和环境配置图文教程
2018/07/31 Python
pygame库实现俄罗斯方块小游戏
2019/10/29 Python
python传到前端的数据,双引号被转义的问题
2020/04/03 Python
Python实现CAN报文转换工具教程
2020/05/05 Python
html5 canvas-1.canvas介绍(hello canvas)
2013/01/07 HTML / CSS
优秀员工评语
2014/02/10 职场文书
捐款倡议书怎么写
2014/05/13 职场文书
2014大学班主任工作总结
2014/11/08 职场文书
先进个人主要事迹范文
2015/11/04 职场文书
2016年度师德标兵先进事迹材料
2016/02/26 职场文书
剖析后OpLog订阅MongoDB的数据变更就没那么难了
2022/02/24 MongoDB
Pandas-DataFrame知识点汇总
2022/03/16 Python