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 相关文章推荐
用PHP制作静态网站的模板框架(一)
Oct 09 PHP
php array_unique之后json_encode需要注意
Jan 02 PHP
ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法
Jul 01 PHP
Thinkphp关闭缓存的方法
Jun 26 PHP
PHP的运行机制与原理(底层)
Nov 16 PHP
php创建桌面快捷方式实现方法
Dec 31 PHP
必须收藏的php实用代码片段
Feb 02 PHP
php图片上传类 附调用方法
May 15 PHP
php连接oracle数据库的核心步骤
May 26 PHP
[原创]php token使用与验证示例【测试可用】
Aug 30 PHP
PHP设计模式之工厂方法设计模式实例分析
Apr 25 PHP
laravel 去掉index.php伪静态的操作方法
Oct 12 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
php access 数据连接与读取保存编辑数据的实现代码
2010/05/12 PHP
解析PHPExcel使用的常用说明以及把PHPExcel整合进CI框架的介绍
2013/06/24 PHP
PHP输出九九乘法表代码实例
2015/03/27 PHP
php设计模式之适配器模式原理、用法及注意事项详解
2019/09/24 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
js constructor的实际作用分析
2011/11/15 Javascript
如何使Chrome控制台支持多行js模式——意外发现
2013/06/13 Javascript
JQuery中使用.each()遍历元素学习笔记
2014/11/08 Javascript
深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解
2015/03/05 Javascript
jquery siblings获取同辈元素用法实例分析
2016/07/25 Javascript
关于JavaScript限制字数的输入框的那些事
2016/08/14 Javascript
详解Javascript中的原型OOP
2016/10/12 Javascript
浅述节点的创建及常见功能的实现
2016/12/15 Javascript
vue.js中Vue-router 2.0基础实践教程
2017/05/08 Javascript
基于BootStrap的前端分页带省略号和上下页效果
2017/05/18 Javascript
Angularjs实现上传图片预览功能
2017/09/01 Javascript
利用jsonp与代理服务器方案解决跨域问题
2017/09/14 Javascript
JS实现百度搜索接口及链接功能实例代码
2018/02/02 Javascript
Layui Form 自定义验证的实例代码
2019/09/14 Javascript
JavaScript实现省市区三级联动
2020/02/13 Javascript
Vue路由守卫及页面登录权限控制的设置方法(两种)
2020/03/31 Javascript
[01:17]炒鸡美酒第四天TA暴走
2018/06/05 DOTA
Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)
2017/06/27 Python
Flask之pipenv虚拟环境的实现
2019/11/26 Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
2020/02/16 Python
python多项式拟合之np.polyfit 和 np.polyld详解
2020/02/18 Python
柏林通行证:Berlin Pass
2018/04/11 全球购物
Bose加拿大官方网站:美国知名音响品牌
2019/03/21 全球购物
财务管理专业应届毕业生求职信
2013/09/22 职场文书
播音主持女孩的自我评价分享
2013/11/20 职场文书
测控技术与通信工程毕业生自荐信范文
2013/12/28 职场文书
2014年端午节演讲稿范文
2014/05/23 职场文书
2014离婚协议书范文两篇
2014/09/15 职场文书
刑事上诉状(无罪)
2015/05/23 职场文书
mysql 如何获取两个集合的交集/差集/并集
2021/06/08 MySQL
js中Map和Set的用法及区别实例详解
2022/02/15 Javascript