php实用代码片段整理


Posted in PHP onNovember 12, 2016

本文整理归纳了php实用代码片段。分享给大家供大家参考,具体如下:

一 从网页中提取关键词

$meta = get_meta_tags('https://3water.com/');
$keywords = $meta['keywords'];
// Split keywords
$keywords = explode(',', $keywords );
// Trim them
$keywords = array_map( 'trim', $keywords );
// Remove empty values
$keywords = array_filter( $keywords );
print_r( $keywords );

二 查找页面上的所有链接

使用DOM,你可以在任意页面上抓取链接,示例如下。

$html = file_get_contents('http://www.example.com');
$dom = new DOMDocument();
@$dom->loadHTML($html);
// grab all the on the page
$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate("/html/body//a");
for ($i = 0; $i < $hrefs->length; $i++) {
$href = $hrefs->item($i);
$url = $href->getAttribute('href');
echo $url.'<br />';
}

三 创建数据URI

数据URI可以帮助将图像嵌入到HTML/CSS/JS中,从而节省HTTP请求。下面的函数可以利用$file创建数据URI。

function data_uri($file, $mime) {
  $contents=file_get_contents($file);
  $base64=base64_encode($contents);
  echo "data:$mime;base64,$base64";
}

四 下载和保存远程图片到你的服务器

当你在搭建网站时,很可能会从远程服务器上下载图片保存到你自己的服务器上,下面的代码就可以帮助你实现这个功能。

$image = file_get_contents('http://www.php100.com/image.jpg');
file_put_contents('/images/image.jpg', $image); //Where to save the image

五 移除Microsoft Word HTML标签

当你使用Microsoft Word时,会创建很多标签tag,比如font、span、style、class等,这些标签在Word中十分有用,但当你从Word中把文本粘贴到网页上,就会出现很多没用的标签。下面实用的函数可以帮助你清除所有的Word HTML标签。

function cleanHTML($html) {
///
/// Removes all FONT and SPAN tags, and all Class and Style attributes.
/// Designed to get rid of non-standard Microsoft Word HTML tags.
///
// start by completely removing all unwanted tags
$html = ereg_replace("<(/)?(font|span|del|ins)[^>]*>","",$html);
// then run another pass over the html (twice), removing unwanted attributes
$html = ereg_replace("<([^>]*)(class|lang|style|size|face)=("[^"]*"|'[^']*'|[^>]+)([^>]*)>","<\1>",$html);
$html = ereg_replace("<([^>]*)(class|lang|style|size|face)=("[^"]*"|'[^']*'|[^>]+)([^>]*)>","<\1>",$html);
return $html
}

六 检测浏览器语言

如果你的网站是多种语言的,下面的代码可以帮助你检测浏览器语言,它会返回客户端浏览器的默认语言。

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

七 保存请求信息到本地

file_put_contents('/tmp/all.log','mapping'.date("m-d H:i:s")."\n",FILE_APPEND);

八 excel相互转换日期
//如果去获取某个excel日期(格式为:2016-03-12),那么获取到的是数字,需要经过转换才能恢复
public function excelTime($date, $time = false) {
  if(function_exists('GregorianToJD')){
    if (is_numeric( $date )) {
    $jd = GregorianToJD( 1, 1, 1970 );
    $gregorian = JDToGregorian( $jd + intval ( $date ) - 25569 );
    $date = explode( '/', $gregorian );
    $date_str = str_pad( $date [2], 4, '0', STR_PAD_LEFT )
    ."-". str_pad( $date [0], 2, '0', STR_PAD_LEFT )
    ."-". str_pad( $date [1], 2, '0', STR_PAD_LEFT )
    . ($time ? " 00:00:00" : '');
    return $date_str;
    }
  }else{
    // $date=$date>25568? $date+1:25569;
    /*There was a bug if Converting date before 1-1-1970 (tstamp 0)*/
    $ofs=(70 * 365 + 17+2) * 86400;
    $date = date("Y-m-d",($date * 86400) - $ofs).($time ? " 00:00:00" : '');
    return $date;
  }
}

九 json与数据相互转换

1 json转换成数组

$json = '[{"id":"22","name":"33","descn":"44"}]'; //json格式的数组转换成 php的数组
$arr = (Array)json_decode($json);
echo $arr[0]->id; //用对象的方式访问(这种是没有转换成数组,而是转换成对象的情况

2 数组转换成json

$json_arr = array('WebName'=>'11','WebSite'=>'11');
$php_json = json_encode($json_arr); //把php数组格式转换成 json 格式的数据
echo $php_json;

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
BBS(php &amp; mysql)完整版(八)
Oct 09 PHP
php+mysql分页代码详解
Mar 27 PHP
php快速url重写 更新版[需php 5.30以上]
Apr 20 PHP
用PHP为SHOPEX增加日志功能代码
Jul 02 PHP
apache+php完美解决301重定向的两种方法
Jun 08 PHP
php使用异或实现的加密解密实例
Sep 04 PHP
PHP常用技术文之文件操作和目录操作总结
Sep 27 PHP
php获取ajax的headers方法与内容实例
Dec 27 PHP
PHP实现数组转JSon和JSon转数组的方法示例
Jun 14 PHP
django中的ajax组件教程详解
Oct 18 PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
Jun 12 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
Feb 29 PHP
php中strlen和mb_strlen用法实例分析
Nov 12 #PHP
Yii2单元测试用法示例
Nov 12 #PHP
php获取flash尺寸详细数据的方法
Nov 12 #PHP
Yii2实现log输出到file及database的方法
Nov 12 #PHP
php 自定义错误日志实例详解
Nov 12 #PHP
ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法
Nov 12 #PHP
php array_values 返回数组的所有值详解及实例
Nov 12 #PHP
You might like
Apache设置虚拟WEB
2006/10/09 PHP
深入解析PHP垃圾回收机制对内存泄露的处理
2013/06/14 PHP
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
ExtJS 2.0实用简明教程 之获得ExtJS
2009/04/29 Javascript
setInterval()和setTimeout()的用法和区别示例介绍
2013/11/17 Javascript
使用jQuery实现的掷色子游戏动画效果
2014/03/14 Javascript
jquery和css3实现的炫酷时尚的菜单导航
2014/09/01 Javascript
JQuery中DOM事件冒泡实例分析
2015/06/13 Javascript
jquery实现顶部向右伸缩的导航区域代码
2015/09/02 Javascript
Bootstrap零基础入门教程(二)
2016/07/18 Javascript
Javascript 实现简单计算器实例代码
2016/10/23 Javascript
基于AngularJS实现表单验证功能
2017/07/28 Javascript
JS数组操作之增删改查的简单实现
2017/08/21 Javascript
JS获取一个表单字段中多条数据并转化为json格式
2017/10/17 Javascript
vue-router实现组件间的跳转(参数传递)
2017/11/07 Javascript
vue中的inject学习教程
2019/04/24 Javascript
2020京东618叠蛋糕js脚本(亲测好用)
2020/06/02 Javascript
封装 axios+promise通用请求函数操作
2020/08/11 Javascript
python自动化工具日志查询分析脚本代码实现
2013/11/26 Python
python实现将html表格转换成CSV文件的方法
2015/06/28 Python
python中函数总结之装饰器闭包详解
2016/06/12 Python
python输入整条数据分割存入数组的方法
2018/11/13 Python
Python Web版语音合成实例详解
2019/07/16 Python
python 实现一个反向单位矩阵示例
2019/11/29 Python
python处理RSTP视频流过程解析
2020/01/11 Python
Python pytesseract验证码识别库用法解析
2020/06/29 Python
Keras实现DenseNet结构操作
2020/07/06 Python
突袭HTML5之Javascript API扩展2—地理信息服务及地理位置API学习
2013/01/31 HTML / CSS
struct和class的区别
2015/11/20 面试题
商务英语毕业生自荐信范文
2013/11/08 职场文书
股东协议书范本
2014/04/14 职场文书
数据保密承诺书
2014/06/03 职场文书
农村环境卫生倡议书
2015/04/29 职场文书
上学路上观后感
2015/06/16 职场文书
小学感恩主题班会
2015/08/12 职场文书
Win10/Win11 任务栏替换成经典样式
2022/04/19 数码科技