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你的验证码安全码?
Jan 02 PHP
PHP中10个不常见却非常有用的函数
Mar 21 PHP
一个简单php扩展介绍与开发教程
Aug 19 PHP
小文件php+SQLite存储方案
Sep 04 PHP
PHP 查找字符串常用函数介绍
Jun 07 PHP
浅析php与数据库代码开发规范
Aug 08 PHP
简单说说PHP优化那些事(经验分享)
Nov 27 PHP
详解PHP如何更好的利用PHPstorm的自动提示
Aug 18 PHP
PHP receiveMail实现收邮件功能
Apr 25 PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 PHP
php多进程模拟并发事务产生的问题小结
Dec 07 PHP
聊聊 PHP 8 新特性 Attributes
Aug 19 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.ini实现PHP文件上传功能
2014/11/27 PHP
php随机生成数字字母组合的方法
2015/03/18 PHP
js里怎么取select标签里的值并修改
2012/12/10 Javascript
Underscore.js 的模板功能介绍与应用
2012/12/24 Javascript
js检测输入内容全为空格的方法
2014/05/03 Javascript
Javascript实现颜色rgb与16进制转换的方法
2015/04/18 Javascript
jQuery元素选择器实例代码
2017/02/06 Javascript
详解JavaScript的BUG和错误
2018/05/07 Javascript
解决jQuery使用append添加的元素事件无效的问题
2018/08/30 jQuery
Node.js 使用request模块下载文件的实例
2018/09/05 Javascript
Vue.extend实现挂载到实例上的方法
2019/05/01 Javascript
js中let能否完全替代IIFE
2019/06/15 Javascript
微信小程序返回上一页传参并刷新过程解析
2019/12/13 Javascript
Node使用Nodemailer发送邮件的方法实现
2020/02/24 Javascript
基于Element的组件改造的树形选择器(树形下拉框)
2020/02/27 Javascript
layui使用及简单的三级联动实现教程
2020/12/01 Javascript
python snownlp情感分析简易demo(分享)
2017/06/04 Python
Python实现自动登录百度空间的方法
2017/06/10 Python
Python+Pandas 获取数据库并加入DataFrame的实例
2018/07/25 Python
使用EduBlock轻松学习Python编程
2018/10/08 Python
Python使用sqlalchemy模块连接数据库操作示例
2019/03/13 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
2019/03/22 Python
树莓派使用USB摄像头和motion实现监控
2019/06/22 Python
python写入数据到csv或xlsx文件的3种方法
2019/08/23 Python
如何在Python对Excel进行读取
2020/06/04 Python
Python实现Keras搭建神经网络训练分类模型教程
2020/06/12 Python
pytest fixtures装饰器的使用和如何控制用例的执行顺序
2021/01/28 Python
凯特方迪化妆品官网:Kat Von D Beauty
2016/11/15 全球购物
经典的班主任推荐信
2013/10/28 职场文书
工厂厂长岗位职责
2013/11/08 职场文书
给海归自荐信的建议
2013/12/13 职场文书
2014年教师政治学习材料
2014/06/02 职场文书
信息管理专业自荐书
2014/06/05 职场文书
自动化专业大学生职业生涯规划范文:爱拚才会赢
2014/09/12 职场文书
《鸡兔同笼》教学反思
2016/02/19 职场文书