2012-05-07 50 views
-1

我正在尋找關於以下代碼的指導。我是在從csv文件中提取數據並將每行提交到捲曲URL url

firstname,lastname,address,state,zip,email,homephone,dob,optindate,ipaddress,url 
Joey,Demo,4004 S. Louise Ave. 206,Sioux Falls,SD,57106,[email protected],6053231657,06/18/1944,4/19/2008 11:58:34,12.174.252.216,http://www.ecoupons.com 

我想添加一些新的變量,將數據轉換爲一個http_build_query並提交每行與POST的URL格式衆多大型CSV文件。

這裏是我的代碼

$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%肯定我的編碼是正確的。

在此先感謝。

+0

您正在收到的錯誤是語法錯誤。可能你忘了用分號終止一行 – Lix

回答

1

curl_setopt(CURLOPT_USERPWD, 'usernameassword')應該是curl_setopt(CURLOPT_USERPWD, 'usernameassword');最後用分號結尾。

+0

@ gar-首先照顧你的語法錯誤。如果您仍有問題,請在此處發佈問題。我們不會爲您錯誤地調試您的代碼。 – Lix

0

看起來你留出一個分號在含有

curl_setopt(CURLOPT_USERPWD, 'usernameassword')

代碼的下一行的行是一個變量的定義,但由於前一行沒有終止PHP解釋遇到意外變量 - $data

添加額外的分號並請在此處發佈您的問題之前修復您的語法錯誤。該錯誤最有可能包含錯誤發生的行號。

在處理這類錯誤時,您總是需要查看周圍的錯誤代碼 - 它們可能是潛在的原因。

+0

感謝您捕獲那個缺少的分號。當我盯着代碼太久時,它們就會融合在一起。我現在可以通過文件工作,但得到我需要追蹤的以下錯誤。 curl_setopt()恰好需要3個參數,第36行中的/tmp/curl.php中給出了2個參數,它是curlopt_userpwd –

+0

通過向curl_init添加$ ch變量來解決此錯誤。 –

0

您的CSV文件只包含11列,但您的PHP代碼需要12列(看起來像city列缺失)。

這可能是原因。

+0

在csv中,狀態出現在地址之後,但是在代碼「list(...)」中有地址和狀態之間的城市。此外,'curl_setopt(CURLOPT_USERPWD,'usernameassword')'後面缺少分號。 –