php函數(shù)

  • 閉包函數(shù)
       $b = 'b';
        $qq = function($a) use ($b){
            return $a.$b;
        };
        echo $qq('a');   //打印的是'ab'
use里面的變量一定要是存在的值

is_numeric() 判斷一個(gè)值是不是數(shù)字,返回結(jié)果是bool類型

  • 取唯一值
function createCode(){
    return md5(uniqid(microtime(true),true));
}
  • 把excell里面的信息轉(zhuǎn)換成數(shù)組
public function test2(Request $request)
    {
        $request = $request->all();
        $text = $request['text'];
        $res1 = preg_replace('/\n/','_____',$text);
        //        把橫線作為分割標(biāo)識  切分成數(shù)組
        $res2 = explode('_____',$res1);
        //        dd($res2);
        foreach ($res2 as $res3){
            //            echo $res3; //此時(shí)$res3是每一行的值
            $res4 = preg_replace('/\t/','***',$res3);
            //            dd($res4);   //把每一行的值轉(zhuǎn)換成了數(shù)組
            $res5 = explode('***',$res4);
            dd($res5);
        }
    }

2.取兩個(gè)數(shù)組的鍵的差集

// array_diff_key($arr1,$arr2);  返回的是$arr1,在$arr2中不同的鍵的數(shù)組
//結(jié)果都是$arr1里面的鍵
$array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
        $array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);

        $a = array_diff_key($array1, $array2);
        $b = array_diff_key($array2, $array1);
        $aa = array_merge($a,$b);
        dd($aa);
取兩個(gè)結(jié)果的差集

3.返回?cái)?shù)組中值的差集

// array_diff($arr1,$arr2); //返回的是$arr1數(shù)組中的值,跟$arr2數(shù)組的值相比后的差集。
//(結(jié)果都是$arr1里面的值)
$array1 = array('blue'  => 5, 'red'  => 2, 'green'  => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);
$aa = array_diff($array1, $array2);
dd($aa);
返回?cái)?shù)組中值的差集

4.array_map

array array_map ( callable $callback , array $array1 [, array $... ] )
array_map():返回?cái)?shù)組,是為 array1 每個(gè)元素應(yīng)用 callback函數(shù)之后的數(shù)組。 callback 函數(shù)形參的數(shù)量和傳給 array_map() 數(shù)組數(shù)量,兩者必須一樣。

使用方式1
function cube($n)
{
    return($n * $n * $n);
}

$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);
結(jié)果
Array
(
    [0] => 1
    [1] => 8
    [2] => 27
    [3] => 64
    [4] => 125
)

使用方式2,=匿名函數(shù)
$func = function($value) {
    return $value * 2;
};

print_r(array_map($func, range(1, 5)));

使用方式3,直接把函數(shù)當(dāng)成參數(shù)寫
      $a = array(1, 2, 3, 4, 5);
        $b = array_map(function($n){
            return $n*$n;
        },$a);
        dd($b);

使用4,更多的數(shù)組
function show_Spanish($n, $m)
{
    return("The number $n is called $m in Spanish");
}
$a = array(1, 2, 3, 4, 5);
$b = array("uno", "dos", "tres", "cuatro", "cinco");

$c = array_map("show_Spanish", $a, $b);
print_r($c);
// printout of $c
Array
(
    [0] => The number 1 is called uno in Spanish
    [1] => The number 2 is called dos in Spanish
    [2] => The number 3 is called tres in Spanish
    [3] => The number 4 is called cuatro in Spanish
    [4] => The number 5 is called cinco in Spanish
)
例四還有一種方式
 public function test()
    {
        $arr1= array(1, 2, 3, 4, 5);
        $arr2 = array(1, 2, 3, 4, 5);
        $res = array_map(function($n,$m){
            return $n*$m;
        },$arr1,$arr2);
        dd($res);
    }
得到的結(jié)果也是$arr1中的值與$arr2的值相乘的值
array:5 [▼
  0 => 1
  1 => 4
  2 => 9
  3 => 16
  4 => 25
]
其實(shí)這個(gè)函數(shù)是,又幾個(gè)參數(shù),就要有幾個(gè)數(shù)組

5.array_walk($arr,'fun',$prefix)

// array_walk()第一個(gè)參數(shù)是數(shù)組,第二個(gè)參數(shù)是函數(shù)。也可以有第三個(gè)參數(shù),自定義輸出內(nèi)容
//  作為參數(shù)的函數(shù)中,第一個(gè)是值,第二個(gè)是鍵
$fruits = array( "a" => "orange", "b" => "banana", "c" => "apple");
        array_walk($fruits,function($val,$key){
            echo $key.':'.$val.'<br>';
        });

$fruits = array( "a" => "orange", "b" => "banana", "c" => "apple");
        array_walk($fruits,function($val,$key,$prefix){
            echo $key.':'.$prefix.'--'.$val.'<br>';
        },'這是前綴,是第三個(gè)參數(shù)');
       
array_walk()
array_walk($arr,'fun',$prefix)

6.compact()

compact(),把字段組成數(shù)組

正則

 /**
     * 判斷是否是郵箱
     * @param $email
     * @return bool
     */
    public static function isEmail($email)/*{{{*/
    {
        if (preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $email)) {
            return true;
        }
        return false;
    }

    /**
     * 判斷是否是手機(jī)號碼
     * @param $mobile
     * @return mixed
     */
    public static function isMobile($mobile)
    {
        $preg_mobile = '/^(130|131|132|133|134|135|136|137|138|139|150|151|152|153|154|155|156|157|158|159|180|181|182|183|184|185|186|187|188|189|170|171)\d{8}$/';
        return preg_match($preg_mobile, $mobile);
    }

function get_client_ip() {
    $ip = $_SERVER['REMOTE_ADDR'];
    
    if (isset($_SERVER['HTTP_X_REAL_FORWARDED_FOR'])) {
        $ip = $_SERVER['HTTP_X_REAL_FORWARDED_FOR'];
    } elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    }

    //檢查IP地址  
    if(!preg_match("/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/", $ip)) {  
        return '0.0.0.0';  
    }
    return $ip;
}


//顯示錯(cuò)誤信息,并結(jié)束
function display_error_exit($error_msg) {
    header("Content-type: text/html; charset=utf-8");
    echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
    exit($error_msg);
}

//清除html代碼
function clear_html_code($string) { 
    $string = trim(addslashes(strip_tags($string)));
    return $string;
}

function encoding_html($string) {
    $string = trim(addslashes(htmlspecialchars($string)));
    return $string;
}

//站點(diǎn)臨時(shí)關(guān)閉
function website_close() {
    global $web_site;
    if($web_site['close']==1) {
        echo "<script>top.location.href='/close.php';</script>";
        exit();
    }
}

//地區(qū)限制功能(可限制地區(qū)和IP)
function website_deny() {
    global $C_Patch;
    include_once($C_Patch."/ip.php");
    include_once($C_Patch."/../cache/dqxz.php");
    include_once($C_Patch."/common/commonfun.php");
    
    $client_ip = get_client_ip();
    $address = '='.iconv("GB2312","UTF-8",convertip($client_ip,"$C_Patch/"));
    foreach ($dqxz as $k => $v) {
        if (strpos($address,$v) || strpos('='.$client_ip,$v)) {
            display_error_exit("對不起,您所在的地區(qū)或IP暫時(shí)無法訪問,請稍后重試");
        }
    }
}
//判斷手機(jī)或電腦
function isMobile()
{ 
    // 如果有HTTP_X_WAP_PROFILE則一定是移動設(shè)備
    if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))
    {
        return true;
    } 
    // 如果via信息含有wap則一定是移動設(shè)備,部分服務(wù)商會屏蔽該信息
    if (isset ($_SERVER['HTTP_VIA']))
    { 
        // 找不到為flase,否則為true
        return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
    } 
    // 腦殘法,判斷手機(jī)發(fā)送的客戶端標(biāo)志,兼容性有待提高
    if (isset ($_SERVER['HTTP_USER_AGENT']))
    {
        $clientkeywords = array ('nokia',
            'sony',
            'ericsson',
            'mot',
            'samsung',
            'htc',
            'sgh',
            'lg',
            'sharp',
            'sie-',
            'philips',
            'panasonic',
            'alcatel',
            'lenovo',
            'iphone',
            'ipod',
            'blackberry',
            'meizu',
            'android',
            'netfront',
            'symbian',
            'ucweb',
            'windowsce',
            'palm',
            'operamini',
            'operamobi',
            'openwave',
            'nexusone',
            'cldc',
            'midp',
            'wap',
            'mobile'
            ); 
        // 從HTTP_USER_AGENT中查找手機(jī)瀏覽器的關(guān)鍵字
        if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT'])))
        {
            return true;
        } 
    } 
    // 協(xié)議法,因?yàn)橛锌赡懿粶?zhǔn)確,放到最后判斷
    if (isset ($_SERVER['HTTP_ACCEPT']))
    { 
        // 如果只支持wml并且不支持html那一定是移動設(shè)備
        // 如果支持wml和html但是wml在html之前則是移動設(shè)備
        if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html'))))
        {
            return true;
        } 
    } 
    return false;
}
//截圖功能用來計(jì)算字符長度
function str_leng($str) {
    mb_internal_encoding("UTF-8");
    return mb_strlen($str)*12;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容