php中怎么让图片没有缓存文件格式

worktile 其他 124

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在PHP中,可以通过设置HTTP响应头来防止浏览器缓存图片文件格式。下面是几种常见的方法:

    1. 使用header()函数设置响应头:
    “`php
    header(“Cache-Control: no-store, no-cache, must-revalidate”); // 禁止缓存
    header(“Pragma: no-cache”); // 禁止缓存
    header(“Expires: 0”); // 确保在过去的时间内不缓存
    “`

    2. 使用header()函数设置响应头的更简洁方式:
    “`php
    header(“Cache-Control: no-cache, must-revalidate”);
    header(“Expires: Sat, 26 Jul 1997 05:00:00 GMT”); // 这个时间可以设置为过去的时间
    “`

    3. 在URL中添加时间戳参数:
    “`php
    $imageUrl = “image.jpg?” . time(); // 在URL中添加当前时间戳作为参数
    echo ‘image‘;
    “`
    每次请求该图片时,时间戳参数都会改变,浏览器会认为是一个新的URL,从而不会缓存。

    4. 在图片URL中添加随机数参数:
    “`php
    $imageUrl = “image.jpg?” . rand(); // 在URL中添加随机数作为参数
    echo ‘image‘;
    “`
    每次请求该图片时,随机数参数都会改变,浏览器会认为是一个新的URL,从而不会缓存。

    需要注意的是,以上方法并不能完全保证图片不被缓存,因为浏览器是否缓存还取决于用户的浏览器设置。但是大部分情况下,以上方法都能有效防止图片被缓存。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在PHP中,有几种方法可以让图片不被浏览器缓存。下面是五种方法:

    1. 使用header()函数来设置缓存控制:在PHP脚本中,使用header()函数可以发送特定的HTTP头信息给浏览器。通过设置”Cache-Control”和”Pragma”头来控制图片的缓存。例如:

    “`php
    header(“Cache-Control: no-cache, no-store, must-revalidate”);
    header(“Pragma: no-cache”);
    “`

    这些头信息告诉浏览器不要缓存该图片,并且每次请求都必须从服务器加载最新的图片。

    2. 添加时间戳到图片URL:在生成图片的URL时,可以在URL后面添加一个时间戳参数。这样每次图片URL变化时,浏览器会认为是一个新的图片,从而不会使用缓存的版本。例如:

    “`php
    $imageUrl = “img/image.jpg?t=” . time();
    “`

    这样生成的图片URL类似于”img/image.jpg?t=1546317284″,其中的时间戳保证了每次URL都是不同的。

    3. 使用.htaccess文件设置缓存控制:如果你使用的是Apache服务器,可以通过在网站根目录下的.htaccess文件中设置缓存控制规则。例如:

    “`

    Header set Cache-Control “max-age=0, no-store”

    “`

    这个规则会将所有的jpg、jpeg、png和gif图片的缓存设置为最大时间为0,即不缓存。

    4. 使用随机数作为查询字符串:在生成图片的URL时,可以添加一个随机数作为查询字符串。这样每次图片URL变化时,浏览器会认为是一个新的URL,从而不会使用缓存。例如:

    “`php
    $imageUrl = “img/image.jpg?r=” . mt_rand();
    “`

    这样生成的图片URL类似于”img/image.jpg?r=12345″,其中的随机数保证了每次URL都是不同的。

    5. 修改图片文件名:如果希望每次都能加载新的图片,可以将每个新图片的文件名命名为不同的值。这样每次图片的URL都是不同的,浏览器会从服务器重新加载最新的图片。例如:

    “`php
    $fileName = “image_” . time() . “.jpg”;
    “`

    这样生成的图片文件名类似于”image_1546317284.jpg”,其中的时间戳保证了每次文件名都是不同的。

    通过以上方法,可以在PHP中实现让图片没有缓存文件格式的效果,从而确保用户每次都能加载到最新的图片。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在PHP中,可以通过设置HTTP响应头来禁止浏览器缓存图片文件格式。以下是几种常用的方法和操作流程:

    方法一:使用header()函数设置响应头

    步骤一:在PHP文件中使用header()函数设置响应头信息,将其设置为不缓存的格式。

    “`php



    “`

    上述代码中,我们使用了三个meta标签来设置不缓存图片的相关属性。

    – http-equiv=”Cache-Control” content=”no-store, no-cache, must-revalidate, post-check=0, pre-check=0″:指示浏览器不要缓存响应的任何部分。
    – http-equiv=”Pragma” content=”no-cache”:用于兼容一些老版本的浏览器。
    – http-equiv=”Expires” content=”0″:指示浏览器在接收到响应后立即过期。

    步骤二:在HTML文件中嵌入图片时,将上述meta标签添加到需要禁止缓存的位置。

    “`html
    Image
    “`

    上述代码中,我们将需要禁止缓存的图片文件的src属性指定为生成该图片的PHP文件,图片会通过该文件生成和输出。

    注意事项:

    1.以上方法适用于动态生成的图片文件,而对于静态的图片文件,可以通过修改图片文件的文件名来实现禁止缓存。

    2.以上方法只能控制浏览器对图片的缓存行为,不能控制中间缓存服务器对图片的缓存行为。

    总结:

    通过设置响应头信息或meta标签,可以禁止浏览器缓存图片文件格式。在动态生成图片的PHP文件中,使用header()函数设置响应头信息,或者在HTML中使用meta标签来设置不缓存图片文件。以上方法可以确保图片实时更新,而不会受到浏览器缓存的影响。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部