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 相关文章推荐
使用数据库保存session的方法
Oct 09 PHP
function.inc.php超越php
Dec 09 PHP
利用static实现表格的颜色隔行显示的代码
Sep 02 PHP
浅析ThinkPHP中execute和query方法的区别
Jun 13 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
Mar 18 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
May 11 PHP
PHP Callable强制指定回调类型的方法
Aug 30 PHP
php表单加入Token防止重复提交的方法分析
Oct 10 PHP
PHP实现向关联数组指定的Key之前插入元素的方法
Jun 06 PHP
php实现批量上传数据到数据库(.csv格式)的案例
Jun 18 PHP
PHP策略模式定义与用法示例
Jul 27 PHP
PHP实现提取多维数组指定一列的方法总结
Dec 04 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 echo()和print()、require()和include()函数区别说明
2010/03/27 PHP
visual studio code 调试php方法(图文详解)
2017/09/15 PHP
在laravel框架中使用model层的方法
2019/10/08 PHP
侧栏跟随滚动的简单实现代码
2013/03/18 Javascript
jquery实现华丽的可折角广告代码
2015/09/02 Javascript
js创建数组的简单方法
2016/07/27 Javascript
JS简单生成两个数字之间随机数的方法
2016/08/03 Javascript
详解用node.js实现简单的反向代理
2017/06/26 Javascript
NodeJS实现图片上传代码(Express)
2017/06/30 NodeJs
React根据宽度自适应高度的示例代码
2017/10/11 Javascript
JS中利用FileReader实现上传图片前本地预览功能
2018/03/02 Javascript
JS实现的简单折叠展开动画效果示例
2018/04/28 Javascript
Vue.js结合bootstrap前端实现分页和排序效果
2018/12/29 Javascript
js中async函数结合promise的小案例浅析
2019/04/14 Javascript
JS实现水平移动与垂直移动动画
2019/12/19 Javascript
浅谈webpack和webpack-cli模块源码分析
2020/01/19 Javascript
vue select 获取value和lable操作
2020/08/28 Javascript
[15:56]Heroes18_暗影萨满(完美)
2014/10/31 DOTA
[47:35]VP vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
Python环境变量设置方法
2016/08/28 Python
Django自定义用户认证示例详解
2018/03/14 Python
Python列表list排列组合操作示例
2018/12/18 Python
详解使用python绘制混淆矩阵(confusion_matrix)
2019/07/14 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
2019/10/17 Python
python向图片里添加文字
2019/11/26 Python
pytorch中的自定义反向传播,求导实例
2020/01/06 Python
tensorflow之自定义神经网络层实例
2020/02/07 Python
波兰香水和化妆品购物网站:Notino.pl
2017/11/07 全球购物
美国第二大连锁书店:Books-A-Million
2017/12/28 全球购物
医药类个人求职的自我评价
2014/02/12 职场文书
2014年教研工作总结
2014/12/06 职场文书
紧急迫降观后感
2015/06/15 职场文书
领导莅临指导欢迎词
2015/09/30 职场文书
班主任经验交流心得体会
2015/11/02 职场文书
Vue实现跑马灯样式文字横向滚动
2021/11/23 Vue.js
Django + Taro 前后端分离项目实现企业微信登录功能
2022/04/07 Python