Php 如何为HTTP-POST请求下达订单?

Php 如何为HTTP-POST请求下达订单?,php,xml,http-post,Php,Xml,Http Post,嘿 案例: 我用PHP编写了一个API,它接收到xml格式的HTTP POST请求,以更新/读取或删除另一个xml文件中的一些数据(用于存储所有数据,我的客户机不需要SQL或其他东西) 但对于我使用简单Rest客户端进行的测试,我只是一个接一个地发送了请求,一切正常 一段时间后,我的客户回来了,因为如果我们在同一时间发送多个请求,就会出错:只有一个进程通过文本文件发送 为此,我的老板设计了一个“锁定”系统(创建一个持续1分钟的文件), 现在我们的错误解决了 但在那之后,我们还有另一个问题。。。第

案例: 我用PHP编写了一个API,它接收到xml格式的HTTP POST请求,以更新/读取或删除另一个xml文件中的一些数据(用于存储所有数据,我的客户机不需要SQL或其他东西)

但对于我使用简单Rest客户端进行的测试,我只是一个接一个地发送了请求,一切正常

一段时间后,我的客户回来了,因为如果我们在同一时间发送多个请求,就会出错:只有一个进程通过文本文件发送

为此,我的老板设计了一个“锁定”系统(创建一个持续1分钟的文件), 现在我们的错误解决了

但在那之后,我们还有另一个问题。。。第一个请求很好,但是接下来的所有请求都不符合正确的顺序

问题:

  • 如何尝试模拟多个请求帖子
(现在我只需打开2或3个窗口,点击每个窗口即可快速发送)

  • 如何为HTTP-POST请求下达订单

这是我在这里的第一个问题,我也不擅长用英语写作,所以请宽容一点并感谢您的时间。

感谢JoErNanO,我创建了一个mcve并自己找到了答案

为此,我写下如下:

// Detect if we got a file "lock"
$nb_file_lock = 0;
if($folder = opendir($GLOBALS['chemin']."XML")){
    while(false !== ($file = readdir($folder))){
        if($file != '.' && $file != '..' && $file != 'datas.xml'){
            $nb_file_lock++;
        }
    } 
    closedir($folder);
}

// If it's not the first request
if($nb_file_lock > 0){
    // Recup the last lock file
    for($i=0;$i<30;$i++){
        if(file_exists($GLOBALS['chemin']."XML/lock_".$i)){
            $lockFile_before=$GLOBALS['chemin']."XML/lock_".$i;
            $last_lock_id=$i;
        }
    }
    // Create file "lock" +1
    $lockFile=$GLOBALS['chemin']."XML/lock_".($last_lock_id+1);
    $fp = fopen($lockFile, 'x');
    fclose($fp);
    // While "lock" exist : sleep
    while(file_exists($lockFile_before)){
        sleep(2);
    }
}else{
    // If not, create the first "lock" file
    $lockFile=$GLOBALS['chemin']."XML/lock_0";
    $fp = fopen($lockFile, 'x');
    fclose($fp);    
}
//检测是否有文件“锁定”
$nb_file_lock=0;
如果($folder=opendir($GLOBALS['chemin'].“XML”)){
while(false!==($file=readdir($folder))){
如果($file!='.&&$file!='..'&&&$file!='datas.xml'){
$nb_file_lock++;
}
} 
closedir($文件夹);
}
//如果不是第一个请求
如果($nb\u文件\u锁>0){
//重新映射最后一个锁定文件

对于($i=0;$iHi和welcome。您尝试了什么?想提供一个吗?看看或。