Home > Backend Development > PHP Tutorial > ecshop改了模板类使用memcached之后如何判断调用成功

ecshop改了模板类使用memcached之后如何判断调用成功

WBOY
Release: 2016-06-13 12:11:14
Original
1182 people have browsed it

ecshop改了模板类使用memcached之后怎么判断调用成功?
问题就是这样,
function fetch
function is_cached
改了这两个函数部分
ecshop 自身是不报错了,但是现在就是不知道 ecshop 对缓存调用 成功不?请各位大大pp。help。

<br />/**<br />     * 处理模板文件<br />     *<br />     * @access  public<br />     * @param   string      $filename<br />     * @param   sting      $cache_id<br />     *<br />     * @return  sring<br />     */<br />    function fetch($filename, $cache_id = '')<br />    {<br />        if (!$this->_seterror)<br />        {<br />            error_reporting(E_ALL ^ E_NOTICE);<br />        }<br />        $this->_seterror++;<br /><br />        if (strncmp($filename,'str:', 4) == 0)<br />        {<br />            $out = $this->_eval($this->fetch_str(substr($filename, 4)));<br />        }<br />        else<br />        {<br />            if ($this->_checkfile)<br />            {<br />                if (!file_exists($filename))<br />                {<br />                    $filename = $this->template_dir . '/' . $filename;<br />                }<br />            }<br />            else<br />            {<br />                $filename = $this->template_dir . '/' . $filename;<br />            }<br /><br />            if ($this->direct_output)<br />            {<br />                $this->_current_file = $filename;<br /><br />                $out = $this->_eval($this->fetch_str(file_get_contents($filename)));<br />            }<br />            else<br />            {<br />                if ($cache_id && $this->caching)<br />                {<br />                    $out = $this->template_out;<br />                }<br />                else<br />                {<br />                    if (!in_array($filename, $this->template))<br />                    {<br />                        $this->template[] = $filename;<br />                    }<br /><br />                    $out = $this->make_compiled($filename);<br /><br />                    if ($cache_id)<br />                    {<br />                        $cachename = basename($filename, strrchr($filename, '.')) . '_' . $cache_id;<br />                        $data = serialize(array('template' => $this->template, 'expires' => $this->_nowtime + $this->cache_lifetime, 'maketime' => $this->_nowtime));<br />                        $out = str_replace("\r", '', $out);<br />						<br />						$memcache = new Memcache;<br />						$memcache->connect("127.0.0.1", 11211);<br />						$CacheID = md5($filename.$cache_id.$cachename);<br /><br />                        while (strpos($out, "\n\n") !== false)<br />                        {<br />                            $out = str_replace("\n\n", "\n", $out);<br />                        }<br />						<br />						$memcache->set($CacheID , '<?php exit;?>' . $data . $out , 3600);<br />						<br />                        $this->template = array();<br />                    }<br />                }<br />            }<br />        }<br /><br />        $this->_seterror--;<br />        if (!$this->_seterror)<br />        {<br />            error_reporting($this->_errorlevel);<br />        }<br /><br />        return $out; // 返回html数据<br />    }<br />
Copy after login


<br />/**<br />     * 判断是否缓存<br />     *<br />     * @access  public<br />     * @param   string     $filename<br />     * @param   sting      $cache_id<br />     *<br />     * @return  bool<br />     */<br />    function is_cached($filename, $cache_id = '')<br />    {<br />        $cachename = basename($filename, strrchr($filename, '.')) . '_' . $cache_id;<br />		<br />		$memcache = new Memcache;<br />		$memcache->connect("127.0.0.1", 11211);<br />		$CacheID = md5($filename.$cache_id.$cachename);<br />		<br />        if ($this->caching == true && $this->direct_output == false)<br />        {<br />			if ($data = $memcache->get($CacheID))<br />            {<br />                $data = substr($data, 13);<br />                $pos  = strpos($data, '<');<br />                $paradata = substr($data, 0, $pos);<br />                $para     = @unserialize($paradata);<br />                if ($para === false || $this->_nowtime > $para['expires'])<br />                {<br />                    $this->caching = false;<br /><br />                    return false;<br />                }<br />                $this->_expires = $para['expires'];<br /><br />                $this->template_out = substr($data, $pos);<br /><br />                foreach ($para['template'] AS $val)<br />                {<br />                    $stat = @stat($val);<br />                    if ($para['maketime'] < $stat['mtime'])<br />                    {<br />                        $this->caching = false;<br /><br />                        return false;<br />                    }<br />                }<br />            }<br />            else<br />            {<br />                $this->caching = false;<br /><br />                return false;<br />            }<br /><br />            return true;<br />        }<br />        else<br />        {<br />            return false;<br />        }<br />    }<br />
Copy after login

------解决思路----------------------
你查下数据不就行了

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template