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 和 MySQL 开发的 8 个技巧
Oct 09 PHP
PHP中time(),date(),mktime()区别介绍
Sep 28 PHP
php strnatcmp()函数的用法总结
Nov 27 PHP
php实现可以设置中奖概率的抽奖程序代码分享
Jan 19 PHP
PHP实现删除非站内外部链接实例代码
Jun 17 PHP
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
Jul 01 PHP
php防止伪造数据从地址栏URL提交的方法
Aug 24 PHP
PHP实现数组递归转义的方法
Aug 28 PHP
分享一个Laravel好用的Cache宏
Mar 02 PHP
php将数组存储为文本文件方法汇总
Oct 28 PHP
PHP PDOStatement::columnCount讲解
Jan 30 PHP
PHP 加密 Password Hashing API基础知识点
Mar 02 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无敌近乎加密方式!
2010/07/17 PHP
file_get_contents(&quot;php://input&quot;, &quot;r&quot;)实例介绍
2013/07/01 PHP
yii2中添加验证码的实现方法
2016/01/09 PHP
php简单创建zip压缩文件的方法
2016/04/30 PHP
php简单备份与还原MySql的方法
2016/05/09 PHP
golang、python、php、c++、c、java、Nodejs性能对比
2017/03/12 NodeJs
php正则表达式使用方法整理集合
2020/01/31 PHP
PHP解密支付宝小程序的加密数据、手机号的示例代码
2021/02/26 PHP
JS实现网页表格自动变大缩小的方法
2015/03/09 Javascript
JS三级可折叠菜单实现方法
2016/02/29 Javascript
原生JS实现《别踩白块》游戏(兼容IE)
2017/02/20 Javascript
JS仿JQuery选择器功能
2017/03/08 Javascript
利用JS实现简单的瀑布流加载图片效果
2017/04/22 Javascript
vue router下的html5 history在iis服务器上的设置方法
2017/10/18 Javascript
vue中使用elementUI组件手动上传图片功能
2019/12/13 Javascript
小程序瀑布流组件实现翻页与图片懒加载
2020/05/19 Javascript
Vue element-ui父组件控制子组件的表单校验操作
2020/07/17 Javascript
Python求解平方根的方法
2015/03/11 Python
python使用SMTP发送qq或sina邮件
2017/10/21 Python
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
python调用系统ffmpeg实现视频截图、http发送
2018/03/06 Python
解决keras模型保存h5文件提示无此目录问题
2020/07/01 Python
Python定时任务APScheduler安装及使用解析
2020/08/07 Python
阳光体育:Sunny Sports(购买露营和远足设备)
2018/08/07 全球购物
Bally澳大利亚官网:瑞士奢侈品牌
2018/11/01 全球购物
Saks Fifth Avenue澳洲/亚太地区:萨克斯第五大道精品百货店
2019/06/09 全球购物
CAT鞋加拿大官网:CAT Footwear加拿大
2020/08/05 全球购物
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
什么是网络协议
2016/04/07 面试题
市政施工员自我鉴定
2014/01/15 职场文书
培训专员岗位职责
2014/02/26 职场文书
实习生评语
2014/04/26 职场文书
小学综合实践活动总结
2014/07/07 职场文书
大学生见习报告范文
2014/11/03 职场文书
英文产品推荐信
2015/03/27 职场文书
浅析Python中的套接字编程
2021/06/22 Python