альтернатива fpassthru () - PullRequest
2 голосов
/ 22 мая 2011

Я использую плагин WP-MINIFY в моем блоге Wordpress, но из-за настроек безопасности моего сервера функция 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);            
    }
}

У вас есть идеи?

Ответы [ 2 ]

3 голосов
/ 22 мая 2011
echo stream_get_contents($fp);

(вместо строки fpassthru) делает то же самое, только с большим потреблением памяти (и менее оптимизированным, чем fpassthru).

2 голосов
/ 22 мая 2011

Вы можете использовать:

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);            
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...