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 相关文章推荐
PHP 实例化类的一点摘记
Mar 23 PHP
PHP将DateTime对象转化为友好时间显示的实现代码
Sep 20 PHP
PHP新手用的Insert和Update语句构造类
Mar 31 PHP
php教程之魔术方法的使用示例(php魔术函数)
Feb 12 PHP
PHP网站开发中常用的8个小技巧
Feb 13 PHP
在Linux系统下一键重新安装WordPress的脚本示例
Jun 30 PHP
php商品对比功能代码分享
Sep 24 PHP
PHP函数引用返回的实例详解
Sep 11 PHP
PHP调用其他文件中的类
Apr 02 PHP
Thinkphp整合阿里云OSS图片上传实例代码
Apr 28 PHP
thinkphp3.2同时连接两个数据库的简单方法
Aug 13 PHP
phpstorm激活码2020附使用详细教程
Sep 25 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使用eAccelerator的API开发详解
2013/06/09 PHP
PHP连接sql server 2005环境配置及问题解决
2014/08/08 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
php实现算术验证码功能
2018/12/05 PHP
PHP PDOStatement::fetchAll讲解
2019/01/31 PHP
网络之美 JavaScript中Get和Set访问器的实现代码
2010/09/19 Javascript
javascript实现页面内关键词高亮显示代码
2014/04/03 Javascript
javascript中with()方法的语法格式及使用
2014/08/04 Javascript
浅谈javascript原型链与继承
2015/07/13 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
2015/12/17 Javascript
jQuery CSS3相结合实现时钟插件
2016/01/08 Javascript
Jquery on方法绑定事件后执行多次的解决方法
2016/06/02 Javascript
jQuery AJAX timeout 超时问题详解
2016/06/21 Javascript
基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
2017/01/12 NodeJs
JS实现的点击表头排序功能示例
2017/03/27 Javascript
浅谈AngularJS中$http服务的简单用法
2018/05/15 Javascript
微信小程序发送短信验证码完整实例
2019/01/07 Javascript
VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法分析
2019/12/02 Javascript
如何实现js拖拽效果及原理解析
2020/05/08 Javascript
Javascript柯里化实现原理及作用解析
2020/10/22 Javascript
JS中循环遍历数组的四种方式总结
2021/01/23 Javascript
python socket网络编程步骤详解(socket套接字使用)
2013/12/06 Python
python 遍历字符串(含汉字)实例详解
2017/04/04 Python
Python实现选择排序
2017/06/04 Python
java中两个byte数组实现合并的示例
2018/05/09 Python
python绘制散点图并标记序号的方法
2018/12/11 Python
python numpy 常用随机数的产生方法的实现
2019/08/21 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
2019/11/08 Python
如何查看python关键字
2021/01/17 Python
JSF界面控制层技术
2013/06/17 面试题
材料会计岗位职责
2014/03/06 职场文书
办理房产证委托书
2014/09/18 职场文书
2014年学习部工作总结
2014/11/12 职场文书
奖学金主要事迹范文
2015/11/04 职场文书
初中班主任培训心得体会
2016/01/07 职场文书
详解Oracle数据库中自带的所有表结构(sql代码)
2021/11/20 Oracle