从csv文件中提取数据并使用curl将每一行提交到url

时间:2012-05-07 11:14:28

标签: php curl

我正在寻找以下代码的指导。我有许多格式为

的大型CSV文件
firstname,lastname,address,state,zip,email,homephone,dob,optindate,ipaddress,url
Joey,Demo,4004 S. Louise Ave. 206,Sioux Falls,SD,57106,jdemo@hotmail.com,6053231657,06/18/1944,4/19/2008 11:58:34,12.174.252.216,http://www.ecoupons.com

我正在尝试添加一些新变量,将数据转换为http_build_query并使用POST将每行提交到URL。

这是我的代码

$processid = '123454r4rt5rt5rtr';
$version = '1.0.0';
$partnercode = 'ABC';
$listid = 'ID12345';

$fp= fopen("test.csv", "r");

while (!feof($fp) ) {
     list($firstname,$lastname,$address,$city,$state,$zip,$email,$phone,$dob,$optindate,$ipaddress,$url) = fgetcsv($fp);
$data = array('firstname' => $firstname,
'lastname' => $lastname,
'address' => $address,

'city' => $city,
'state' => $state,
'zip' => $zip,
'email' => $email,
'homephone' => $phone,
'dob' => $dob,
'optindate' => $optindate,
'ipaddress' => $ipaddress,

    'url' => $url,
    'processid' => $partnercode,
    'version' => $version,
    'partnercode' => $partnercode,
    'listid' => $listid);

    );

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://localhost.com');
    curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt(CURLOPT_USERPWD, 'usernameassword')

$data = curl_exec($ch);

curl_close($ch);

当我正在测试时,我一直在意外地发现T_VARIABLE,但我并不是100%确定我的编码是正确的。

提前致谢。

3 个答案:

答案 0 :(得分:1)

curl_setopt(CURLOPT_USERPWD, 'usernameassword')应该是curl_setopt(CURLOPT_USERPWD, 'usernameassword');,最后用分号。

答案 1 :(得分:0)

看起来你在包含

的行上遗漏了一个分号

curl_setopt(CURLOPT_USERPWD, 'usernameassword')

下一行代码是变量的定义,但由于前一行未终止,因此PHP解释器遇到意外变量 - $data

添加额外的分号,请在此处发布问题之前修复语法错误。该错误最有可能包含发生错误的行号。

在处理这些类型的错误时,您总是需要查看周围的代码以查找错误 - 它们可能是潜在的原因。

答案 2 :(得分:0)

您的CSV文件只包含11列,但您的PHP代码需要12列(看起来缺少city列)。

这可能是原因。