纯情博客为您提供最新网络安全黑客博客信息资讯

  

 $init['paste_postprocess'] ="function (plugin, args) {}"
Plain text

  PHP 错误演示

  下面的代码是我原来的写法,都是错误的 wordpress 标签调用渗透测试,只有上面的代码是正确的

  

function test(){`}$init['paste_postprocess'] ="test"// or`$init['paste_postprocess'] =test
Plain text

  为什么不选择粘贴预处理

  由于函数返回的参数 args 是字符串 html,因此很难搜索或过滤指定标签

  而 args.node 是 dom 的形式,可以直接设置 dom 属性来改变样式和属性

  

paste_preprocess
Plain text

  查找复制的内容 dom 中的所有 img 标签

  用于查找 img 标签集合

  

let imgArr = args.node.querySelectorAll('img')
Plain text

  迭代集合

  为每个 img 标签设置 id 和图像加载错误事件监听

  生成随机字符串作为 img 标签 id,方便以后定位

  将图片的源地址(如公众号的图片地址)作为自定义属性放在标签上(data-)

  将图片地址更改为将要存储在博客服务器上的地址(域名+文件夹 + 随机字符串 + 图片后缀)

  设置图片加载错误监控,只要检测到错误,就把图片 id 放到全局变量 () 中(图片暂时不处理国内 chatgpt,队列后面按顺序处理,避免同时上传图片)

  js 生成随机字符串

  

function randomString(length) {`        var str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';        var result = '';        for (var i = length; i > 0; --i) {            result += str[Math.floor(Math.random() * str.length)];        }            return result;`    }
Plain text

  设置图片自定义

  

let imgArr = args.node.querySelectorAll('img')`    if (imgArr && imgArr.length > 0) {        window.errImgArr=[]        for (let i = 0; i < imgArr.length; ++i) {            let ranStr = randomString(10)            ranStrArr[i] = ranStr            imgArr[i].ranStr = ranStr            imgArr[i].imgUrl =  imgArr[i].getAttribute('src')            imgArr[i].setAttribute('data-origin', imgArr[i].getAttribute('src'))            imgArr[i].setAttribute('alt', img)            imgArr[i].setAttribute('id', ranStr)            imgArr[i].setAttribute('src', host+/wp-content/uploads/images/+ranStr+.png)            imgArr[i].setAttribute('data-src', host+`/wp-content/uploads/images/`+ranStr+`.png`)            imgArr[i].onerror =(e)=>{                console.log(` 图片加载错误 `,e,window)                window.errImgArr.push(imgArr[i].ranStr)            }            }    }`
Plain text

  设置 3 到 5 秒的延迟后 chatgpt,检查全局变量

  如果有值则使用 for 循环同步上传并按顺序设置正确的图片地址

  .. 方法可用于获取

  直接得到的是博客管理后台的 dom 网络培训脚本插件,不是编辑器的 dom

  

async function imgtoggle(){`        if(window&&window.errImgArr&&window.errImgArr.length>0){            for (var i = 0; i{       imgtoggle()`    },5000)
Plain text

  其中就是上传图片到博客 php 接口

  功能

  设置接口为同目录下的 api.php

  传递的参数是原始图片地址 wordpress 标签调用,以及图片 id(作为图片文件名)

  注意这里使用了 post 方法和参数传递,以避免 get 参数过长和特殊字符的问题

  易于使用的 php 简单值

  

function saveImg(imgUrl, ranStr) {`        var host = document.location.origin        return new Promise((resolve, reject) => {            let formdata = new FormData();            formdata.append('imgUrl', imgUrl);            formdata.append('ranStr', ranStr);            const options = {                method: 'POST',                body: formdata,            };            fetch(host + '/wp-content/plugins/tinymceSet/' + 'api.php', options)                .then(data => {                    return data.json();                })                .then(res => {                    console.log('res', res);                    if (res && res.imgDomainUrl) {                        resolve(res)                    }                })        })    `    }
Plain text

  在插件目录下新建 api.php

  使用 $_POST['xxx'] 获取参数

  使用并打开保存图像文件

Plain text