博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP实用代码片段(二)
阅读量:4460 次
发布时间:2019-06-08

本文共 5239 字,大约阅读时间需要 17 分钟。

1. 转换 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;  }

语法:

2. 阻止多个 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;}

3. 强制性文件下载

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

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

语法:

4. 创建 JSON 数据

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

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

5. 压缩 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;      }  }

语法:

6. 解压文件

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

语法:

7. 缩放图片

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

8. 使用 mail() 发送邮件

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

语法:

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

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

语法:

10. 数据库连接

连接 MySQL 数据库

 

转载于:https://www.cnblogs.com/phperlinxinlan/p/8473043.html

你可能感兴趣的文章
使用LINQ的Skip和Take函数分批获取数据
查看>>
IP通信基础 4月1日
查看>>
KeyProvider
查看>>
空指针为什么能调用成员函数?
查看>>
用MySQL的存储过程来实现一些经典函数
查看>>
React (2) -- State and Lifecycle
查看>>
【转】在EmEditor上编译并运行JAVA
查看>>
关于SqlDateTime溢出的问题
查看>>
jquery下php与ajax的数据交换方式
查看>>
魅蓝Note有几种颜色 魅蓝Note哪个颜色好看
查看>>
使用PullToRefresh实现下拉刷新和上拉加载
查看>>
透明度百分比与十六进制转换
查看>>
HBase表预分区
查看>>
NSBundle,UIImage,UIButton的使用
查看>>
vue-cli3 中console.log报错
查看>>
GridView 中Item项居中显示
查看>>
UML类图五种关系与代码的对应关系
查看>>
如何理解作用域
查看>>
从无到满意offer,你需要知道的那些事
查看>>
P1516 青蛙的约会 洛谷
查看>>