亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        PHP中FTP相關(guān)函數(shù)小結(jié)

        字號:


            這篇文章主要介紹了PHP中FTP相關(guān)函數(shù),涉及php操作ftp的連接、傳輸及文件與目錄的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
            <?php
            set_time_limit(0);
            //轉(zhuǎn)存本地地址
            define(
              'STORE_PATH',
              dirname(__FILE__) . '/../../../../temp_data/test/'
            );
            define('LIST_PATH', STORE_PATH . 'list/');
            define('CHAPTER_PATH', LIST_PATH . 'chapter/');
            define('DETAIL_PATH', LIST_PATH . 'detail/');
            createFolder(STORE_PATH);
            createFolder(LIST_PATH);
            createFolder(CHAPTER_PATH);
            createFolder(DETAIL_PATH);
            $ftp_server = "ip";
            $ftp_user = "anonymous";
            $ftp_pass = "anonymous";
            $conn_id = ftp_connect ( $ftp_server ) or die ( "Couldn't connect to $ftp_server" );
            if (@ftp_login ( $conn_id, $ftp_user, $ftp_pass )) {
            echo "Connected as $ftp_user@$ftp_server\n";
            } else {
            echo "Couldn't connect as $ftp_user\n";
            }
            ftp_pasv($conn_id, true);
            /**
             * 創(chuàng)建文件并寫入內(nèi)容
             *
             * @param string $path   path/
             * @param string $fileName filename
             * @param string $data   content
             *
             * @return string 返回路徑
             */
            function createFile ($path, $fileName, $data)
            {
              if (empty($data)) {
                return false;
              }
              file_put_contents($path . $fileName, $data);
              return $path . $fileName;
            }
            /**
             * 創(chuàng)建目錄
             *
             * @param string $path path
             *
             * @return no
             */
            function createFolder ($path)
            {
              if (! file_exists($path)) {
                createFolder(dirname($path));
                if (mkdir($path, 0777)) {
                  echo "\n dir not find ,make dir " . dirname($path) . " is ok!";
                } else {
                  echo "\n dir not find ,make dir " . dirname($path) . " is fail!";
                }
              }
            }
            /**
             * 抓取電子書籍的類別
             *
             * @param string $xmlUrl    xml地址
             * @param string $saveFileName 文件名稱
             *
             * @return string 返回路徑
             */
            function getClassXml ($conn_id,$categoryDir, $saveFileName = 'category.xml')
            {
              //獲取頂級欄目
            $clist = getDirListFormFtp($conn_id, $categoryDir);
            $itemTPL = '<Item><ID>%s</ID><Name>%s</Name></Item>';
            $items='';
            foreach ($clist as $key=>$value){
            $items .=sprintf($itemTPL,$value['name'],$value['detail']);
            }
            $bodyTPL='<Tofo><Class>%s</Class></Tofo>';
            $data = sprintf($bodyTPL,$items);
              echo "\n".createFile(STORE_PATH, $saveFileName, $data);
            }
            set_time_limit(0);
            $start_time = time();
            $bookCache=array();
            $categoryDir = "\\tingshu\\web";
            getClassXml($conn_id,$categoryDir);
            //獲取頂級欄目
            $clist = getDirListFormFtp($conn_id, $categoryDir);
            //獲取二級欄目分類
            foreach ($clist as $key=>$value){
            $_secondCateoryDir = $categoryDir.'\\'.$value['name'];
            $_secondCateorylist = getDirListFormFtp($conn_id, $_secondCateoryDir);
            $listData='';
            $listTPL='<Tofo><Class><ID>%s</ID><Name>%s</Name><Books>%s</Books></Class></Tofo>';
            $items ='<Item><ID>%s</ID><Name>%s</Name></Item>';
            $listItemString='';
            //獲取詳細(xì)書籍章節(jié)列表
            foreach ($_secondCateorylist as $key=>$book){
            $listItemString.=sprintf($items,$book['name'], $book['detail']);
            $_bookListDir = $_secondCateoryDir.'\\'.$book['name'];
            $chapters = getBook($conn_id,$_bookListDir);
            //生產(chǎn)book章節(jié)html
            getBookofChapter ($book,$chapters);
            //緩存bookid和章節(jié)信息
            $bookCache[$book['name']] = array('category'=>$value['name'],'chapters'=>$chapters);
            }
            //生成二級欄目列表頁
            $listData = sprintf($listTPL, $value['name'], $value['detail'],$listItemString);
            $list_save_path = $value['name'] . '.xml';
              echo "\n".createFile(LIST_PATH, $list_save_path, $listData);
            }
            $arrString = "<?php \n \$bookCache=".var_export($bookCache, true).";\n?>";
            echo "\n建立緩存文件:".createFile(STORE_PATH, 'bookcache.php', $arrString);
            /**
             * 抓取書籍章節(jié)信息
             *
             * @param array $bookIds 書籍章節(jié)信息
             *
             * @return boolean 返回是否抓取成功
             */
            function getBookofChapter ($bookinfo,$chapters)
            {
              if (! is_array($chapters)) {
                return false;
              }
              $bookData = '';
            $bookTPL = '<Tofo><Books><ID>%s</ID><Name>%s</Name><Volumes>%s</Volumes></Books></Tofo>';
              $bookItemTPL='<Item><ID>%s</ID><Name>%s</Name></Item>';
              //<Play>%s</Play>
            //<Download>%s</Download>
            //,$item['downurl'],$item['downurl']
              $chapterString='';
            foreach ($chapters as $key=>$item){
              $chapterString.=sprintf($bookItemTPL,$item['name'],$item['detail']);
              }
              //生成二級欄目列表頁
            $bookData = sprintf($bookTPL, $bookinfo['name'], $bookinfo['detail'],$chapterString);
             $book_chapter_save_path = $bookinfo['name'] . '.xml';
              if (! empty($bookData)) {
                echo "\n".createFile(CHAPTER_PATH, $book_chapter_save_path, $bookData);
              }
              return true;
            }
            function getBook($conn_id,$_bookListDir){
            $chapter=array();
            $buff = ftp_nlist ( $conn_id, $_bookListDir );
            if(is_array($buff)){
            $resourceArray = array();
            foreach ($buff as $key=>$value){
            if(strstr( $value, '.txt' )){
            }else{
            $resourcesName = str_replace($_bookListDir.'\\', "", $value);
            $temp = preg_split ( '/\./',$resourcesName);
            $resourceArray[trim($temp[0])]=$resourcesName;
            }
            }
            foreach ($buff as $key=>$value){
            if(strstr( $value, '.txt' )){
            $name = trim(str_replace(".txt","",str_replace($_bookListDir.'\\', "", $value)));
            $chapter[$name] = array (
            'name' => $name,
            'detail' => getFileContentsFormFtp ( $conn_id, $value ),
            'downurl' =>$resourceArray[$name]
            );
            }
            }
            }
            ksort($chapter , SORT_NUMERIC);
            echo "\n";
            var_dump('chapter index :'.implode(array_keys ($chapter), ','));
            echo "\n";
            return $chapter;
            }
            function getDirListFormFtp($conn_id, $categoryDir) {
            $categoryArray = array ();
            $dirs = getDirNameFormFtp ( $conn_id, $categoryDir );
            //獲取分類描述
            foreach ( $dirs as $key => $value ) {
            $path = $categoryDir . '\\' . $value . '.txt';
            $categoryArray [] = array ('name' => $value, 'detail' => getFileContentsFormFtp ( $conn_id, $path ) );
            }
            return $categoryArray;
            }
            function getFileContentsFormFtp($conn_id, $server_file) {
            $_tempFileName = STORE_PATH.'temp.tmp';
            $content = '';
            try {
            if (ftp_get ( $conn_id, $_tempFileName, $server_file, FTP_ASCII )) {
            $content = file_get_contents ( $_tempFileName );
            }
            } catch (Exception $e) {
            var_dump('error timeout:-----');
            global $ftp_server;
            $conn_id = ftp_connect ( $ftp_server );
            if (@ftp_login ( $conn_id, $ftp_user, $ftp_pass )) {
            echo "Connected as $ftp_user@$ftp_server\n";
            } else {
            echo "Couldn't connect as $ftp_user\n";
            }
            ftp_pasv($conn_id, true);
            if (ftp_get ( $conn_id, $_tempFileName, $server_file, FTP_ASCII )) {
            $content = file_get_contents ( $_tempFileName );
            }
            }
            $content = iconv ( "GBK", "UTF-8//IGNORE", trim($content) );
            echo "\n";
            var_dump('file name :'.$server_file.';content:'.$content);
            return $content;
            }
            function getDirNameFormFtp($conn_id, $dirString) {
            $buff = ftp_rawlist ( $conn_id, $dirString );
            $dirs = array_filter ( $buff, "dirfilter" );
            foreach ( $dirs as $key => $value ) {
            $temp = preg_split ( '/<DIR>/', $value );
            $dirs [$key] = trim ( $temp [1] );
            }
            asort($dirs , SORT_NUMERIC);
            return $dirs;
            }
            function dirfilter($var) {
            return (strstr ( $var, '<DIR>' ));
            }
            ftp_close ( $conn_id );
            希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。