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文件上传实例详解!!!
Jan 02 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
Jun 02 PHP
解析smarty 截取字符串函数 truncate的用法介绍
Jun 20 PHP
Codeigniter中mkdir创建目录遇到权限问题和解决方法
Jul 25 PHP
PHP判断手机是IOS还是Android
Dec 09 PHP
Yii中CGridView实现批量删除的方法
Dec 28 PHP
PHP使用Mysqli类库实现完美分页效果的方法
Apr 07 PHP
PHP导出带样式的Excel示例代码
Aug 28 PHP
PHP基于redis计数器类定义与用法示例
Feb 08 PHP
php 广告点击统计代码(php+mysql)
Feb 21 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
Jul 26 PHP
Laravel自动生成UUID,从建表到使用详解
Oct 24 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
递归列出所有文件和目录
2006/10/09 PHP
php获取中文拼音首字母类和函数分享
2014/04/24 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
2014/07/08 PHP
yii2.0数据库迁移教程【多个数据库同时同步数据】
2016/10/08 PHP
php微信开发之百度天气预报
2016/11/18 PHP
splice slice区别
2006/10/09 Javascript
基于MooTools的很有创意的滚动条时钟动画
2010/11/14 Javascript
将两个div左右并列显示并实现点击标题切换内容
2013/10/22 Javascript
JS替换字符串中字符即替换全部而不是第一个
2014/06/04 Javascript
jQuery实现选中弹出窗口选择框内容后赋值给文本框的方法
2015/11/23 Javascript
jQuery改变form表单的action,并进行提交的实现代码
2016/05/25 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
2016/06/09 Javascript
jstree单选功能的实现方法
2017/06/07 Javascript
详解vue-cli与webpack结合如何处理静态资源
2017/09/19 Javascript
jQuery的Ajax接收java返回数据方法
2018/08/11 jQuery
Nodejs技巧之Exceljs表格操作用法示例
2019/11/06 NodeJs
javascript实现前端成语点击验证优化
2020/06/24 Javascript
[16:56]教你分分钟做大人:司夜刺客
2014/10/30 DOTA
python 实现堆排序算法代码
2012/06/05 Python
基于Python的身份证号码自动生成程序
2014/08/15 Python
Python的ORM框架中SQLAlchemy库的查询操作的教程
2015/04/25 Python
简要讲解Python编程中线程的创建与锁的使用
2016/02/28 Python
Python爬取十篇新闻统计TF-IDF
2018/01/03 Python
Python实现的多叉树寻找最短路径算法示例
2018/07/30 Python
解决在Python编辑器pycharm中程序run正常debug错误的问题
2019/01/17 Python
Python OpenCV实现鼠标画框效果
2020/08/19 Python
Python 爬虫的原理
2020/07/30 Python
html5中为audio标签增加停止按钮动作实现方法
2013/01/04 HTML / CSS
Nuts.com:优质散装,批发坚果、干果和巧克力等
2017/03/21 全球购物
世界领先的26岁以下学生和青少年旅行预订网站:StudentUniverse
2018/07/01 全球购物
护理学专业推荐信
2013/12/03 职场文书
大学生自我鉴定
2013/12/16 职场文书
2014年上半年工作自我评价
2014/01/18 职场文书
临床医学生职业规划书范文
2014/10/25 职场文书
追悼会悼词大全
2015/06/23 职场文书
httpclient调用远程接口的方法
2022/08/14 Java/Android