Mam dane w bazie danych MySQL. Wysyłam użytkownikowi adres URL w celu pobrania jego danych w postaci pliku CSV.
Mam e-mail z linkiem, zapytaniem MySQL itp.
Jak mogę, po kliknięciu linku, wyświetlić okno podręczne, aby pobrać CVS z rekordem z MySQL?
Mam już wszystkie informacje, aby uzyskać rekord. Po prostu nie widzę, jak PHP powinien utworzyć plik CSV i pozwolić im pobrać plik z rozszerzeniem .csv.
php
csv
download
http-headers
d -_- b
źródło
źródło
php: // wyjście
fputcsv
źródło
outputCSV
funkcja jest niepotrzebnie skomplikowana. Można tylkoforeach
przez$array
wysłanie jej wartości prostofputcsv
. Nie ma takiej potrzeby__outputCSV
iarray_walk
:)foreach($data as $vals) {fputcsv($filehandler,$vals);}
"Prévalence","age 1","city 1"
jakieś pomysły? Jak dotąd nie zadziałało używanie UTF-8.Oto ulepszona wersja funkcji z php.net opublikowana przez @Andrew.
Jest naprawdę łatwy w użyciu i działa świetnie z zestawami wyników MySQL (i) / PDO.
Pamiętaj, aby
exit()
po wywołaniu tego, jeśli skończysz ze stroną.źródło
fputcsv($outstream, array_keys($results[0]));
tuż przed,foreach
aby uwzględnić także nagłówki kolumn.Oprócz wszystkich już powiedzianych może być konieczne dodanie:
Jest to bardzo przydatne podczas obsługi plików z wieloma językami, takimi jak nazwiska ludzi lub miasta.
źródło
Wątek jest trochę stary, wiem, ale dla odniesienia w przyszłości i dla noobów jak ja:
Wszyscy inni tutaj wyjaśniają, jak utworzyć plik CSV, ale brakuje podstawowej części pytania: jak połączyć. Aby utworzyć link do pobrania pliku CSV, wystarczy link do pliku .php, który z kolei odpowiada jako plik .csv. Nagłówki PHP to robią. Umożliwia to fajne rzeczy, takie jak dodawanie zmiennych do kwerendy i dostosowywanie wyników:
my_csv_creator.php może pracować ze zmiennymi podanymi w querystring i na przykład używać różnych lub dostosowanych zapytań do bazy danych, zmieniać kolumny CSV, personalizować nazwę pliku i tak dalej, np .:
źródło
Utwórz plik, a następnie zwróć do niego odwołanie z poprawnym nagłówkiem, aby uruchomić Zapisz jako - w razie potrzeby edytuj następujące. Umieść swoje dane CSV w $ csvdata.
źródło
Oto pełny działający przykład użycia PDO i nagłówków kolumn:
źródło
Najpierw utwórz dane jako Ciąg z przecinkiem jako separatorem (oddzielone „,”). Coś takiego
źródło
Hej, działa bardzo dobrze .... !!!! Dzięki Peter Mortensen i Connor Burton
?>
źródło
Prosta metoda -
Tak więc każdy wiersz
$data
tablicy przejdzie do nowego wiersza nowo utworzonego pliku CSV. Działa tylko dla PHP 5 i nowszych.źródło
Możesz po prostu zapisać swoje dane w CSV za pomocą funkcji fputcsv . rzućmy okiem na poniższy przykład. Zapisz tablicę list do pliku CSV
źródło
Najprostszym sposobem jest użycie dedykowanej klasy CSV w następujący sposób:
źródło
Zamiast:
Posługiwać się:
źródło
Przyszło już bardzo dobre rozwiązanie. Po prostu umieszczam cały kod, aby początkujący otrzymał całkowitą pomoc
Zapisałem ten kod w pliku csv-download.php
Zobaczmy teraz, jak wykorzystałem te dane do pobrania pliku csv
Więc kiedy kliknę link, pobierz plik, nie zabierając mnie do strony csv-download.php w przeglądarce.
źródło
Aby wysłać go jako plik CSV i podać nazwę pliku, użyj header ():
http://us2.php.net/header
Jeśli chodzi o tworzenie samego CSV, po prostu przechodzisz przez zestaw wyników, formatujesz dane wyjściowe i wysyłasz je, tak jak każdą inną treść.
źródło
Pisanie własnego kodu CSV to prawdopodobnie strata czasu, wystarczy użyć pakietu, takiego jak League / CSV - zajmuje się wszystkimi trudnymi sprawami, dokumentacja jest dobra i bardzo stabilna / niezawodna:
http://csv.thephpleague.com/
Musisz użyć kompozytora. Jeśli nie wiesz, co to jest kompozytor, gorąco polecam: https://getcomposer.org/
źródło
źródło
Jak pisać w pliku CSV za pomocą skryptu PHP? Właściwie też tego szukałem. Jest to dość proste zadanie z PHP. fputs (handler, content) - ta funkcja działa dla mnie wydajnie. Najpierw musisz otworzyć plik, w którym musisz zapisać zawartość za pomocą fopen ($ CSVFileName, 'wb').
źródło
Wprowadź do
$output
zmiennej dane CSV i powtórz echo z poprawnymi nagłówkamiźródło