热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP实例方法有哪些例子-PHP问题

PHP实例方法的例子有:1、PHPExcel读取Excel,2、获取文本中首张图片地址;3、将图片保存到本地;4、返回JSON数据;5、【var_dump】函数改写;6、图片转为base64格式等等。

PHP实例方法的例子有:1、PHPExcel读取Excel,2、获取文本中首张图片地址;3、将图片保存到本地;4、返回JSON数据;5、【var_dump】函数改写;6、图片转为base64格式等等。

PHP实例方法的例子有:

  • PHPExcel 读取Excel

  • 获取文本中首张图片地址

  • 将图片保存到本地

  • 返回JSON数据

  • var_dump 函数改写

  • 图片转为base64格式

  • 使用curl 实现get请求

  • 使用curl 实现post请求

  • 简单的xml转数组方法

  • Utf-8转统一码

  • 字符串转统一编码

  • 获取IP地址

  • 创建随机字符串

  • 根据生日获取年龄

  • 根据经纬度计算距离

PHPExcel 读取excel

function readExcel($filename, $encode = 'utf-8')
{
//    import("ORG.Util.PHPExcel.IOFactory");
    import("Org/Util/PHPExcel");
    if (strpos($filename, "xlsx")) {
        $objReader = PHPExcel_IOFactory::createReader('Excel2007');
    } else {
        $objReader = PHPExcel_IOFactory::createReader('Excel5');
    }
    $objReader->setReadDataOnly(true);
    $objPHPExcel = $objReader->load($filename);
    $objWorksheet = $objPHPExcel->getActiveSheet();
    $highestRow = $objWorksheet->getHighestRow();
    $highestColumn = $objWorksheet->getHighestColumn();
    $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
    $excelData = array();
    for ($row = 1; $row <= $highestRow; $row++) {
        if ((string)$objWorksheet->getCellByColumnAndRow(0, $row)->getValue() == "") continue;
        for ($col = 0; $col <$highestColumnIndex; $col++) {
            $value = (string)$objWorksheet->getCellByColumnAndRow($col, 1)->getValue();
            if ($value == "") {
                continue;
            }
            $excelData[$row - 1][] = (string)$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
        }
    }
    return $excelData;
}

获取文本中首张图片地址

function getFirstPic($content){
    if(preg_match_all("/(src)=([\"|&#39;]?)([^ \"&#39;>]+\.(gif|jpg|jpeg|bmp|png))\\2/i", $content, $matches)){
        $str=$matches[3][0];
        if(preg_match(&#39;/\/ueditor\/php\/upload\/image/&#39;,$str)){
            return $str1=substr($str,6);
        }
    }
}

将图片保存到本地

function getImage($url,$save_dir=&#39;&#39;,$filename=&#39;&#39;,$type=1){
    if(trim($url)==&#39;&#39;){
        return array(&#39;file_name&#39;=>&#39;&#39;,&#39;save_path&#39;=>&#39;&#39;,&#39;error&#39;=>1);
    }
    if(trim($save_dir)==&#39;&#39;){
        $save_dir=&#39;./&#39;;
    }
    if(trim($filename)==&#39;&#39;){//保存文件名
        $ext = strrchr($url,&#39;.&#39;);
        if($ext!=&#39;.gif&#39;&&$ext!=&#39;.jpg&#39;){
            return array(&#39;file_name&#39;=>&#39;&#39;,&#39;save_path&#39;=>&#39;&#39;,&#39;error&#39;=>3);
        }
        $filename=time().$ext;
    }
    if(0!==strrpos($save_dir,&#39;/&#39;)){
        $save_dir.=&#39;/&#39;;
    }
    //创建保存目录
    if(!file_exists($save_dir)&&!mkdir($save_dir,0777,true)){
        return array(&#39;file_name&#39;=>&#39;&#39;,&#39;save_path&#39;=>&#39;&#39;,&#39;error&#39;=>5);
    }
    //获取远程文件所采用的方法
    if($type){
        $ch=curl_init();
        $timeout=5;
        curl_setopt($ch,CURLOPT_URL,$url);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
        curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
        $img=curl_exec($ch);
        curl_close($ch);
    }
    else{
        ob_start();
        readfile($url);
        $img=ob_get_contents();
        ob_end_clean();
    }
    $size=strlen($img);
    echo $size;
    //文件大小
    $fp2=fopen($save_dir.$filename,&#39;a&#39;);
    fwrite($fp2,$img);
    fclose($fp2);
    unset($img,$url);
    return array(&#39;file_name&#39;=>$filename,&#39;save_path&#39;=>$save_dir.$filename,&#39;error&#39;=>0);
}

返回JSON数据

function show($status, $msg, $closeCurrent=false, $data=array()){
    $tmpArr = array(
        &#39;statusCode&#39; => $status,
        &#39;message&#39;    => $msg,
        &#39;closeCurrent&#39; => $closeCurrent,
    );
    $tmpArr = array_merge($tmpArr, $data);
    exit(json_encode($tmpArr));
}

var_dump 函数改写

function lyl_dump($content){
    header("Content-type:text/html;charset=utf-8");
    echo &#39;&#39;;
    echo "
";
    var_dump($content);
    echo "
";
    die;
}

图片转为base64格式

function base64EncodeImage ($image_file) {
    if(!file_exists($image_file)){
        return false;
    }
    $image_info = getimagesize($image_file);
    $image_data = fread(fopen($image_file, &#39;r&#39;), filesize($image_file));
    $base64_image = chunk_split(base64_encode($image_data));
    return $base64_image;
}

使用curl 实现get请求

function httpGet($url) {
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_TIMEOUT, 500);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); //这个是的ssl校验,需要验证
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true); //
    curl_setopt($curl, CURLOPT_URL, $url);
    $res = curl_exec($curl);
    curl_close($curl);
    return $res;
}

使用curl 实现post 请求

function httpPost($url,$post_data){
    $curl = curl_init();
    $post_data = json_encode($post_data);
    curl_setopt($ch , CURLOPT_URL , $url);
    curl_setopt($ch , CURLOPT_HEADER , 0 );
    curl_setopt( $ch, CURLOPT_POST, 1);          //设置为POST方式
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch , CURLOPT_POSTFIELDS , $post_data);
    $rst = curl_exec( $ch );
    curl_close( $ch );
    return $rst;
}

简单的xml转数组方法

function simplexml_to_array($simplexml_obj, $array_tags = array(), $strip_white = 1)
{
    if ($simplexml_obj) {
        if (count($simplexml_obj) == 0)
            return $strip_white ? trim((string)$simplexml_obj) : (string)$simplexml_obj;
        $attr = array();
        foreach ($simplexml_obj as $k => $val) {
            if (!empty($array_tags) && in_array($k, $array_tags)) {
                $attr[] = simplexml_to_array($val, $array_tags, $strip_white);
            } else {
                $attr[$k] = simplexml_to_array($val, $array_tags, $strip_white);
            }
        }
        return $attr;
    }
    return FALSE;
}

Utf-8转统一码

function utf8_to_unicode($char)
{
    switch (strlen($char)) {
        case 1:
            return ord($char);
        case 2:
            $n = (ord($char[0]) & 0x3f) <<6;
            $n += ord($char[1]) & 0x3f;
            return $n;
        case 3:
            $n = (ord($char[0]) & 0x1f) <<12;
            $n += (ord($char[1]) & 0x3f) <<6;
            $n += ord($char[2]) & 0x3f;
            return $n;
        case 4:
            $n = (ord($char[0]) & 0x0f) <<18;
            $n += (ord($char[1]) & 0x3f) <<12;
            $n += (ord($char[2]) & 0x3f) <<6;
            $n += ord($char[3]) & 0x3f;
            return $n;
    }
}

字符串转统一编码

function str_to_unicode_word($str,$depart=&#39; &#39;)
{
    $arr = array();
    $str_len = mb_strlen($str,&#39;utf-8&#39;);
    for($i = 0;$i <$str_len;$i++)
    {
        $s = mb_substr($str,$i,1,&#39;utf-8&#39;);
        if($s != &#39; &#39; && $s != &#39; &#39;)
        {
            $arr[] = &#39;ux&#39;.utf8_to_unicode($s);
        }
    }
    return implode($depart,$arr);
}

获取IP地址

function getIP()
{
    static $realip;
    if (isset($_SERVER)) {
        if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {
            $realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
        } else if (isset($_SERVER["HTTP_CLIENT_IP"])) {
            $realip = $_SERVER["HTTP_CLIENT_IP"];
        } else {
            $realip = $_SERVER["REMOTE_ADDR"];
        }
    } else {
        if (getenv("HTTP_X_FORWARDED_FOR")) {
            $realip = getenv("HTTP_X_FORWARDED_FOR");
        } else if (getenv("HTTP_CLIENT_IP")) {
            $realip = getenv("HTTP_CLIENT_IP");
        } else {
            $realip = getenv("REMOTE_ADDR");
        }
    }
    return $realip;
}

创建随机字符串

function createNonceStr($length = 16)
{
    $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    $str = "";
    for ($i = 0; $i <$length; $i++) {
        $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
    }
    return $str;
}

根据生日获取年龄

function get_age($birthday){
    if($birthday){
        list($y1,$m1,$d1) = explode("-",date("Y-m-d",$birthday));
        list($y2,$m2,$d2) = explode("-",date("Y-m-d",time()));
        $age = $y2-$y1;
        if(intval($m2.$d2) 

根据经纬度计算距离

function getDistance($lat1, $lng1, $lat2, $lng2)
{
    $earthRadius = 6367000; 
    $lat1 = ($lat1 * pi() ) / 180;
    $lng1 = ($lng1 * pi() ) / 180;
    $lat2 = ($lat2 * pi() ) / 180;
    $lng2 = ($lng2 * pi() ) / 180;
    $calcLOngitude= $lng2 - $lng1;
    $calcLatitude = $lat2 - $lat1;
    $stepOne= pow(sin($calcLatitude / 2), 2) + cos($lat1) * cos($lat2) * pow(sin($calcLongitude / 2), 2);
    $stepTwo = 2 * asin(min(1, sqrt($stepOne)));
    $calculatedDistance = $earthRadius * $stepTwo;
    return round($calculatedDistance);
}

相关免费学习推荐:php编程(视频)

以上就是PHP实例方法有哪些例子的详细内容,更多请关注 第一PHP社区 其它相关文章!


推荐阅读
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 在Android中解析Gson解析json数据是很方便快捷的,可以直接将json数据解析成java对象或者集合。使用Gson解析json成对象时,默认将json里对应字段的值解析到java对象里对应字段的属性里面。然而,当我们自己定义的java对象里的属性名与json里的字段名不一样时,我们可以使用@SerializedName注解来将对象里的属性跟json里字段对应值匹配起来。本文介绍了使用@SerializedName注解解析json数据的方法,并给出了具体的使用示例。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
author-avatar
可爱的天使keven_464
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有