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 相关文章推荐
Content-type 的说明
Oct 09 PHP
php 无限级 SelectTree 类
May 19 PHP
php中在PDO中使用事务(Transaction)
May 14 PHP
php ios推送(代码)
Jul 01 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
Jul 25 PHP
ThinkPHP自动转义存储富文本编辑器内容导致读取出错的解决方法
Aug 08 PHP
php插入排序法实现数组排序实例
Feb 16 PHP
PHP序列化操作方法分析
Sep 28 PHP
PHP验证终端类型是否为手机的简单实例
Feb 07 PHP
完美解决在ThinkPHP控制器中命名空间的问题
May 05 PHP
iis6手工创建网站后无法运行php脚本的解决方法
Jun 08 PHP
PHP基于自定义类随机生成姓名的方法示例
Aug 05 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支持页面回退的两种方法
2008/01/10 PHP
PHP数据类型之布尔型的介绍
2013/04/28 PHP
php实现用于验证所有类型的信用卡类
2015/03/24 PHP
PHP获取数组中指定的一列实例
2017/12/27 PHP
List Installed Software Features
2007/06/11 Javascript
给jQuery方法添加回调函数一款插件的应用
2013/01/21 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
2013/02/05 Javascript
利用JS解决ie6不支持max-width,max-height问题的方法
2014/01/02 Javascript
jQuery实现在下拉列表选择时获取json数据的方法
2015/04/16 Javascript
JS实现的在线调色板实例(附demo源码下载)
2016/03/01 Javascript
基于Nodejs利用socket.io实现多人聊天室
2017/02/22 NodeJs
nodejs获取微信小程序带参数二维码实现代码
2017/04/12 NodeJs
uploader秒传图片到服务器完整代码
2017/04/22 Javascript
轻松理解vue的双向数据绑定问题
2017/10/30 Javascript
JavaScript使用递归和循环实现阶乘的实例代码
2018/08/28 Javascript
分享5个小技巧让你写出更好的 JavaScript 条件语句
2018/10/20 Javascript
Easyui 关闭jquery-easui tab标签页前触发事件的解决方法
2019/04/28 jQuery
vue-router之实现导航切换过渡动画效果
2019/10/31 Javascript
详解JavaScript中精度失准问题及解决方法
2020/02/04 Javascript
vue+高德地图实现地图搜索及点击定位操作
2020/09/09 Javascript
python每隔N秒运行指定函数的方法
2015/03/16 Python
初步理解Python进程的信号通讯
2015/04/09 Python
python执行get提交的方法
2015/04/29 Python
浅析Python基础-流程控制
2016/03/18 Python
python使用xslt提取网页数据的方法
2018/02/23 Python
python 实现对文件夹内的文件排序编号
2018/04/12 Python
python爬虫租房信息在地图上显示的方法
2019/05/13 Python
Python排序函数的使用方法详解
2020/12/11 Python
python如何用matplotlib创建三维图表
2021/01/26 Python
舞会礼服和舞会鞋:PromGirl
2019/04/22 全球购物
中专毕业个人的自荐信格式
2013/09/21 职场文书
购房协议书范本
2014/04/11 职场文书
倡导文明标语
2014/06/16 职场文书
运动会稿件100字
2014/09/24 职场文书
整改通知书
2015/04/20 职场文书
委托开发合同书(标准版)
2019/08/07 职场文书