Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapisanie pliku na serwerze
Forum PHP.pl > Forum > PHP
Lacki2006
Witam
Zarobiłem plik generujący raz dziennie plik csv z produktami w sklepie plik fajnie się generuje lecz mam problem z zapisanie go na serwerze w katalogu gdzie jest plik generujący używam takiego skrypt lecz plik jest pobierany na komputer zamiast zapisać go na serwerze czy możecie doradzić jak zrobić aby plik był zapisywany na serwerze.
  1. $fp = fopen('php://output', 'w');
  2. foreach ($user_CSV as $line) {
  3. // though CSV stands for "comma separated value"
  4. // in many countries (including France) separator is ";"
  5. fputcsv($fp, $line, ',');
  6. }
  7. fclose($fp);


Orientujecie się może czy można zrobić aby plik był nadpisywany o tej samej nazwie raz dziennie robię tak aby cron raz dziennie wygenerował nowy plik z produktami w sklepie internetowym jak produkt zostanie dodany przez admina to raz dziennie plik csv zostanie zaktualizowany a nowy produkt pojawi się w plik który następnie zostanie pobrany do sklepu Facebook

Dzięki za poradę
LowiczakPL
A może to pomoże https://www.php.net/fputcsv
Pyton_000
zmień `'php://output'` na nazwę pliku i gotower
Lacki2006
Zmieniłem ale dalej zamiast zapisywać to pobiera katalog ma uprawnienia 777
Aktualnie cały kod wyglada tak plik generuje się prawidłowo ale nie zapisuje na serwera :
  1. <?
  2. header('Content-Type: text/csv');
  3. header('Content-Disposition: attachment; filename="produkty_w_sklepie.csv"');
  4.  
  5. $user_CSV[0] = array('id', 'title', 'description', 'availability', 'condition', 'price', 'link', 'image_link', 'brand', 'additional_image_link', 'age_group', 'color', 'gender', 'item_group_id', 'google_product_category', 'material', 'pattern', 'product_type', 'sale_price', 'sale_price_effective_date', 'shipping','shipping_weight', 'size', 'custom_label_0', 'custom_label_1', 'custom_label_2', 'custom_label_3', 'custom_label_4');
  6.  
  7. // very simple to increment with i++ if looping through a database result
  8. // łączenie z bazą
  9. include "..//polaczenie.php";
  10. $id = '0';
  11. $status = '0';
  12. $stmt = $dbh->prepare("SELECT `id`,`nazwa_produktu`,`cena_sprzedazy`,`link_do_produktu`,`nazwa_kategorii`, `meta-description` ,`zdjecie`,`nazwa_kategorii` FROM produkty WHERE dostepnosc = 1 ORDER BY id ASC");
  13. $stmt->bindParam(':status', $status);
  14. $stmt->execute();
  15. $opinie = $stmt->fetchAll();
  16. foreach($opinie as $row) {
  17. $id = $id+1;
  18. $user_CSV[$id] = array(''.$id.'', ''.$row['nazwa_produktu'].'', ''.$row['meta-description'].'', 'in stock', 'new', ''.$row['cena_sprzedazy'].'.00 PLN', ''.$row['link_do_produktu'].'', ''.$row['zdjecie'].'', 'irollup', ''.$row['link_do_produktu'].'','adult', 'silver', 'unisex', ''.$row['nazwa_kategorii'].'', ' ', 'aluminium', '', '', ''.$row['cena_sprzedazy'].'.00 PLN', '', '', '', '', '', '', '', '', '');
  19. };
  20.  
  21.  
  22. $fp = fopen('produkty_w_sklepie.csv', 'w');
  23. foreach ($user_CSV as $line) {
  24. // though CSV stands for "comma separated value"
  25. // in many countries (including France) separator is ";"
  26. fputcsv($fp, $line, ',');
  27.  
  28. }
  29.  
  30. fwrite("produkty_w_sklepie.csv",$fp );
  31. fclose($fp);
  32.  
  33. die();
  34.  
  35.  
  36. ?>


Macie pomysł co zmienić aby wygenerowany plik zapisywał się na serwerze ?

Jednak działa dziękuję za pomoc . Powyższy plik działa prawidłowo .
viking
Ustawiasz nagłówki które jasno mówią że ma być pobrany plik.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.