Post by drest341 » Fri Feb 21, 2014 11:03 pm

Γεια σας στη κοινότητα. Προσπάθησα να κατασκευάσω ενα php αρχειο το οποιο οταν τρεχει μεσω crontab θα παραγει το XML για το skroutz feed. Το προβλημα ειναι οτι μου εμφανιζει την περιγραφη προιοντων οπως παρακατω:
Κωδικας PHP

Code: Select all

<?php

//Create a connection to MySQL and select "my_db" database
$con = mysql_connect('dbserver.gr','opencart','') 
         or die( 'Could not connect to DB: ' . mysql_error() );
mysql_select_db(opencart, $con) or die( mysql_error() );
mysql_query("SET NAMES 'utf8'", $con);


$sql = "SELECT product.product_id, product.price, product.model, product.sku, product.image, product.weight, product.stock_status_id, product.quantity , product_description.description FROM product, product_description WHERE (product.product_id = product_description.product_id AND language_id=2)";

$q = mysql_query($sql)or die(mysql_error()); 
$xml .= "<?xml version=\"1.0\" encoding=\"utf-8\"?>"; 
$xml .= "<myeshop>";
 $testSqlDateStamp = "1125442013";
echo "<BR>DateTest=".date('Y-m-d G:i:s',strtotime);
$xml .= "<products>";

while($r = mysql_fetch_array($q)){

 $xml .= "<product>";
 $xml .= "<id><![CDATA[" . $r["product_id"] . "]]></id>";
 $xml .= "<name><![CDATA[" . $r["model"] . "]]></name>";
 $xml .= "<link><![CDATA[" . $r["sku"] . "]]></link>";
 $xml .= "<image><![CDATA[http://webgateserver.gr/eshop/image/" . $r["image"] . "]]></image>"; 
 $xml .= "<category><![CDATA[" . $r["name"] . "]]></category>";
 $xml .= "<price_with_vat><![CDATA[" . $r["price"] . "]]></price_with_vat>";
/*  $xml .= "<manufacturer><![CDATA[" . $r["name"] . "]]></manufacturer>"; */
 $xml .= "<description><![CDATA[" . $r["description"] . "]]></description>"; 
 $xml .= "<weight><![CDATA[" . $r["weight"] . "]]></weight>";
 $xml .= "<mpn><![CDATA[" . $r["sku"] . "]]></mpn>";
 $xml .= "<InStock><![CDATA[" . $r["stock_status_id"] . "]]></InStock>";
 $xml .= "<Availability><![CDATA[" . $r["quantity"] . "]]></Availability>";
 $xml .= "</product>";
 }
$xml .= "</products>";
$xml .= "</myeshop>";

$sxe = new SimpleXMLElement($xml);
$sxe->asXML("test.xml");

?>
O οποιος παραγει το ακολουθο XML.

Code: Select all

Αυτό το αρχείο XML δεν φαίνεται να έχει συσχετισμένες πληροφορίες μορφοποίησης. Το δένδρο εγγράφου φαίνεται παρακάτω.

      <myeshop><products><product><id>30</id><name>75234343</name><link>75234343</link><image>http://webgateserver.gr/eshop/image/data/PRODUCTS/shoes/WOMEN/Boots/32129F128015_3_2.jpg</image><category></category><price_with_vat>130.0000</price_with_vat><description><p><span id="result_box" lang="el"><span class="hps">Ankle</span><span class="atn">-</span><span>&upsilon;&psi;&eta;&lambda;ή</span> <span class="hps">&tau;&rho;&alpha;&chi;&upsilon;&mu;έ&nu;&omicron;&upsilon;</span> <span class="hps">&delta;&epsilon;&rho;&mu;ά&tau;&iota;&nu;&epsilon;&sigmaf; &mu;&pi;ό&tau;&epsilon;&sigmaf;</span> <span class="hps">&sigma;&epsilon;</span> <span class="hps">&mu;&alpha;ύ&rho;&omicron; &mu;&alpha;&tau;</span><span>.</span> <span class="hps">Almond</span> <span class="hps">toe</span><span>.</span> <span class="hps">&Phi;&epsilon;&rho;&mu;&omicron;&upsilon;ά&rho;</span> <span class="hps">&sigma;&tau;&eta;&nu;</span> <span class="hps">&epsilon;&sigma;&omega;&tau;&epsilon;&rho;&iota;&kappa;ή &epsilon;&pi;&iota;&phi;ά&nu;&epsilon;&iota;&alpha;</span> <span class="hps">&mu;&epsilon;</span> <span class="hps">&mu;&alpha;&kappa;&rho;ύ &delta;&epsilon;&rho;&mu;ά&tau;&iota;&nu;&omicron;</span> <span class="hps">&phi;&epsilon;&rho;&mu;&omicron;&upsilon;ά&rho; &tau;&rho;&alpha;&beta;ή&xi;&tau;&epsilon;</span><span>.</span> <span class="hps">&Tau;&rho;&alpha;&beta;ή&xi;&tau;&epsilon; &tau;&omicron;</span> <span class="hps">&beta;&rho;ό&chi;&omicron;</span> <span class="hps">&sigma;&tau;&omicron; &gamma;&iota;&alpha;&kappa;ά</span> <span class="hps">&phi;&tau;έ&rho;&nu;&alpha;</span><span>.</span> <span class="hps">&Tau;&omicron;&nu;&iota;&kappa;ή</span> <span class="hps">&rho;&alpha;&phi;ή</span> <span class="hps">&kappa;&alpha;&iota; &gamma;&lambda;ώ&sigma;&sigma;&alpha;&sigmaf;</span><span>.</span> <span class="hps">&Pi;&epsilon;&rho;ί&pi;&omicron;&upsilon;</span><span>.</span> <span class="hps">2.5</span> <span class="hps atn">"</span><span>&kappa;&omicron;&upsilon;&beta;&alpha;&nu;έ&zeta;&iota;&kappa;&omicron;</span> <span class="hps">&tau;&alpha;&kappa;&omicron;ύ&nu;&iota;</span> <span class="hps">Ά&nu;&omega; &kappa;&alpha;&iota;</span> <span class="hps">&phi;ό&delta;&rho;&alpha;:</span><span>.</span> <span class="hps">&Delta;έ&rho;&mu;&alpha; &Sigma;ό&lambda;&alpha;</span><span>:</span><span>.</span><span>.</span> <span class="hps">&Delta;έ&rho;&mu;&alpha; &kappa;&alpha;&iota;</span> <span class="hps">&kappa;&alpha;&omicron;&upsilon;&tau;&sigma;&omicron;ύ&kappa;</span> <span class="hps">Made in</span> <span class="hps">Italy</span><span>.</span></span></p>
</description><weight>0.00000000</weight><mpn>75234343</mpn><InStock>6</InStock><Availability>6</Availability></product>
Last edited by drest341 on Fri Mar 07, 2014 9:14 pm, edited 1 time in total.

Any fool can write code that a computer can understand. Good programmers write code that humans can understand ~ Martin Fowler.


User avatar
New member

Posts

Joined
Fri Feb 21, 2014 10:47 pm
Location - Athens

Post by People's Code » Sat Feb 22, 2014 10:10 pm

Καλησπέρα
Αν και ο κώδικας σου έχει κάποια λαθάκια, το πρόβλημα με τα html entities στην περιγραφή του xml πρέπει να οφείλεται στο ότι η περιγραφή είναι ήδη καταχωρημένη με entities στη βάση (πιθανότατα από custom text editor ή από κάποιο εργαλείο import/export). Έλεγξε την περιγραφή του προϊόντος με id 30 από το phpmyadmin για να το επιβεβαιώσεις.

PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart


User avatar
Active Member

Posts

Joined
Fri Jul 27, 2012 5:30 am
Location - Hellas

Post by drest341 » Sun Feb 23, 2014 3:04 am

Πιθανοτατα αυτο ειναι σωστό. Εξήγαγα το XML σε άλλη βάση με αποτέλεσμα να επιστρεφει σωστους χαρακτηρες στην περιγραφή των πεδίων. Το μονο θεμα ομως που ενεσκυψε ειναι οτι παρουσιάζει τα δεδομενα οχι σε tags " <> " αλλά στην μορφή "<description><![CDATA[<p> HTC Touch - in High Definition. ..... "</description> . Και αυτο μονο στα κειμενα οχι στα Νουμερα.

Any fool can write code that a computer can understand. Good programmers write code that humans can understand ~ Martin Fowler.


User avatar
New member

Posts

Joined
Fri Feb 21, 2014 10:47 pm
Location - Athens

Post by People's Code » Sun Feb 23, 2014 8:31 am

Το ίδιο ισχύει και σε αυτήν την περίπτωση, τα entities είναι περασμένα έτσι στη βάση και εσύ απλά τα καλείς όπως είναι, όμως αυτό το αποτέλεσμα είναι φυσιολογικό.

Ποια η διαφορά μεταξύ του πρώτου post και του δεύτερου:
- Στο πρώτο post κάτι προξένησε την μετατροπή όλων των χαρακτήρων της περιγραφής σε html entities (editor / import - export tool κλπ) και όταν καταχωρήθηκε η περιγραφή πέρασε από το function htmlentities().
- Στη δεύτερη περίπτωση το αποτέλεσμα είναι φυσιολογικό γιατί έχει χρησιμοποιηθεί σωστά το function htmlspecialchars() που μετατρέπει σε entities μόνο τα ακόλουθα: & " ' < >

PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart


User avatar
Active Member

Posts

Joined
Fri Jul 27, 2012 5:30 am
Location - Hellas

Post by drest341 » Sat Mar 01, 2014 4:24 am

Δυστυχως το προβλημα παραμενει επειτα και απο clean install OC 1.5.6. σε νεα Β.Δ.
Τα html entities παρουσιάζονται εσφαλμένα οπως βλεπω και μεσα απο το PHPmyAdmin. Σε manual διορθωση των δεν εξαφανισε το προβλημα. Κατι ισως με κωδικοποιηση της Βασης??

Any fool can write code that a computer can understand. Good programmers write code that humans can understand ~ Martin Fowler.


User avatar
New member

Posts

Joined
Fri Feb 21, 2014 10:47 pm
Location - Athens

Post by People's Code » Sat Mar 01, 2014 5:18 pm

Όταν είσαι στο Opencart ή στο PHPmyadmin, έλεγξε το character encoding του browser σου τι έχει δηλωμένο.

PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart


User avatar
Active Member

Posts

Joined
Fri Jul 27, 2012 5:30 am
Location - Hellas

Post by drest341 » Fri Mar 07, 2014 9:12 pm

Πολυ σωστη η απαντηση σου. Εκανα εξαγωγη σε αρχειο τυπου .csv και μετα επεξεργαστηκα το ιδιο αρχειο με notepadd++ για μετατροπη του με κωδικοποιηση utf8 without BOM. Με την εισαγωγή του στον αντιστοιχο πινακα τα δεδομενα εμφανιστηκαν χωρις entities και το XML αρχειο που παραγεται ειναι ΟΚ. ;)

Any fool can write code that a computer can understand. Good programmers write code that humans can understand ~ Martin Fowler.


User avatar
New member

Posts

Joined
Fri Feb 21, 2014 10:47 pm
Location - Athens

Post by antstyl » Tue Jun 17, 2014 6:54 pm

Καλησπέρα έχω το ίδιο πρόβλημα και εγώ αλλά δυστυχώς δεν μπόρεσα να βρώ λύση!

Από ότι βλέπω και στην βάση δεδομένων είναι περασμένα έτσι:

<p>CCID1410-AB &Pi;&rho;&omicron;&sigma;&alpha;&gamma;&omega;&gamma;έ&alpha;&sigmaf; &sigma;&tau;&eta;&nu; CCID1410-ST &gamma;&iota;&alpha; &pi;&epsilon;&rho;&iota;&phi;&epsilon;&rho;&epsilon;&iota;&alpha;&kappa;ά &upsilon;&lambda;&iota;&kappa;ά<br />
&tau;ύ&pi;&omicron;&upsilon; CCDA1425</p>

Μπορεί να γίνει κάτι για να διορθωθεί??

User avatar
Active Member

Posts

Joined
Mon Nov 12, 2012 5:40 pm

Post by antstyl » Tue Jun 17, 2014 7:14 pm

Με επαναφορά του text-editor στον κανονικό της 1.5.6.1 και αποθήκευση κάθε προϊόντος διορθώθηκαν και στην βάση!

User avatar
Active Member

Posts

Joined
Mon Nov 12, 2012 5:40 pm
Who is online

Users browsing this forum: No registered users and 121 guests