2014-11-04 3 views
-1

Мне нужна помощь. Я вытаскиваю данные из CRM с помощью API, и я просматриваю каждую переменную, например. Это внутри Wordpress. Ответ ниже работает отлично, когда он изолирован.Как создать CSV-загрузку в Php

for ($x = 0; $x<=$total_leads; $x++){ 
    $first_name = $xml->users->user[$x]->firstname; 
    $last_name = $xml->users->user[$x]->lastname; 
    $company_name = $xml->users->user[$x]->company; 
} 

Что мне нужно сделать, это нажать, что данные в файл .csv и его загрузки. Я пробовал здесь различные примеры и не имел никакой удачи. Кажется, что данные должны храниться в массиве. Какие-либо предложения?

Update:

`header('Content-Type: text/plain'); 
header('Content-Disposition: attachment; filename=sample.csv'); 

for ($x = 0; $x<=$total_leads; $x++){ 
$first_name = $xml->users->user[$x]->firstname; 
$last_name = $xml->users->user[$x]->lastname; 
$company_name = $xml->users->user[$x]->company; 
$gmg_data .= $first_name . ',' . $last_name . ',' . $company_name . '\n'; 

$fp = fopen('php://output', 'w'); 
foreach($gmg_array as $row) { 
fputcsv($fp, $row); 
}  
}` 

Еще не создает файл

Обновление: 11/04/14 - 11:05 утра

удалены последние несколько строк кода, и добавил

`$gmg_data[] = array($first_name, $last_name, $company_name); 
$fp = fopen('php://output', 'w'); 
foreach($gmg_array as $row) { 
fputcsv($fp, $row); 
}` 

Я все еще не получаю. CSV-загрузку. Я ценю всю вашу помощь, но как это обозначается как вне темы?

+1

csv - всего лишь текст. 'echo '{$ first_name}, {$ last_name}, {$ company_name} \ n" '. Boom. Мгновенный CSV. Теперь, если вы хотите ПОЛЕЗНЫЕ csv, попробуйте 'fputcsv()' –

+0

@MarcB - Нет, это не так. Он имеет различные правила экранирования для обработки данных со специальными символами в нем. – Quentin

+0

Кроме того, вы также можете добавить заголовок, который описывает столбцы перед выводом данных. В этом случае: 'echo 'firstname, lastname, company_name \ n" ' – codeaken

ответ

1
<?php 

// Represents the array you want to convert to a CSV 
$data = array(
    array('a', 'b', 'c'), 
    array('1', '2', '3'), 
    array('4', '5', '6') 
); 

header('Content-Type: text/plain'); 
header('Content-Disposition: attachment; filename=sample.csv'); 

$fp = fopen('php://output', 'w'); 

// This loops through the array, however if you are pulling the data row by 
// row from somewhere else then only the variable $row as an array is relevant 
// in this example. 
foreach($data as $row) { 
    fputcsv($fp, $row); 
}