DeepSeek监控体系落地难?3步打通Prometheus数据采集、存储与可视化全链路
2026/5/12 16:50:41
各位群里的老铁们好啊!作为一个在山东搬砖多年的PHP老鸟,今天要给大家分享一个"白菜价"搞定高大上Word粘贴功能的骚操作!
客户要的这功能说白了就是:
经过我三天三夜不眠不休的调研(其实就是在群里问了问),发现市面上那些开源方案都是:
❌ 公式支持稀烂
❌ 样式保留不全
❌ 价格贵得离谱
最后我锁定了两个方案:
// 在UEditor配置中增加按钮UE.registerUI('wordpaste',function(editor){// 创建一个按钮varbtn=newUE.ui.Button({name:'wordpaste',title:'Word一键粘贴',cssRules:'background-image: url(word.png) no-repeat;',onclick:function(){// 调用粘贴功能editor.execCommand('wordpaste');}});returnbtn;});// 粘贴处理逻辑UE.plugins.wordpaste=function(){this.addListener('ready',function(){// 监听粘贴事件this.addListener('afterpaste',function(type,pasteData){if(pasteData.html){// 处理Word粘贴内容constcleanHtml=this.wordFilter(pasteData.html);this.execCommand('insertHtml',cleanHtml);}});});// Word内容过滤器this.wordFilter=function(html){// 这里处理各种Word特有的标签和样式returnhtml.replace(/|<\/o:p>/g,'').replace(/class="MsoNormal"/g,'').replace(/\s*<\/span>/g,' ');};};uploadImages($content);// 2. 转换公式$content=$this->convertFormulas($content);// 3. 清理特殊标签$content=$this->cleanTags($content);return$content;}privatefunctionuploadImages($content){// 正则匹配所有图片preg_match_all('/]+src="([^">]+)"/',$content,$matches);foreach($matches[1]as$imgUrl){if(strpos($imgUrl,'data:image')===0){// 处理base64图片$newUrl=$this->uploadBase64Image($imgUrl);$content=str_replace($imgUrl,$newUrl,$content);}}return$content;}privatefunctionconvertFormulas($content){// 转换LaTeX公式为MathML$content=preg_replace_callback('/\$(.*?)\$/',function($matches){return$this->latexToMathML($matches[1]);},$content);return$content;}privatefunctioncleanTags($content){// 移除Word特有的垃圾标签$badTags=['/|<\/o:p>/','//','//','//'];returnpreg_replace($badTags,'',$content);}}?>下载插件包:
修改配置:
// ueditor.config.js{toolbars:[['wordpaste','source','undo','redo','bold']],wordpasteConfig:{uploadUrl:'/api/upload',formulaServer:'https://formula.example.com/convert'}}后端接口:
// 文件上传接口$router->post('/api/upload',function(){$file=$_FILES['file'];$ossClient=newOSS\OssClient(getenv('OSS_ACCESS_KEY_ID'),getenv('OSS_ACCESS_KEY_SECRET'),getenv('OSS_ENDPOINT'));try{$result=$ossClient->uploadFile(getenv('OSS_BUCKET'),'uploads/'.uniqid().'.'.pathinfo($file['name'],PATHINFO_EXTENSION),$file['tmp_name']);echojson_encode(['url'=>$result['info']['url']]);}catch(OssException$e){http_response_code(500);echojson_encode(['error'=>$e->getMessage()]);}});| 项目 | 价格 |
|---|---|
| 插件授权 | 599元 |
| 服务器费用 | 50元/月 |
| 开发工时 | 0元(因为是我自己写的😂) |
| 总计 | 649元 |
老板给了680预算,还剩下31块,够我买包烟庆祝一下了!
兄弟们,加群223813913领红包啊!
最后说一句:这插件真香!谁用谁知道!
UEditor 1.4.3.3示例注意:不要重复引入jquery,如果您的项目已经引入了jq,则不用再引入jq-1.4
//工具栏上的所有的功能按钮和下拉框,可以在new编辑器的实例时选择自己需要的重新定义toolbars:[["fullscreen","source","|","zycapture","|","wordpaster","importwordtoimg","netpaster","wordimport","excelimport","pptimport","pdfimport","|","importword","exportword","importpdf"]]varpos=window.location.href.lastIndexOf("/");varapi=[window.location.href.substr(0,pos+1),"asp/upload.asp"].join("");WordPaster.getInstance({//上传接口:http://www.ncmem.com/doc/view.aspx?id=d88b60a2b0204af1ba62fa66288203edPostUrl:api,//为图片地址增加域名:http://www.ncmem.com/doc/view.aspx?id=704cd302ebd346b486adf39cf4553936ImageUrl:"",//设置文件字段名称:http://www.ncmem.com/doc/view.aspx?id=c3ad06c2ae31454cb418ceb2b8da7c45FileFieldName:"file",//提取图片地址:http://www.ncmem.com/doc/view.aspx?id=07e3f323d22d4571ad213441ab8530d1ImageMatch:''});//加载控件如果接口字段名称不是file,请配置FileFieldName。ueditor接口中使用的upfile字段
点击查看详细教程
匹配图片地址,如果服务器返回的是JSON则需要通过正则匹配
ImageMatch:'',点击参考链接
为图片地址增加域名,如果服务器返回的图片地址是相对路径,可通过此属性添加自定义域名。
ImageUrl:"",点击查看详细教程
如果接口有权限验证(登陆验证,SESSION验证),请配置COOKIE。或取消权限验证。
参考:http://www.ncmem.com/doc/view.aspx?id=8602DDBF62374D189725BF17367125F3
一键粘贴Word内容,自动上传Word中的图片,保留文字样式。
一键导入Word文件,并将Word文件转换成图片上传到服务器中。
一键导入PDF文件,并将PDF转换成图片上传到服务器中。
一键导入PPT文件,并将PPT转换成图片上传到服务器中。
点击下载完整示例