上传图片代码:
/** * uploadImage * @param $imagePath * @return mixed * @throws BusinessException */ public function uploadImage($imagePath) { echo '正在上传图片' . $imagePath . PHP_EOL; $this->checkCookie(); $baseInfo = pathinfo($imagePath); $url = 'https://hope.demogic.com/api-marketing/content/upload-image?wxFlag=1&requestProject=marketing'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); $headers = array( 'Accept: application/json, text/plain, */*', 'Accept-Language: zh-CN,zh;q=0.9,en;q=0.8', 'Connection: keep-alive', 'Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryjIc86qFLxj5NjvGi', 'Cookie: ' . $this->cookie, 'Origin: https://hope.demogic.com', 'Referer: https://hope.demogic.com/content-center/', 'Sec-Fetch-Dest: empty', 'Sec-Fetch-Mode: cors', 'Sec-Fetch-Site: same-origin', 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36', 'channelEntrance: merchant_backstage', 'sec-ch-ua: "Google Chrome";v="131", "Chromium";v="131", "Not_A Brand";v="24"', 'sec-ch-ua-mobile: ?0', 'sec-ch-ua-platform: "Windows"' ); $data = array( 'file' => new CURLFile($imagePath, 'image/jpeg', $baseInfo['basename']), 'uuid' => '7a763df7-5723-451e-b672-caa7ba7c057e' ); $response = curl($url, $data, false, $headers, 3, 1); if (!$response) { throw new BusinessException('请求达摩上传文件接口失败'); } $responseData = json_decode($response, true); if (!$responseData) { throw new BusinessException('转换达摩上传文件接口数据失败'); } $this->checkLogin($responseData); return $responseData; }
发布素材接口:
/** * 发布素材 * @return array */ public function saveMaterial($materialTitle, $materialImageSource, $contentGoodsIdList, $thirdGoodsList, $contentCategoryId, $producerId) { $this->checkCookie(); // 提取全部图片 $materialImageUrls = array_column($materialImageSource, 'url'); // 提取全部图片配置 $materialImageInfos = []; foreach ($materialImageSource as $value) { unset($value['url']); $materialImageInfos[] = json_encode($value, 256); } $materialImageInfosText = join('|', $materialImageInfos); // 请求地址 $url = 'https://hope.demogic.com/api-marketing/content/save-material?requestProject=marketing'; $data = array( 'pageId' => '', 'shareLinkFlag' => 1, 'materialSubTitle' => '', 'materialLink' => '', 'materialFirstImageUrl' => '', 'additionalList' => array(), 'materialPurpose' => 1, 'contentMaterialId' => '', 'materialTitle' => $materialTitle, //标题 'materialType' => 3, 'shelfStatus' => 1, 'publishType' => 1, // 0.暂不发布 1.发布 'publishBeginTime' => '', 'publishEndTime' => '', 'materialContent' => '', 'materialImageUrls' => join(',', $materialImageUrls), // 图片地址逗号隔开 'materialThumbnailImageUrls' => join(',', $materialImageUrls), // 图片地址逗号隔开, 'materialVideoUrl' => '', 'materialVideoImageUrl' => '', 'materialVideoFirstImageUrl' => '', 'ruleId' => '', 'contentTagIdList' => array( 0 => '509419425271668780', //标签-固定为其他内容 ), 'contentColumnIdList' => array(), 'contentCategoryId' => $contentCategoryId, //分类编号 'contentGoodsIdList' => $contentGoodsIdList, //关联商品编号 'duration' => '', 'producerId' => $producerId, //发布人编号 'materialImageInfos' => $materialImageInfosText, 'materialVideoInfo' => '', 'materialVideoImageInfo' => '', 'materialVideoFirstImageInfo' => '', 'materialFirstImageInfo' => '', 'producer' => NULL, 'thirdGoodsList' => $thirdGoodsList ); $headers = array(); $headers[] = 'Accept: application/json, text/plain, */*'; $headers[] = 'Accept-Language: zh-CN,zh;q=0.9,en;q=0.8'; $headers[] = 'Connection: keep-alive'; $headers[] = 'Content-Type: application/json;charset=UTF-8'; $headers[] = 'Cookie:' . $this->cookie; $headers[] = 'Origin: https://hope.demogic.com'; $headers[] = 'Referer: https://hope.demogic.com/content-center/'; $headers[] = 'Sec-Fetch-Dest: empty'; $headers[] = 'Sec-Fetch-Mode: cors'; $headers[] = 'Sec-Fetch-Site: same-origin'; $headers[] = 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36'; $headers[] = 'channelEntrance: merchant_backstage'; $headers[] = 'sec-ch-ua: "Google Chrome";v="131", "Chromium";v="131", "Not_A Brand";v="24"'; $headers[] = 'sec-ch-ua-mobile: ?0'; $headers[] = 'sec-ch-ua-platform: "Windows"'; $response = curl($url, json_encode($data), false, $headers, 1, 0); if (!$response) { throw new BusinessException('请求达摩发布素材接口失败,接口未响应数据'); } $responseData = json_decode($response, true); if (!$responseData) { throw new BusinessException('请求达摩发布素材接口失败,接口返回非Json数据'); } $this->checkLogin($responseData); return $responseData; }
<?php $base64_body = substr(strstr($_POST[base64],','),1); $data= base64_decode($base64_body); file_put_contents($_SERVER[&q...
先在centos安装openssl,然后开始://生成私钥openssl genrsa -out rsa_private_key.pem 1024//生成公钥openssl rsa -in rsa_private_key.pem&...
在PHP中,大部分变量类型,如字符串,整型,浮点,数组等都是值类型的,而类和对象是引用类型.和其他语言有点差距.(1).在值类型中我们直接使用&符号表示指向对应变量的内存地址,当前变量和被指向的变量只要有1个的值被修改都会直接影响另外一个变量的值发生变化。(ps:还是非常节省内存的,可以使用...
将jsonp转为PHP数组和对象。/** * jsonp转数组|Jsonp转json * @param string $jsonp jsonp字符串 * @param bool $as...
断点下载的原理:http请求头添加Range参数告诉文件服务器端需要的字节范围例如1个文本文件的字节为1000,第一次请求Range: bytes=0-500第二次请求Range: bytes=501-1000通过每次的请求将返回的流追加写入到文件。注意的项目:断点下载服务器端的每次只返回字节传输的...
第一次听说端口复用是在mixphp最新版本中发现的,mixphp启动监听9501端口,现在作者说可以多开几个进程来执行mixphp,我心里想了下再启动不是会端口冲突嘛,但是却没有问题,于是下载mixphp的源码解读,原来是启动http服务器使用new Co\Http\Server('0.0....