fpassthru() 替代方案

发布于 2024-11-09 08:46:17 字数 909 浏览 0 评论 0原文

我在我的 WordPress 博客上使用 WP-MINIFY 插件,但由于我的服务器的安全性配置中,fpassthru() 功能被禁用。所以,我必须找到一种替代方法,这样我就可以编辑插件。

我在缩小文件时遇到此错误:


警告:出于安全原因,fpassthru() 已在 /home/blablabla/public_html/wp-content/plugins/wp-minify/min/lib/Minify/Cache/File.php 中禁用 on line 84

这是使用 fpassthru 的函数:

/**
 * Send the cached content to output
 *
 * @param string $id cache id (e.g. a filename)
 */
public function display($id)
{
    if ($this->_locking) {
        $fp = fopen($this->_path . '/' . $id, 'rb');
        flock($fp, LOCK_SH);
        fpassthru($fp);
        flock($fp, LOCK_UN);
        fclose($fp);
    } else {
        readfile($this->_path . '/' . $id);            
    }
}

你有什么想法吗?

I'm using WP-MINIFY plugin on my Wordpress blog but because of my server's security configurations, fpassthru() function is disable. So, i have to find an alternative way, so i can edit plugin.

I'm getting this error on minified files :

Warning: fpassthru() has been disabled for security reasons in /home/blablabla/public_html/wp-content/plugins/wp-minify/min/lib/Minify/Cache/File.php on line 84

This is the function which using fpassthru :

/**
 * Send the cached content to output
 *
 * @param string $id cache id (e.g. a filename)
 */
public function display($id)
{
    if ($this->_locking) {
        $fp = fopen($this->_path . '/' . $id, 'rb');
        flock($fp, LOCK_SH);
        fpassthru($fp);
        flock($fp, LOCK_UN);
        fclose($fp);
    } else {
        readfile($this->_path . '/' . $id);            
    }
}

Do you have any idea?

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

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

发布评论

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

评论(2

成熟的代价 2024-11-16 08:46:17
echo stream_get_contents($fp);

(而不是 fpassthru 行)执行相同的操作,只是消耗更多内存(并且比 fpassthru 优化得更少)。

echo stream_get_contents($fp);

(instead of the fpassthru line) does the same thing, only with more memory consumption (and less optimized than fpassthru).

月亮是我掰弯的 2024-11-16 08:46:17

你可以使用:

public function display($id)
{
    $filename=$this->_path . '/' . $id;
    if ($this->_locking) {
        $fp = fopen($filename, 'rb');
        flock($fp, LOCK_SH);
        //fpassthru($fp);
        $out=fread($fp,filesize($filename));
        echo $out;
        flock($fp, LOCK_UN);
        fclose($fp);
    } else {
        readfile($filename);            
    }
}

You could use:

public function display($id)
{
    $filename=$this->_path . '/' . $id;
    if ($this->_locking) {
        $fp = fopen($filename, 'rb');
        flock($fp, LOCK_SH);
        //fpassthru($fp);
        $out=fread($fp,filesize($filename));
        echo $out;
        flock($fp, LOCK_UN);
        fclose($fp);
    } else {
        readfile($filename);            
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文