9个比较实用的php代码片段


Posted in PHP onMarch 15, 2016

比较有用的php代码片段,分享给大家供大家参考,具体代码如下

一、从网页中提取关键词

$meta = get_meta_tags('http://www.emoticode.net/');
$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 相关文章推荐
vBulletin Forum 2.3.xx SQL Injection
Oct 09 PHP
PHP print类函数使用总结
Jun 25 PHP
PHP explode()函数用法、切分字符串
Oct 03 PHP
2014年10个最佳的PHP图像操作库
Jul 14 PHP
从零开始学YII2框架(四)扩展插件yii2-kartikgii
Aug 20 PHP
PHP生成器简单实例
May 13 PHP
Smarty简单生成表单元素的方法示例
May 23 PHP
PHP页面跳转操作实例分析(header方法)
Sep 28 PHP
使用Codeigniter重写insert的方法(推荐)
Mar 23 PHP
PHP实现链式操作的三种方法详解
Nov 16 PHP
PHP时间处理类操作示例
Sep 05 PHP
PHP使用DOM对XML解析处理操作示例
Jul 04 PHP
Laravel使用Caching缓存数据减轻数据库查询压力的方法
Mar 15 #PHP
php图片添加文字水印实现代码
Mar 15 #PHP
PHP闭包函数传参及使用外部变量的方法
Mar 15 #PHP
Yii rules常用规则示例
Mar 15 #PHP
基于laravel制作APP接口(API)
Mar 15 #PHP
使用Composer安装Yii框架的方法
Mar 15 #PHP
Yii使用migrate命令执行sql语句的方法
Mar 15 #PHP
You might like
php中将数组转成字符串并保存到数据库中的函数代码
2013/09/29 PHP
主流PHP框架的优缺点对比分析
2014/12/25 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
在Laravel的Model层做数据缓存的实现
2019/09/26 PHP
JavaScript Perfection kill 测试及答案
2010/03/23 Javascript
AJAX 网页保留浏览器前进后退等功能
2011/02/12 Javascript
js控制input框只读实现示例
2014/01/20 Javascript
javascript中定义私有方法说明(private method)
2014/01/27 Javascript
extjs每个组件要设置唯一的ID否则会出错
2014/06/15 Javascript
jQuery中:not选择器用法实例
2014/12/30 Javascript
js密码强度检测
2016/01/07 Javascript
JS实现控制文本框的内容
2016/07/10 Javascript
JS表单验证方法实例小结【电话、身份证号、Email、中文、特殊字符、身份证号等】
2017/02/14 Javascript
JavaScript自定义文本框光标
2017/03/05 Javascript
BootStrap daterangepicker 双日历控件
2017/06/02 Javascript
Angularjs上传图片实例详解
2017/08/06 Javascript
配置一个vue3.0项目的完整步骤
2019/04/26 Javascript
layui时间控件选择时间范围的实现方法
2019/09/28 Javascript
vue项目使用高德地图的定位及关键字搜索功能的实例代码(踩坑经验)
2020/03/07 Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
2020/05/28 Javascript
[35:29]Secret vs VG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
Python单链表的简单实现方法
2014/09/23 Python
Python自动化测试Eclipse+Pydev 搭建开发环境
2016/08/15 Python
python中的随机函数random的用法示例
2018/01/27 Python
Sanic框架异常处理与中间件操作实例分析
2018/07/16 Python
简单瞅瞅Python vars()内置函数的实现
2019/09/27 Python
Python OrderedDict的使用案例解析
2019/10/25 Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
2020/01/03 Python
python pip如何手动安装二进制包
2020/09/30 Python
python连接手机自动搜集蚂蚁森林能量的实现代码
2021/02/24 Python
用CSS3实现Win8风格的方格导航菜单效果
2013/04/10 HTML / CSS
市场营销专业个人求职信范文
2013/12/14 职场文书
2014社区三八妇女节活动总结
2014/03/01 职场文书
启动仪式策划方案
2014/06/14 职场文书
关于颐和园的导游词
2015/01/30 职场文书
html5调用摄像头截图功能
2022/01/18 Javascript