zoukankan      html  css  js  c++  java
  • 请写一段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>';
    

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

    赞赏码

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

  • 相关阅读:
    NoSQL学习1
    inno setup 软件打包
    cmapx 保存绘制好的图层
    qt之菜单栏的创建
    qt 软件打包
    可恶的 0xc0000005异常
    成长
    msChart组件安装与编程
    qt 工具下的dump工具导出文档出现异常解决方案
    qt 环境下mapx组件的鼠标跟踪
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15452578.html
Copyright © 2011-2022 走看看