gpt4 book ai didi

mysql - 在 mysql 的内容中搜索和替换图像尺寸?

转载 作者:行者123 更新时间:2023-11-29 00:37:13 25 4
gpt4 key购买 nike

我有一个包含 500 多篇文章的 wordpress 博客。第一个帖子图像始终为 550 像素宽,高度在 300 像素和 450 像素之间。

博客设计已更新,第一张帖子图片现在宽度为 600 像素,高度介于 350 像素和 500 像素之间。我已经手动下载了第一张图片,并将它们的大小从 550 调整为 600,但有一些轻微的质量损失。

最简单的事情是在数据库中搜索和替换。查找 width="550"并将其替换为 width="600",但高度存在问题。这不是固定变量,例如 550。

如果 wordpress 图像有自己的表格,我可以简单地做类似的事情

update  wp_posts
set height = height*1.09;

但在 wordpress 的情况下,这是无法做到的,因为信息存储在 post_content 中,看起来像这样:

<img class="alignnone size-full wp-image-4352" title="Image Title" src="http://www.website.com/wp-content/uploads/2012/12/image.jpg" alt="image" width="550" height="351" />

在mysql中如何根据宽度的比例改变高度?

最佳答案

这是一个非常棘手的问题。但这也是一个有趣的问题。

不管怎样,就这样吧。要从 post_content 图像中提取宽度和高度,请创建一个 View

create view temp_images (id, width, height) as
select id,
ExtractValue(post_content, '/img/@width'),
ExtractValue(post_content, '/img/@height')
from wp_posts
where post_content like '<img%'
and ExtractValue(post_content, '/img/@width') = 550;

在你的情况下你不需要宽度,但如果你想玩,它就在这里。现在,您有了图片帖子的 ID 以及相应的宽度和高度。这样,您可以分两步更新图像元素的宽度和高度

update wp_posts, temp_images
set post_content = UpdateXml(post_content, '/img/@width', 'width="600"')
where wp_posts.id = temp_images.id;

update wp_posts, temp_images
set post_content = UpdateXml(post_content, '/img/@height',
concat('height="', round(height * 1.09), '"'))
where wp_posts.id = temp_images.id;

当然还有最后清理

drop view temp_images;

最后但同样重要的是,这是一个 SQL Fiddle用于测试和播放。

关于mysql - 在 mysql 的内容中搜索和替换图像尺寸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13711549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com