• 请写一段PHP代码,确保多个进程同时写入同一个文件成功


    1. 请写一段PHP代码,确保多个进程同时写入同一个文件成功

    function writeData($path, $mode,$data,$max_retries = 10)
    {
        $fp = fopen($path, $mode);
        $retries = 0;
        do{
            if ($retries > 0)
            {
                usleep(rand(1, 10000));
            }
            echo '等待时间:'.$retries;
            $retries += 1;
        }while (!flock($fp, LOCK_EX) and $retries<= $max_retries);
        //判断是否等于最大重试次数,是则返回false
        if ($retries == $max_retries)
        {
            return false;
        }
        fwrite($fp, "$data");
        flock($fp, LOCK_UN);
        fclose($fp);
        return true;
    }
    

    2.array_merge 和 array+array 区别

    (1)第一个数组键包含在第二个数组中

    $arr1=array('name'=>'lxw','age'=>12,'sex'=>1);
    $arr2=array('name'=>'king','age'=>22,'sex'=>2,'tel'=>'123456');
     
    $arr3=array('1'=>'lxw','2'=>12,'3'=>1);
    $arr4=array('1'=>'king','2'=>22,'3'=>2,'4'=>'123456');
     
    echo '<pre>';
    echo '关联数组 - merger: <br>';
    print_r(array_merge($arr1,$arr2));
    echo '<pre>';
     
    echo '<pre>';
    echo '关联数组 - 加号: <br>';
    print_r($arr1+$arr2);
    echo '<pre><hr>';
     
    echo '<pre>';
    echo '索引数组 - merger: <br>';
    print_r(array_merge($arr3,$arr4));
    echo '<pre>';
     
    echo '<pre>';
    echo '索引数组 - 加号: <br>';
    print_r($arr3+$arr4);
    echo '<pre>';
    

    (2)第一个数组存在第二个数组中不存在的键

    $arr1=array('name'=>'lxw','age'=>12,'sex'=>1,'address'=>'bj'); //新增address
    $arr2=array('name'=>'king','age'=>22,'sex'=>2,'tel'=>'123456');
     
    $arr3=array('1'=>'lxw','2'=>12,'3'=>1,'4'=>'bj');//新增4键名
    $arr4=array('1'=>'king','2'=>22,'3'=>2,'4'=>'123456');
     
    echo '<pre>';
    echo '关联数组 - merger: <br>';
    print_r(array_merge($arr1,$arr2));
    echo '<pre>';
     
    echo '<pre>';
    echo '关联数组 - 加号: <br>';
    print_r($arr1+$arr2);
    echo '<pre><hr>';
     
    echo '<pre>';
    echo '索引数组 - merger: <br>';
    print_r(array_merge($arr3,$arr4));
    echo '<pre>';
     
    echo '<pre>';
    echo '索引数组 - 加号: <br>';
    print_r($arr3+$arr4);
    echo '<pre>';
    

    求一键三连:点赞转发在看

    赞赏码

    非学,无以致疑;非问,无以广识

  • 相关阅读:
    序列JSON数据和四种AJAX操作方式
    jquery.validate和jquery.form.js实现表单提交
    JQuery Validate使用总结1:
    HOWTO: Include Base64 Encoded Binary Image Data (data URI scheme) in Inline Cascading Style Sheets (CSS)(转)
    SharePoint 2007 使用4.0 .Net
    动态IP解决方案
    取MS CRM表单的URL
    从Iframe或新开的窗口访问MS CRM 2011(转)
    Toggle or Hidden MS CRM Tab
    Windows 2008下修改域用户密码
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15452578.html
Copyright © 2020-2023  润新知