while ($line = fgets($formData, self::$partSize)) { if ($boundary . "\r\n" == $line || $boundary . "--\r\n" == $line) { //如果是分割 $infoPart = true; if ($info['type'] == 'json') { $data = json_decode($data, true); $retData[$info['name']] = $data; } else if($info['type'] == 'file') { if(isset($info['tmp_file'])) { fclose($info['file_handle']); $retData[$info['name']] = [ 'org_name' => $info['org_name'], 'tmp_file' => $info['tmp_file'] } else { $retData[$info['name']] = $data; $data = ''; } else if ("\r\n" == $line) { if ($infoPart) { //解析info $info = self::parserInfo($data, $options); if (isset($info['tmp_file'])) { $info['file_handle'] = fopen($info['tmp_file'], 'w'); $data = ''; $infoPart = false; } else { if($infoPart == false && isset($info['tmp_file'])) { fwrite($info['file_handle'], $line); } else { $data .= $line; fclose($formData); print_r($retData); private static function parserInfo($data, $options) //获取参数名称, type $infoPattern = '/name="(.+?)"(; )?(filename="(.+?)")?/'; //todo: 待优化 preg_match($infoPattern, $data, $matches); $info['name'] = $matches[1]; $info['type'] = 'json'; //如果是文件 if (count($matches) > 4) { $info['type'] = 'file'; $info['org_name'] = $matches[4]; //如果设置保存文件, 保存到临时文件 if (isset($options['saveFile']) && $options['saveFile']) { $tmpFile = tempnam(sys_get_temp_dir(), 'FD'); $info['tmp_file'] = $tmpFile; return $info;

put patch 用这个方法可以接受文件  和数据 ,解决表单乱码。

class FormDataParser{ private static $partSize = 4096; //每次最大获取字节 /** * 负责解析FormData */ public static function parser($options = []) { //$options['saveFile'] =
1) 在数学上来说:diff/ patch ,diff是对2个集合求差, patch 是求和   diff A B >C ,一般A是原始文件,B是修改后的文件,C称为A的补丁文件。 patch A C 就能得到B, 这一步叫做对A打上了B的名字为C的补丁。 patch -R B C 就可以重新还原到A了。   2) 内核补丁   diff -uNr linux-2.6.xxx linux-2.6.xxx.1 > diff. patch cp diff. patch linux-2.6.xxx/.   cd linux-2.6.xxx patch -p1 < diff.p
转载 出处:https://www.cnblogs.com/haha520/p/6564701.html 因为需要在 php 开发中对接其它接口需要用 php curl去对接其它接口  我把他们封装成函数 希望能对大家有所帮助 这里面是封装好的  会自动把data进行转成json格式   同时解码成 php 数组输出 1 function geturl($url){
PUT和 PATCH 都属于HTTP协议中的请求方法,主要用于向服务器更新资源。它们的区别如下: 1. PUT请求:将一个完整的资源替换为请求中的新资源。如果该资源不存在,则会创建一个新资源。使用PUT请求时,需要将要更新的完整资源的所有属性都包含在请求中。 2. PATCH 请求:仅更新资源的部分属性。使用 PATCH 请求时,只需要在请求中包含要更新的属性即可,不需要包含所有属性。 PATCH 请求通常用于对资源的局部更新。 因此,PUT请求更适合用于更新整个资源,而 PATCH 请求更适合用于更新部分资源。
nginx 卸载后重新安装/etc/nginx配置文件没了,cannot open /etc/nginx/nginx.conf (No such file or directory) 来碗豆腐脑: