nginx 获取页面内容 并赋值于变量

发布于 2022-09-05 06:33:57 字数 206 浏览 22 评论 0

假设有 http://xxx.xxx/a.html
nginx 如何获取到 a.html 页面中的 指定内容 <img src=指定内容> ,并赋值给 变量呢
因为我想对这个内容进行set_encode_base64 处理然后显示出来。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

や莫失莫忘 2022-09-12 06:33:57

这不是nginx应该负责的活。
如果一定要这么干,两个办法:

  1. 开发nginx的模块,在模块里做文本处理。可以用c或者使用nginx-lua这个模块。

  2. 将html文件交给网站代码处理,比如php、java等,在这些代码里实现读取html和图片,编码和替换等操作。

建议选择2

爱的故事 2022-09-12 06:33:57

变量放在哪里,显示在哪里,这都是需要补充的细节。
对于页面具体的内容,不是nginx负责的范围。

懒猫 2022-09-12 06:33:57

nginx的作用是反向代理,属于tcp/ip层面转发消息,如果用ngnix处理base64会导致内存消耗过大。

建议:
获取src内容,然后使用java生成base64字符串,并替换src

import java.io.IOException;

import sun.misc.BASE64Encoder;
import sun.misc.BASE64Decoder;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;

public class Test{
public static void main (String args[]) throws IOException {
 BufferedImage img = ImageIO.read(new File("C:/Test/logo.png"));
        BufferedImage newImg;
        String imgstr;
 imgstr = encodeToString(img, "png");
        System.out.println(imgstr);
}
public static String encodeToString(BufferedImage image, String type) {
        String imageString = null;
        ByteArrayOutputStream bos = new ByteArrayOutputStream();

        try {
            ImageIO.write(image, type, bos);
            byte[] imageBytes = bos.toByteArray();

            BASE64Encoder encoder = new BASE64Encoder();
            imageString = encoder.encode(imageBytes);

            bos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return imageString;
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文