Home > Backend Development > PHP Tutorial > PHP instance method summary

PHP instance method summary

韦小宝
Release: 2023-03-17 17:46:02
Original
2678 people have browsed it

多种PHP常用的方法实例,同学们可以看看,学习学习这些PHP方法或者可以研究研究这些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;
}
Copy after login

获取文本中首张图片地址

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);
        }
    }
}
Copy after login


将图片保存到本地

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);
}
Copy after login

返回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));
}
Copy after login


var_dump 函数改写

function lyl_dump($content){
    header("Content-type:text/html;charset=utf-8");
    echo &#39;<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />&#39;;
    echo "<pre class="brush:php;toolbar:false">";
    var_dump($content);
    echo "<pre/>";
    die;
}
Copy after login


图片转为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;
}
Copy after login


使用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;
}
Copy after login


使用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;
}
Copy after login


简单的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;
}
Copy after login


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;
    }
}
Copy after login


字符串转统一编码

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);
}
Copy after login


获取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;
}
Copy after login


创建随机字符串

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;
}
Copy after login


根据生日获取年龄

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) < intval($m1.$d1)) {$age -= 1;}
        return $age;
    }else{
        return "未知";
    }
}
Copy after login


根据经纬度计算距离

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);
}
Copy after login

以上就是 所有的php 实例方法总结 内容,希望对同学们有帮助。

相关推荐:

实例比较php方法重载的两种方式

php方法调用模式与函数调用模式简例

php方法调用模式与函数调用模式简例_PHP教程

The above is the detailed content of PHP instance method summary. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template