我有多个网址,每个指向一个XML文件,尽管它指向手动URL和等待被收集并保存到桌面的每个XML几分钟。
为此我在寻找一个脚本,可以自动访问的URL(一一)晚上和每个XML下载到我们的Apache服务器上的文件夹。
所以我认为需要以下两个代码:1. PHP脚本访问多个定义的URL的; 2.克朗脚本上述点-1夜间运行。
我似乎无法在网络上找到相关的任何东西,所以我希望与你同在。 我想感谢你提前采取的精力和时间。
亲切的问候,理查德·
我有多个网址,每个指向一个XML文件,尽管它指向手动URL和等待被收集并保存到桌面的每个XML几分钟。
为此我在寻找一个脚本,可以自动访问的URL(一一)晚上和每个XML下载到我们的Apache服务器上的文件夹。
所以我认为需要以下两个代码:1. PHP脚本访问多个定义的URL的; 2.克朗脚本上述点-1夜间运行。
我似乎无法在网络上找到相关的任何东西,所以我希望与你同在。 我想感谢你提前采取的精力和时间。
亲切的问候,理查德·
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");
我希望这有帮助..
警告:我写它的头脑,这不是测试。
如果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