温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHP中有哪些FTP相关函数

发布时间:2021-07-14 15:55:59 阅读:138 作者:Leah 栏目:开发技术
PHP开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

本篇文章为大家展示了PHP中有哪些FTP相关函数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

具体如下:

<?php
set_time_limit(0);
//转存本地地址
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_idtrue);
/**
 * 创建文件并写入内容
 *
 * @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;
}
/**
 * 创建目录
 *
 * @param string $path path
 *
 * @return no
 */
function createFolder ($path)
{
  if (! file_exists($path)) {
    createFolder(dirname($path));
    if (mkdir($path0777)) {
      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='';
//获取详细书籍章节列表
foreach ($_secondCateorylist as $key=>$book){
$listItemString.=sprintf($items,$book['name'], $book['detail']);
$_bookListDir $_secondCateoryDir.'\\'.$book['name'];
$chapters getBook($conn_id,$_bookListDir);
//生产book章节html
getBookofChapter ($book,$chapters);
//缓存bookid和章节信息
$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($bookCachetrue).";\n?>";
echo "\n建立缓存文件:".createFile(STORE_PATH, 'bookcache.php'$arrString);
/**
 * 抓取书籍章节信息
 *
 * @param array $bookIds 书籍章节信息
 *
 * @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_idtrue);
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中有哪些FTP相关函数,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×