PHP實體方法有哪些例子

2020-10-06 12:00:20

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)=([\"|']?)([^ \"'>]+\.(gif|jpg|jpeg|bmp|png))\\2/i", $content, $matches)){
        $str=$matches[3][0];
        if(preg_match('/\/ueditor\/php\/upload\/image/',$str)){
            return $str1=substr($str,6);
        }
    }
}

將圖片儲存到本地

function getImage($url,$save_dir='',$filename='',$type=1){
    if(trim($url)==''){
        return array('file_name'=>'','save_path'=>'','error'=>1);
    }
    if(trim($save_dir)==''){
        $save_dir='./';
    }
    if(trim($filename)==''){//儲存檔名
        $ext = strrchr($url,'.');
        if($ext!='.gif'&&$ext!='.jpg'){
            return array('file_name'=>'','save_path'=>'','error'=>3);
        }
        $filename=time().$ext;
    }
    if(0!==strrpos($save_dir,'/')){
        $save_dir.='/';
    }
    //建立儲存目錄
    if(!file_exists($save_dir)&&!mkdir($save_dir,0777,true)){
        return array('file_name'=>'','save_path'=>'','error'=>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,'a');
    fwrite($fp2,$img);
    fclose($fp2);
    unset($img,$url);
    return array('file_name'=>$filename,'save_path'=>$save_dir.$filename,'error'=>0);
}

返回JSON資料

function show($status, $msg, $closeCurrent=false, $data=array()){
    $tmpArr = array(
        'statusCode' => $status,
        'message'    => $msg,
        'closeCurrent' => $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 '<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />';
    echo "<pre>";
    var_dump($content);
    echo "<pre/>";
    die;
}

圖片轉為base64格式

function base64EncodeImage ($image_file) {
    if(!file_exists($image_file)){
        return false;
    }
    $image_info = getimagesize($image_file);
    $image_data = fread(fopen($image_file, 'r'), 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=' ')
{
    $arr = array();
    $str_len = mb_strlen($str,'utf-8');
    for($i = 0;$i < $str_len;$i++)
    {
        $s = mb_substr($str,$i,1,'utf-8');
        if($s != ' ' && $s != ' ')
        {
            $arr[] = 'ux'.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) < intval($m1.$d1)) {$age -= 1;}
        return $age;
    }else{
        return "未知";
    }
}

根據經緯度計算距離

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實體方法有哪些例子的詳細內容,更多請關注TW511.COM其它相關文章!