php小偷程式新概念之資源本地化(一)

來源:互聯網
上載者:User

最近做了一個seo項目是針對一些優秀的網站,把它們的資源變成我們自己。

 要求是:要能即時更新,靜態頁面本地化,本地化的頁面不能出現原有的主題。

即時更新和替換主題利用一般的小偷程式就可以實現,但是本地化就得把頁面下載下來,這樣一來樣式,圖片路徑,即時更新等一系列的問題就要注意了。

css,js,圖片等資源都要下載到本地,這些檔案下載一兩個沒問題,一旦批量下載就要仔細觀察它們的路徑規則,而且一般css裡面會含有背景圖片,這也需要使用本地圖片。所以首先要解決資源本地化,我寫了一個小偷本地化的類,其中有幾個方法可以實現資源本地化,暫時先展示資源本地化的方法,待介紹完了將開源所有的代碼以及使用方法:

        /** * 組建檔案夾,但是不組建檔案 * * @param $address */public function get_file_adress($address){//$first = substr($address, 0, 1);$dirs = explode('/',$address);$this->array_remove_empty($dirs);//$address = implode($dirs, '/');//if($first == '/') $address = '/'.$address;$dirs = array_values($dirs);$nums = count($dirs);if($nums > 1){$s=0;while ($s<$nums-1){$dirs[$s] = self::filename_safe($dirs[$s]);if(!file_exists($dirs[$s])){if(self::filename_check($dirs[$s])){if(!file_exists($dirs[$s])) @$mkdir = mkdir($dirs[$s],0777);}}++$s;$dirs[$s]=$dirs[$s-1]."/".$dirs[$s];}}}    /**     * 組建檔案     *     * @param $filename     * @param $url     */    private function grab_file($filename, $url) {        if($url == "") return false;        if($filename == "") return false;//echo $filename.'||'.$url.'<hr>';        $filename = ltrim($filename, '/');        if(!file_exists($filename))        {            $this->get_content($filename, $url);        }        /*$session_name = "grab_caches_file";         if($_SESSION[$session_name])         {            $grab_caches_time = $_SESSION[$session_name];//echo time().'||'.$grab_caches_time.'<hr>';            if((time() - $grab_caches_time) >= $this->cache_time)            {            $_SESSION[$session_name] = null;            unset($_SESSION[$session_name]);            $this->get_content($filename, $url);            }            }            else            {            $_SESSION[$session_name] = time();            $this->get_content($filename, $url);            }*/    }    public function get_content($filename, $url)    {//echo $filename.'||'.$url.'<hr>';        $content = curl_get_content($url);        if($content){            @file_put_contents($filename, $content);            return true;        }else{            return false;        }    }

先利用get_file_adress函數組建檔案存放的檔案夾,再用grab_file組建檔案。

執行個體示範:http://news.80jiaju.com/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.