-
Notifications
You must be signed in to change notification settings - Fork 0
/
feedback_csv.php
88 lines (76 loc) · 2.97 KB
/
feedback_csv.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
require_once('config.php');
require_once ('lib/ebay.php');
require_once ('lib/cUrl.php');
require_once ('lib/xml.php');
$pages = 5;
$ebay = new Ebay($ebayDEVID, $ebayAppID, $ebayCertID, $ebayToken);
$allFeedbacks = array();
$header = array("CommentingUser","CommentingUserScore","CommentText","CommentTime","CommentType","ItemID","Role","FeedbackID","TransactionID","OrderLineItemID","ItemTitle","ItemPrice","isWithdrawn");
$types = array(
'Neutral',
'Negative',
'Withdrawn',
'IndependentlyWithdrawn'
);
foreach($types as $type) {
$$type = 1;
}
for ($i=1; $i<=$pages; $i++) {
foreach($types as $type) {
if ($$type) {
$feedbacks = XML2Array::createArray($ebay->getFeedBacks(200, $i, $type));
$feedbacks = isset($feedbacks["GetFeedbackResponse"]['FeedbackDetailArray']['FeedbackDetail'])?$feedbacks["GetFeedbackResponse"]['FeedbackDetailArray']['FeedbackDetail']:array();
if (!empty($feedbacks)) {
foreach($feedbacks as $i => $feedback) {
if (isset($feedback['ItemPrice'])) {
$feedbacks[$i]['ItemPrice'] = $feedback['ItemPrice']['@value'] . ' ' . $feedback['ItemPrice']['@attributes']['currencyID'];
}
$tmp = array();
foreach($header as $key) {
$tmp[$key] = isset($feedbacks[$i][$key])?$feedbacks[$i][$key]:'';
}
if (in_array($type, array("Withdrawn", 'IndependentlyWithdrawn')) && isset($allFeedbacks[$tmp['ItemID'].$tmp['TransactionID']])) {
$allFeedbacks[$tmp['ItemID'].$tmp['TransactionID']]['isWithdrawn'] = 'yes';
} else {
$tmp['isWithdrawn'] = 'no';
$allFeedbacks[$tmp['ItemID'].$tmp['TransactionID']] = $tmp;
}
}
} else {
$$type = 0;
}
}
}
}
function download_send_headers($filename) {
// disable caching
$now = gmdate("D, d M Y H:i:s");
header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
header("Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate");
header("Last-Modified: {$now} GMT");
// force download
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
// disposition / encoding on response body
header("Content-Disposition: attachment;filename={$filename}");
header("Content-Transfer-Encoding: binary");
}
function array2csv(array &$array)
{
if (count($array) == 0) {
return null;
}
ob_start();
$df = fopen("php://output", 'w');
fputcsv($df, array_keys(reset($array)));
foreach ($array as $row) {
fputcsv($df, $row);
}
fclose($df);
return ob_get_clean();
}
download_send_headers("feedback_export_" . date("Y-m-d") . ".csv");
echo array2csv($allFeedbacks);
die();