我已经设置了一个PHP脚本,每月使用PHP复制功能下载IP2Location数据。下面的脚本运行得很好并下载文件(文件大小也正确,大约15 MB):
include('auth/resources/funcs.inc.php');
copy('http://www.ip2location.com/download?productcode=DB11LITEBIN&login=myemail@host.com&password=mypassword', LOCAL_DATAFILES . '/ip/DB11_'.date('d-m-Y', time()).'.BIN');
$myFile = LOCAL_DATAFILES . "/ip/active_db.txt";
$fh = fopen($myFile, 'w') or die();
$stringData = 'DB11_'.date('d-m-Y', time()).'.BIN';
fwrite($fh, $stringData);
fclose($fh);
但是每当我尝试运行IP2Location PHP文件时,它都会显示以下错误:
警告:unpack():类型V:输入不够,需要4,在第376行/path/to/file/IP2Location.inc.php中有0
我在手动下载时测试了IP数据库中的IP2Location.inc.php,它运行正常,没有错误。但是,当我使用复制功能通过PHP下载数据库时,它会显示大量错误,这使我认为它会以某种方式破坏文件。我已经在我的服务器上的另一个zip文件上测试了复制功能,它运行正常,没有损坏。我不确定问题是什么,有人有任何想法吗?
答案 0 :(得分:1)
从服务器下载的文件是.ZIP扩展名。
在使用IP2Location PHP API查询之前,请先解压缩文件以获取CSV或BIN文件。