php错误演示以下代码是我最初的,都是不对的
纯情博客为您提供最新网络安全黑客博客信息资讯
$init['paste_postprocess'] ="function (plugin, args) {}"
PHP错误演示
下面的代码是我原来的写法,都是错误的wordpress标签调用渗透测试,只有上面的代码是正确的
function test(){
`}$init['paste_postprocess'] ="test"
// or`$init['paste_postprocess'] =test
为什么不选择粘贴预处理
由于函数返回的参数args是字符串html,因此很难搜索或过滤指定标签
而args.node是dom的形式,可以直接设置dom属性来改变样式和属性
paste_preprocess
查找复制的内容dom中的所有img标签
用于查找img标签集合
let imgArr = args.node.querySelectorAll('img')
迭代集合
为每个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;
` }
设置图片自定义
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] = ranStrimgArr[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)}
}
}`
设置3到5秒的延迟后chatgpt,检查全局变量
如果有值则使用for循环同步上传并按顺序设置正确的图片地址
.. 方法可用于获取
直接得到的是博客管理后台的dom网络培训脚本插件,不是编辑器的dom
async function imgtoggle(){
` if(window&&window.errImgArr&&window.errImgArr.length>0){for (var i = 0; i{
imgtoggle()` },5000)
其中就是上传图片到博客php接口
功能
设置接口为同目录下的api.php
传递的参数是原始图片地址wordpress标签调用,以及图片id(作为图片文件名)
注意这里使用了post方法和参数传递,以避免get参数过长和特殊字符的问题
易于使用的php简单值
function saveImg(imgUrl, ranStr) {
` var host = document.location.originreturn 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)}
})})
` }
在插件目录下新建api.php
使用$_POST['xxx']获取参数
使用并打开保存图像文件