首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP OPcache是否也缓存从file_get_contents()加载的文件?

PHP OPcache不会缓存通过file_get_contents()加载的文件。

PHP OPcache是一个用于提高PHP性能的内置缓存系统,它会将PHP脚本编译成字节码并缓存起来,以避免每次请求都重新解析和编译PHP脚本。OPcache缓存的是PHP脚本文件本身,而不是脚本中通过file_get_contents()函数加载的外部文件。

file_get_contents()函数用于读取文件内容,它通常用于加载配置文件、模板文件等。这些外部文件的内容在每次请求时都会被重新读取,而不会被OPcache缓存。因此,如果使用file_get_contents()加载的文件内容发生变化,每次请求都会重新读取最新的文件内容。

如果希望缓存通过file_get_contents()加载的文件,可以考虑使用其他缓存机制,如Memcached或Redis。这些缓存系统可以将文件内容存储在内存中,以提高读取速度并减轻文件系统的负载。在使用这些缓存系统时,需要在代码中手动实现缓存逻辑,并在文件内容发生变化时更新缓存。

总结:PHP OPcache不会缓存通过file_get_contents()加载的文件。如果需要缓存这些文件内容,可以考虑使用其他缓存机制,如Memcached或Redis。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PHP加载文件时require和file_get_contents性能对比

在开发过程中发现,用require来加载一个很大(几百K,甚至几兆)配置文件时,会造成响应超时。...如果把这个配置文件内容序列化后,用file_get_contents获取文件然后反序列化方法来加载,就会快很多。 经过近两周研究,大概知道了其中原因。...) 如果遇到 require 或者 include 之类函数时,会 zend_execute 阶段重新回到 zend_compiler 阶段,开始解释PHP,执行PHP过程。...: 这两个函数执行可以分成两部分:读取文件和构造配置文件里面的数组; 先说读取文件,require读取机制是,以8192字节大小buffer循环将文件读入内存;而file_get_contents...内部是函数调用,而require是一个内置opcode,所以调用file_get_contents开销要比require略大; 所以,小文件时候,file_get_contents 读取文件

47210

如何更好使用OPcache实现性能优化

什么是opcache OPcache 通过将 PHP 脚本预编译字节码存储到共享内存中来提升 PHP 性能, 存储预编译字节码好处就是 省去了每次加载和解析 PHP 脚本开销。...禁用的话可以提高性能,但是容易导致应用不可用。 ;opcache.use_cwd=1 ; 如果启用(1),opcache会每隔设置值时间来判断脚本是否更新。...;opcache.revalidate_path=0 ; 是否保存PHP脚本中注释内容。禁用,则不会缓存PHP代码中注释,可以减少文件体积,但是一些依赖注释或者注解将无法使用。...;opcache.file_cache_only=0 ; 当文件缓存加载脚本时候,是否文件校验和进行验证。...截图上来看,开启opcache开启之后,有一些小幅度提升。并没有网上说翻倍提升。

1.1K00

如何更好使用OPcache实现性能优化

通过上面的第3步,我们可以看到每一次请求都会去解析php文件内容,不管是php文件内容是否发生变化,都会执行这样一个重复流程来生成opcode。...禁用的话可以提高性能,但是容易导致应用不可用。 ;opcache.use_cwd=1 ; 如果启用(1),opcache会每隔设置值时间来判断脚本是否更新。...;opcache.revalidate_path=0 ; 是否保存PHP脚本中注释内容。禁用,则不会缓存PHP代码中注释,可以减少文件体积,但是一些依赖注释或者注解将无法使用。...;opcache.file_cache_only=0 ; 当文件缓存加载脚本时候,是否文件校验和进行验证。...截图上来看,开启opcache开启之后,有一些小幅度提升。并没有网上说翻倍提升。

1.4K20

PHP Opcache工作原理

我们需要注意一个事情,在PHP开发中,一般会有大段注释,会被缓存OPCache中。 可以通过php.ini配置,关闭注释缓存。...默认值0 6.3 注释相关缓存 opcache.load_commentsboolean 如果禁用,则即使文件中包含注释,不会加载这些注释内容。...opcache.file_cache_consistency_checksboolean 当文件缓存加载脚本时候,是否文件校验和进行验证。...opcache.file_cache_fallbackboolean 在 Windows 平台上,当一个进程无法附加到共享内存时候, 使用基于文件缓存即:opcache.file_cache_only...=1 ; 是否加载文件/函数注释 ;opcache.load_comments=1 ; 打开快速关闭, 打开这个在PHP Request Shutdown时候会收内存速度会提高 ; 推荐 1

1.5K21

面试PHP主管岗位时候,问我PHPopcache是用来干嘛

opcache字面意思,肯定是缓存这一块。但是你是否知道它工作原理是怎样呢?这里一点一点让你了解!...我们需要注意一个事情,在PHP开发中,一般会有大段注释,会被缓存OPCache中。可以通过php.ini配置,关闭注释缓存。...默认值0 6.3 注释相关缓存opcache.load_commentsboolean 如果禁用,则即使文件中包含注释,不会加载这些注释内容。...opcache.file_cache_consistency_checksboolean 当文件缓存加载脚本时候,是否文件校验和进行验证。...opcache.file_cache_fallbackboolean 在 Windows 平台上,当一个进程无法附加到共享内存时候, 使用基于文件缓存即:opcache.file_cache_only

95020

详解:PHP加速器配置神器opcache

这得PHP代码生命周期说起,请求PHP脚本时,会经过五个步骤 Zend引擎必须文件系统读取文件、扫描其词典和表达式、解析文件、创建要执行计算机代码(称为Opcode),最后执行Opcode。...每一次请求PHP脚本都会执行一遍以上步骤,如果PHP源代码没有变化,那么Opcode不会变化,显然没有必要每次都重行生成Opcode,结合在Web中无所不在缓存机制,我们可以把Opcode缓存下来,...关闭这条指令会提升性能,但是会对已存在应用造成破坏. opcache.use_cwd=0   ; 开启文件时间戳验证 opcache.validate_timestamps=1   ; 检查脚本时间戳是否有更新周期... Framework2等. ; 推荐0 opcache.save_comments=1   ; 如果禁用,则即使文件中包含注释,不会加载这些注释内容。...第二个问题是做版本发布时,一般都是sync方式,可能会出现文件发布一半时被opcache缓存,用户访问会报程序错误,这个主要是因为文件内容缓存了一半,但是文件时间戳不会在改变,所以就算opcache检测时不会去读取新文件

2K00

PHP Opcache工作原理

OPCache 介绍 OPCache 是Zend官方出品,开放自由 opcode 缓存扩展,还具有代码优化功能,省去了每次加载和解析 PHP 脚本开销。...我们需要注意一个事情,在PHP开发中,一般会有大段注释,会被缓存OPCache中。 可以通过php.ini配置,关闭注释缓存。...默认值0 6.3 注释相关缓存 opcache.load_commentsboolean 如果禁用,则即使文件中包含注释,不会加载这些注释内容。...opcache.file_cache_consistency_checksboolean 当文件缓存加载脚本时候,是否文件校验和进行验证。...opcache.file_cache_fallbackboolean 在 Windows 平台上,当一个进程无法附加到共享内存时候, 使用基于文件缓存即:opcache.file_cache_only

1.1K21

PHP Opcache工作原理

OPCache 介绍 OPCache 是Zend官方出品,开放自由 opcode 缓存扩展,还具有代码优化功能,省去了每次加载和解析 PHP 脚本开销。...我们需要注意一个事情,在PHP开发中,一般会有大段注释,会被缓存OPCache中。 可以通过php.ini配置,关闭注释缓存。...默认值0 6.3 注释相关缓存 opcache.load_commentsboolean 如果禁用,则即使文件中包含注释,不会加载这些注释内容。...opcache.file_cache_consistency_checksboolean 当文件缓存加载脚本时候,是否文件校验和进行验证。...opcache.file_cache_fallbackboolean 在 Windows 平台上,当一个进程无法附加到共享内存时候, 使用基于文件缓存即:opcache.file_cache_only

85520

零基础到成功解题之0ctf-ezdoor

02 opcache突破口 opcache缓存文件,他作用就类似于web项目中静态文件缓存, 比如我们加载一个网页, 浏览器会自动帮我们把jpg, css缓存起来, 唯独php没有缓存, 每次均需要...我们设想A网站: A网站网页index.php具有缓存文件index.php.bin 而访问index.php时候加载缓存index.php.bin 倘若这时候具有上传,我们可以覆盖index.php.bin...是不是就会加载我们恶意文件了呢?...]/index.php.bin 即可 然后上传覆盖题目当前空白index.php.bin 即可达到恶意缓存覆盖,加载我们index.php目的 04 opcache-system_id 第一个问题是如何生成与题目一致...shell到获取flag文件 index.php文件覆盖成功后,我们又遇到了新问题 比如我们写如下shell <?php @eval($_POST['sky']); ?

84640

PHP5.4 + Zend Opcache 加速 wordpress 小结

之所以要切换到 Zend Opcache,是因为各种评测结果都显示 Zend Opcache 性能优于 APC,尤其是对 wordpress 加速更是经过验证,而且 PHP5.5 开始已经绑定了...相信很多朋友还用PHP 5.3, 建议升级 PHP5.4 吧,且不说短数组语法、闭包支持已经内置开发用 Web server,哪怕只是为了 wordpress 运行更快,值得升级。...我这里没卸载,主要是因为 Zend Opcache 没有数据缓存 API,我在没有 Memcached 时候都会用 APC 来做 Laravel 缓存驱动。...目录下会自动添加 Zend Opcache 配置文件 opcache-default.blacklist 和 opcache.ini....opcache.revalidate_freq=60 正常来说,这样就完成了 Zend Opcache 安装,通过 php -m 查看模块是否正常加载,然后 httpd -k restart 就可以了

1.9K40

WordPress使用Redis和opcache为网站加速教程

主题动态按需加载就是为了解决这个问题,不管你是否开启此功能,主题会按照当前页面自动检测是否有视频,有的话加载对应JS文件,同时自动分析支持格式加载对应格式支持js文件,不需要文件一律不加载...后台主要采用php以及数据库进行页面渲染,主题开发中保持良好开发逻辑,并且使用WP官方Object Cache对象缓存机制,确保函数高效执行,有效提高渲染速度 本篇文章我们重点说一说如何优化后台渲染速度...如果没有开启成功,请按照上面的步骤检测php扩展和Redis程序是否安装成功 image.png Opcache加速教程 根据PHP执行逻辑,每一个php函数在执行时候php会先把此函数进行编译解析...OpcachePHP官方公司开发一款PHP优化加速扩展,它原理把PHP函数编译解析后内容进行缓存,从而提高PHP执行速度!根据测试,能有效提高2到5倍左右执行效率。...80000 (default "2000");OPcache控制内存中最多可以缓存多少个PHP文件,建议设置大一点,大于你项目中所有PHP文件总和opcache.revalidate_freq=3

2K20

启用OPCache提高PHP程序性能方法

Zend OPcache 通过将 PHP 脚本预编译字节码存储到共享内存中来提升 PHP 性能, 存储预编译字节码好处就是省去了每次加载和解析 PHP 脚本开销。...(1)在命令行下可通过如下命令检查是否已经安装了OPcachephp -m | grep "OPcache" 有结果则代表已安装了。...(2)安装OPCache模块 如果你php环境没有安装该模块,可以通过如下方法进行安装: 依次执行下面的命令 wget http://pecl.php.net/get/zendopcache-7.0.2...我们做个测试,验证一下什么是opcache,新建包含如下代码一个文件: echo 'hello opcache'; 这是一段非常简单php代码,请保存为demo.php文件然后访问,随意刷新,Cache...这就类似于web项目中静态文件缓存一下,比如我们加载一个网页,浏览器会自动帮我们把jpg,css缓存起来,唯独php没有缓存,每次均需要open文件,解析代码, 执行代码这一过程,而opcache即可解决这个问题

1.1K21

使用OPCache提升PHP性能

这是 PHP 文档中关于 OPcache 简介,也就是说,OPcache 节约了每次加载和解析步骤,将第一次解析编译后脚本字节码缓存到系统共享内存中。其实,这就类似于一个不完全编译。...只不过它并不是完全一套编译流程,我们还是依赖 PHP-FPM 来运行脚本,只不过在开启 OPcache 后,PHP-FPM 会先从内存中查找是否已经有相关已经缓存字节码在内存中了,如果有的话就直接取用...另外,OPcache 是针对文件,也就是说,一个文件如果是新增加进来,只有运行过它才会缓存,如果没有运行过,它并不在当前共享内存中。...可以在未安装 OPcache 系统中使用安装包中文件来进行安装。 cd php-7.4.4/ext/opcache/ phpize ....代码只是简单输出了一行文字,不过我们使用是一个简单 mvc 框架 ,也就是说这段代码运行起来至少加载几个文件,而不是简简单单一个文件。 首先我们来看未开启 OPcache 情况。 ?

97610

php7性能优化之opcache

鸟哥在博客中说,提高PHP 7性能几个tips,第一条就是开启opcache: 记得启用Zend Opcache, 因为PHP7即使不启用Opcache速度PHP-5.6启用了Opcache快,...官网介绍: OPcache 通过将 PHP 脚本预编译字节码存储到共享内存中来提升 PHP 性能, 存储预编译字节码好处就是 省去了每次加载和解析 PHP 脚本开销。...如上图,启用opcache之前,每一次请求PHP脚本都会执行一遍以上步骤,如果PHP源代码没有变化,那么Opcode不会变化,显然没有必要每次都重新生成Opcode,结合在Web中无所不在缓存机制,...设置秒数去检测文件时间戳(timestamp)检查脚本是否更新。...;opcache.revalidate_freq=2 (default "2") ;这个选项用于设置缓存过期时间(单位是秒),当这个时间达到后,opcache会检查你代码是否改变,如果改变了PHP会重新编译它

1.3K40

Apc缓存Opcode

1、PHP执行 PHP运行阶段分成三个阶段: Parse。语法分析阶段。 Compile。编译产出opcode中间码。 Execute。...PHP APC提供两种缓存功能,即缓存Opcode(目标文件),我们称之为apc_compiler_cache。同时它还提供一些接口用于PHP开发人 APC主页是:php apc 。...PHP5.2开始,APC引入了一个小甜饼,解决了困扰大家已久文件上传进度条问题.。 6. APC高级使用 1.缓存期限: APC缓存分两部分:系统缓存和用户数据缓存....系统缓存: 是自动使用,是指APC把PHP文件源码编译结果缓存起来,然后在再次调用时先对比时间标记。如果未过期,则使用缓存代码运行。...安装opcache 编译安装PHP5.5时候加上–enable-opcache 2.在php.ini文件中添加如下配置: zend_extension=opcache.so [opcache]

57620

Amazing phpinfo()

/ OPCACHE 定义 opcache缓存文件,他作用就类似于web项目中静态文件缓存, 比如我们加载一个网页, 浏览器会自动帮我们把jpg, css缓存起来, 唯独php没有缓存, 每次均需要...设想A网站: A网站网页index.php具有缓存文件index.php.bin 而访问index.php时候加载缓存index.php.bin 倘若这时候具有上传,我们可以覆盖index.php.bin...而正是这种情况下,opcache开启给我们带了机会 利用方式不算复杂 我们在本地启动一个同版本、同配置、同目录php项目 然后写一个index.php,里面是我们恶意代码 然后访问这个文件,生成...opcache缓存文件 然后利用hex工具,更改缓存文件system_id和timestamp两个字段为题目中值 而system_id和timestamp两个字段值如何获取?...所以此时我们上传index.php.bin成功覆盖原来index.php.bin 导致访问index.php时候,服务器加载了我们上传恶意opcache文件,成功getshell 完整详细解法参考

1.1K60

Batcache 插件给服务器提速安装过程

下面简单说一下 memcached 和 opcache 原理。 1、OPcache 用来提高 PHP 代码执行效率, 减少每次加载和解析 PHP 脚本开销。...对于 php7 默认集成了 OPcache,所以在 php.ini 中开启(lnmp 开启 Opcache 脚本缓存提高 php 性能)就可以了。... 和 object-cache.php 过程记录及内存缓存加速效果 MemcacheD 缓存是否启用成功及命中率检查 Memcached 只允许本地访问 11211 端口 解决未授权漏洞 多种方法实时监测...提示:网上有些博主说要修改一下参数,但是老魏修改了之后出现了缓存不更新问题,如果你遇到同样问题,请不要修改,直接上传官方源文件,网页就正常了。...魏艾斯博客测试时候变化最明显是后台点击编辑文件等待时间,上了 batcache 之后标题栏上小圆圈转三圈减少为转一圈就能进去了,而且前台网页打开时间也有一定提速,总体来说效果还是蛮不错

1.4K30

使用 opcache 优化生产环境 PHP

OPcache 通过将 PHP 脚本预编译字节码存储到共享内存中来提升 PHP 性能, 存储预编译字节码好处就是 省去了每次加载和解析 PHP 脚本开销。...=8 ;最大缓存文件数目,命中率不到 100% 的话, 可以试着提高这个值 opcache.max_accelerated_files=4000 ;60s检查一次文件更新 opcache.revalidate_freq...=0 ; 是否快速关闭, 打开后在PHP Request Shutdown时候回收内存速度会提高 opcache.fast_shutdown=1 二、部分配置参数说明 opcache.revalidate_freq...这个配置选项用于设置缓存过期时间,如果设置为0,每次请求时,都会检查文件是否修改,很耗资源,所以如果暂时不需要使用opcache,直接把opcache.enable设置为0即可。...-type f -print | grep php | wc -l 这个命令来快速计算你代码库中PHP文件数。

36630

PHP 7.4中使用预加载方法详解

Opcache,但更多 虽然预加载是在顶级操作opcache上构建,但它并不完全相同。Opcache将获取您PHP文件,将其编译为“操作码”,并将这些编译后文件存储在磁盘上。...Opcached文件不了解其他文件。如果你有一个A类扩展类B,你仍然需要在运行时将它们链接在一起。此外,opcache执行检查以查看源文件是否已被修改,并将基于此文件使其缓存无效。...规则很简单: 您提供了一个预加载脚本,并使用您php.ini文件链接到它 opcache.preload 您要预加载每个PHP文件都应该opcache_compile_file()preload脚本中传递到...这意味着如果一个类具有未预加载依赖项,则其本身不能被预加载。 这不是一个致命问题,您服务器将正常工作; 但是你不会拥有你真正想要所有预装文件。...应该预先加载哪些类依赖于您特定项目。在开始时尽可能简单地预加载是明智。如果您确实需要增加几个百分比,则必须在运行时监控代码。 所有这些当然可以自动化,并且可能在将来完成。

1.5K21

opcache优化作用

php执行流程: 1. PHP 初始化执行环节,启动 Zend 引擎,加载注册扩展模块。 2. 初始化后读取 PHP 脚本文件,Zend 引擎对 PHP 文件进行词法分析,语法分析,生成语法树。...在 PHP-FPM 模式下,步骤 1 在启动时执行一次,后续请求中不再执行;步骤 2 3 4每次请求都需要执行一遍。...opcache就是省略了步骤2 、3 ,把opcode缓存住了,就是opcache OPCache 缓存机制主要是:将 PHP 编译产生字节码以及数据缓存到共享内存中,在每次请求,从缓存中直接读取编译后...opcache配置: ;允许在 web 环境使用 opcache.enable=1 ;允许在 cli 环境使用 opcache.enable_cli=1 ;OPcache 共享内存大小,以兆字节为单位...哈希表中可存储脚本文件数量上限 opcache.max_accelerated_files=4000 ;检查脚本时间戳是否有更新周期,以秒为单位。

47450
领券