我有多个URL,每个URL都指向一个XML文件,但需要花费几分钟手动指向URL并等待收集每个XML并将其保存到桌面。
因此我正在寻找一个可以在晚上自动访问URL(逐个)并将每个XML下载到Apache服务器上的文件夹的脚本。
所以我认为需要以下两个代码: 1. PHP脚本访问多个已定义的URL; 2. Cron脚本每晚在第-1点之上运行。
我似乎无法在网上找到任何相关内容,所以我希望与你同在。 我要提前感谢您付出的努力和时间。
亲切的问候, 理查德
答案 0 :(得分:0)
class SimpleCrawler {
private $url;
private $data;
public function __construct($url){
$this->url = $url;
$this->load();
}
public function load(){
$this->data = file_get_contents($this->url);
}
public function getData(){
return $this->data;
}
}
文件类:
Class File {
protected static $instance;
protected $isResource = false;
public $item;
public static function getInstance(){
if(!self::$instance){
self::$instance = new self();
}
return self::$instance;
}
public function setResource($flag){
$this->isResource = $flag;
}
public static function fromFile($path){
$obj = self::getInstance();
$obj->item = $path;
return $obj;
}
public static function fromSource($string){
$obj = self::getInstance();
$obj->item = $string;
$obj->setResource(true);
return $obj;
}
public function save($path){
try {
if($this->isResource){
$fopen = fopen($path,'w');
fwrite($fopen,$this->item);
}
else {
copy($this->item,$path);
}
}
Catch(Exception $e){
throw $e;
}
}
}
以及如何使用它:
$getXML = new SimpleCrawler('http://mydomain.com/file.xml');
$xmlString = $getXML->getData();
$file = File::fromSource($xmlString);
$file->save("/my/writtable/path/file.xml");
我希望这有帮助..
警告:我是从心里写下来的,没有经过测试。
答案 1 :(得分:0)
如果XML脚本不需要身份验证,您可以使用简单的shell脚本执行此操作,并使用wget或curl下载文件
wget -O /local/path/myfile.xml http://example.com/myfile.xml
或
curl -o /local/path/myfile.xml http://example.com/myfile.xml