Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak zapisać plik XML na serwerze dla CENEO
Lacki2006
post 5.01.2021, 22:46:09
Post #1





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 3.03.2012

Ostrzeżenie: (0%)
-----


Witam

Zrobiłem kod który generuje odpowiedni plik XML z aktualnymi produktami i cenami który będzie przekazywał dane do ceneo plik bez problemu można pobrać ale nie wiem jak zapisać go na serwerze generuje się pusty plik bez zawartości mogę prosić o poradę jak zrobić aby zapisywał się plik z wygenerowaną zawartością.

  1. <?
  2. header('Content-type: application/xml; charset="utf-8"');
  3. header('Content-Type: text/xml');
  4.  
  5. echo'<?xml version="1.0" encoding="utf-8"?>'."\n";
  6. echo'<offers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1">'."\n";
  7. // Zaczynamy pętlę która pobiera dane do ceneo
  8. include "..//polaczenie_pdo.php";
  9. $id = '0';
  10. $status = '0';
  11. $stmt = $dbh->prepare("SELECT `id`,`nazwa_produktu`,`cena_sprzedazy`,`link_do_produktu`,`nazwa_kategorii`, `meta-description` ,`zdjecie`,`nazwa_kategorii`,`miniatura` FROM produkty WHERE dostepnosc = 1 ORDER BY id ASC");
  12. $stmt->bindParam(':status', $status);
  13. $stmt->execute();
  14. $opinie = $stmt->fetchAll();
  15. foreach($opinie as $row) {
  16. $id = $id+1;
  17. echo'<o id="'.$id.'" url="'.$row['link_do_produktu'].'" price="'.$row['cena_sprzedazy'].'.00 PLN" avail="1" set="1" weight="15" basket="1" stock="99">'."\n";
  18.  
  19. echo'<cat>
  20. <![CDATA[Biuro i firma/Reklama i poligrafia/Tablice potykacze i stojaki reklamowe]]> </cat>'."\n";
  21.  
  22. echo'<name>
  23. <![CDATA['.$row['nazwa_produktu'].']]>
  24. </name>'."\n";
  25.  
  26. echo'<imgs>
  27. <main url="'.$row['zdjecie'].'"/>
  28. <i url="'.$row['miniatura'].'"/> </imgs>'."\n";
  29.  
  30. echo'<desc>
  31. <![CDATA['.$row['meta-description'].'
  32. Zobacz nasze portfolio <a href="https://www.irollup.pl/opinie_wykonanych_zlecen_scianki.php" target="_blank">https://www.irollup.pl/opinie_wykonanych_zlecen_scianki.php</a>]]>
  33. </desc>'."\n";
  34.  
  35. echo'<attrs>
  36. <a name="Producent">
  37. <![CDATA[iRollup]]>
  38. </a>
  39. <a name="Kod_producenta">
  40. <![CDATA[iRollup]]>
  41. </a>
  42. <a name="EAN">
  43. <![CDATA[12345678]]>
  44. </a>
  45. </attrs>'."\n";
  46.  
  47. echo'</o>'."\n";
  48. };
  49. // Koniec pętli
  50. echo'</offers>'."\n"; // Ostatnia linijka zamykająca skrypt nie powtarzalna
  51. //
  52. // Zapisuje na dysku
  53. $fp = fopen('produkty_w_sklepie_dla_ceneo.xml', 'w');
  54. fwrite("produkty_w_sklepie_dla_ceneo.xml", $fp);
  55. fclose($fp);
  56. die();
  57. //
  58. //
  59. //


Z góry bardzo dziękuję za poradę


--------------------
----------------------------------------------------------------------------
Najlepsza scianka reklamowa z darmową dostawą w całej polsce.
Go to the top of the page
+Quote Post
Tomplus
post 6.01.2021, 07:59:38
Post #2





Grupa: Zarejestrowani
Postów: 1 828
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


Nie można.

podajesz adres w systemie ceneo do pliku z ofertą sklepu i tyle.

A tworząc XML lepiej użyć coś innego np.:
https://www.php.net/simplexml

więcej na: https://stackoverflow.com/questions/486757/...cally-using-php
Go to the top of the page
+Quote Post
Lacki2006
post 6.01.2021, 12:30:24
Post #3





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 3.03.2012

Ostrzeżenie: (0%)
-----


na pewno nie da się zapisać pliku na serwer ?, generuje i pobiera się bardzo dobrze i jest zgodny z wymogami ceneo wystarczy zapisać go na dysk i ustawić ścieżkę w ceneo i załatwione.


--------------------
----------------------------------------------------------------------------
Najlepsza scianka reklamowa z darmową dostawą w całej polsce.
Go to the top of the page
+Quote Post
nospor
post 6.01.2021, 12:51:06
Post #4





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




// Zapisuje na dysku
$fp = fopen('produkty_w_sklepie_dla_ceneo.xml', 'w');
fwrite("produkty_w_sklepie_dla_ceneo.xml", $fp);
fclose($fp);

Co wg ciebie to robi?
bo na pewno nie zapisuje to do pliku tego co pruje ECHO


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Lacki2006
post 7.01.2021, 18:00:23
Post #5





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 3.03.2012

Ostrzeżenie: (0%)
-----


No tak, to wychodzi że ten kod idealnie nadaje się do generowania i pobierania plików XML może komuś się przyda ja zabieram się za to co polecił Tomplus czyli https://www.php.net/simplexml zobaczymy czy się uda zapis na serwerze jest podstawą w komunikacji z ceneo.

Tym razem zaczynam od możliwości zapisu na dysku zobaczcie co jest błędnie napisane że zapisuje pusty plik zamiast zawartość XML

  1. $xml = '<?xml version="1.0" encoding="utf-8"?>'."\n";
  2. $xml .= '<X>'."\n";
  3.  
  4. $xml .= '<X1>'."\n";
  5. $xml .= '<X2>123</X2>'."\n";
  6. $xml .= '<X3>345</X3>'."\n";
  7. $xml .= '<X4>567</X4>'."\n";
  8. $xml .= '</X1>'."\n";
  9.  
  10. $xml .= '</X>';
  11. // Zapisuje na dysku
  12. $fp = fopen('nowy.xml', 'w');
  13. foreach ($xml as $line) {
  14. // though CSV stands for "comma separated value"
  15. // in many countries (including France) separator is ";"
  16. fputcsv($fp, $line, ',');
  17.  
  18. }
  19.  
  20. fwrite("nowy.xml",$fp );
  21. fclose($fp);
  22. die();


--------------------
----------------------------------------------------------------------------
Najlepsza scianka reklamowa z darmową dostawą w całej polsce.
Go to the top of the page
+Quote Post
Tomplus
post 7.01.2021, 22:04:21
Post #6





Grupa: Zarejestrowani
Postów: 1 828
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


Jak będziesz korzystał z klasy simpleXML to nie będziesz potrzebował żadnych fwrite, fopen, fclose.

i to DIE() też jest zbędne, bo przez to możesz sie oślepić przed błędami.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 14:00