用php程序自动读取远程文件并更新到本地,每天一次,如何做?

用php程序自动读取远程文件并更新到本地,每天一次,如何做?,第1张

windows:

准备:

1.将 php.exe 的路径加入 windows 的环境变量

2.编写文件:

D:\fileGeter.php

<?php

$filelist = Array(

"http://**********/a.txt",

"http://**********/b.txt",

)

$saveas="D:\\"

$endl = ".txt"

function getfile(){

foreach( $filelist as $k =>$file )

file_put_contents( $saveas . $k . $endl , file_get_contents( $file ) )

}

getfile()

?>

3.执行cmd命令

at 11:20 /every:1,2,3,4,5,6,7 "php D:\fileGeter.php"

linux 更方便

直接把此文件包含进 你要写的程序里就OK了,

fileGeter.php:

<?php

...

...

$saveas = "./"

...

..

?>

index.php:

<?php

require_once("fileGeter.php")

//and so on .....

.....

....

....

?>

具体看步骤吧:

function getFile($url,$save_dir='',$filename='',$type=0){

if(trim($url)==''){

return false

}

if(trim($save_dir)==''){

$save_dir='./'

}

if(0!==strrpos($save_dir,'/')){

$save_dir.='/'

}

//创建保存目录

if(!file_exists($save_dir)&&!mkdir($save_dir,0777,true)){

return false

}

//获取远程文件所采用的方法

if($type){

$ch=curl_init()

$timeout=5

curl_setopt($ch,CURLOPT_URL,$url)

curl_setopt($ch,CURLOPT_RETURNTRANSFER,1)

curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout)

$content=curl_exec($ch)

curl_close($ch)

}else{

ob_start()

readfile($url)

$content=ob_get_contents()

ob_end_clean()

}

$size=strlen($content)

//文件大小

$fp2=@fopen($save_dir.$filename,'a')

fwrite($fp2,$content)

fclose($fp2)

unset($content,$url)

return array('file_name'=>$filename,'save_path'=>$save_dir.$filename)

}

getFile($url,$save_dir,$filename,1)//调用

写段伪代码给你:

//先获取远程网页的源代码

$html = file_get_contents(http://mp3.baidu.com/歌曲播放页.html)

//用正则表达式分析源代码中的资源链接

$link = preg_match_all(正则)...

//读取资源文件

$bin = file_get_contents(http://mp3.baidu.com/时间都去哪了.mp3)

//保存资源文件到本地

$fp = fopen(时间都去哪了.mp3, wb)

$fp.writh($bin)

$fp.close()

先说好,不要让我写完整的源代码,因为这里还涉及一些细节,比如说,你才提供的 xls ,就是需要登录的,那么你还要实现模拟登录。

有些网站的资源链接有各种限制,需要你慢慢去深入。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/8144027.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存