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>';
    

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

    赞赏码

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

  • 相关阅读:
    Elasticsearch常用命令
    Linux中使用systemctl操作服务、新建自定义服务
    Windows下安装MongoDB解压版
    Java执行cmd命令、bat脚本、linux命令,shell脚本等
    Ubuntu
    PostgreSQL删除数据库失败处理
    Ubuntu service 命令
    Ubuntu18修改/迁移mysql5.7数据存放路径
    攻防世界-web-ics-02(sql注入、ssrf、目录扫描)
    攻防世界-web-filemanager(源码泄漏、二次注入)
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15452578.html
Copyright © 2011-2022 走看看