我的客户端使用Quickbooks App,我需要将数据从quickbook导入PHP数组,以便我可以添加到数据库。
这是IIF文件
这是我的数据库结构
我找到了这个精彩的程序http://php-quickbooks-iif-viewer-or-converter.soft112.com/download.html并设法读取数据并存储它。
<?php
$out="";
$i=1;
$data = file_get_contents("customers.IIF");
$lines = split("\n", $data);
$customers = array();
$j = 1;
foreach ($lines as $line)
{
$endtag = strpos($line, "\t");
$tag = substr($line, 0, $endtag);
if ($tag=="!CUST")
{
$line = str_replace("\"", "", $line);
$arline = explode("\t", $line);
echo print_r($arline);
echo "<br><br>";
}
elseif ($tag=="CUST")
{
$line = str_replace("\"", "", $line);
$arline = explode("\t", $line);
$name = explode(" ", $arline[19]);
if ( count($name) == 2 )
{
$fname = $name[0];
$lname = "'" . $name[1] . "'";
}
else
{
$fname = $arline[19];
$lname = 'NULL';
}
$i++; $j++;
$cli = "INSERT INTO 'bamboo_clients' ('id', 'name', 'address1', 'address2', 'city', 'province', 'country', 'postal_code', 'website', 'tax_status', 'client_notes') VALUES\n"
. "($i, '$arline[1]', '$arline[5]', '', '$arline[6]', '$arline[7]', 'USA', '$arline[8]', NULL, 1, NULL);\n\n";
$con = "INSERT INTO 'bamboo_clientcontacts' ('id', 'client_id', 'first_name', 'last_name', 'title', 'email', 'phone', 'password', 'access_level', 'supervisor', 'last_login', 'password_reset') VALUES\n"
. "($j, $i, '$fname', $lname, NULL, '$arline[17]', '$arline[14]', NULL, 0, NULL, NULL, NULL);\n\n";
$out .= $cli . $con;
print_r($arline);
// Create connection
$connection=mysqli_connect("localhost","root","","cakephp");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$query="INSERT INTO customers
(country,company,user_id ,mobile , email, title,cutomer_name)
VALUES
('$arline[5]','$arline[1]','$arline[2]','$arline[14]','$arline[17]','$arline[28]','$arline[18]');";
print_r($query);
mysqli_query($connection,$query);
//echo $cli;
//echo $con;
}
}
file_put_contents("bambooinvoice-customers.sql", $out);
?>
以上是我修改后的IIF代码。现在我需要导出到IIF。反正有没有实现?我只需要出口客户名单。
答案 0 :(得分:0)
Intuit已经弃用了文件格式多年,多年。众所周知,它会损坏QuickBooks公司的文件,并且它的功能非常有限。 您不应该使用IIF导入/导出。
您应该使用QuickBooks SDK。最简单的方法是从QuickBooks PHP DevKit开始(免责声明:我是作者)。
如果你遵循这个原则,你需要大约一个小时的时间才能将客户工作,自动导出到QuickBooks。
答案 1 :(得分:0)
我以正确的顺序在SQL服务器上建立了数据视图,然后让php cli脚本为我建立了扩展名为.iif的文本文件。 php用必需的制表符分隔写出了iif的标头,然后数据从查询中出来,而不是CSV格式,它将一个制表符插入到输出中作为列分隔符。不需要SDK。
答案 2 :(得分:-1)
答案是没有第三方插件,或者没有开发自己的插件,只有手动方法可以从Quickbooks导出IIF文件。 (https://quickbooks.intuit.com/community/Reports-and-accounting/Export-or-import-Intuit-Interchange-Format-IIF-files/m-p/203229)
由于您的目标是PHP,所以正如Palmer所述,使用webconnect和PHP DevKit可能正是您想要的。
但是,帕尔默先生在暗示IIF未获得QB批准时是不正确的,实际上他们仍在继续扩大IIF的使用范围。但是,IIF似乎并不是您真正想要使用的工具。