Witam,
mam nadzieję, że dość trafnie okresliłem temat.
Z XML do tej pory nie miałem z byt wiele do czynienia, dlatego prosił bym bardzo bardziej zaawansowanych kolegów o pomoc w rozwiązaniu problemu.
Problem dotyczy skryptu zapisującego zawartość XML (wczytywanego z adresu Url) do bazy danych. Skrypt jest automatem odpalanym cronem i do tej pory działał bez zarzutów. Dopiero w ciągu ostatnich 2 dni skrypt nagle przestał działać. Adresy url xml są nadal poprawne, a ich struktura się nie zmieniła. Nie jestem pewien, ale podejrzewam, że w niektórych elementach xml gdzie znajdują się w treści znaczniki html usunieto CDATA co pozwalało parserowi ignorować te znaczniki. Jednak to jest tylko moje przypuszczenie. Bardzo bym prosił o pomoc.. Poniżej podaje kod php mojego skryptu.

  1. połączenie z bazą..
  2. <?php
  3. $gruper_xml = 'http://cubegroup.go2feeds.org/feed.php?aff_id=260&offer_id=24&file_id=446&feed=aHR0cDovL2dydXBlci5wbC9yZXBvc2l0b3J5L2V4dGVybmFsL2d6aXAvdjEvZ3J1cGVyX3B
    mX3NhbGVzbWVkaWEueG1s&objects=offers&object=offer&url_tag=url'
    ;
  4. $movies = new SimpleXMLElement(file_get_contents($gruper_xml));
  5. $cuppon_xml = 'http://cubegroup.go2feeds.org/feed.php?aff_id=260&offer_id=80&file_id=448&feed=aHR0cDovL2N1cHBvbi5wbC9hcGkvMjRlMGFkNjFjMTlhZTExOGQ2OTczZTRhNzE2ZGU1OWU
    veG1s&objects=root&object=offer&url_tag=url&ref=24e0ad61c1&url_query=transid%3D%7Btransaction_id%7D'
    ;
  6. $movies2 = new SimpleXMLElement(file_get_contents($cuppon_xml));
  7. if (!(@mysql_connect("$host", "$user", "$pass") && @mysql_select_db("$tablename")))
  8. echo "bład połączenia z bazą!";
  9.  
  10. foreach($movies->offers->offer as $m)
  11. {
  12. if ($m->city == 'Cała Polska') {$m->city='Polska';}
  13. if ($m->city == 'Twoja Firma') {$m->city='Firma';}
  14. mysql_query('SET NAMES utf8');
  15.  
  16. $query=mysql_query("INSERT INTO tabela1 (id, city, header, short, url, category, category_id, priority, image, image_large, price, price_original, expires,
  17. why, how, program) VALUES
  18. ('$m->id', '$m->city', '$m->header', '$m->short', '$m->url', '$m->category', '$m->category_id', '$m->priority', '$m->image',
  19. '$m->image_large', '$m->price', '$m->price_original', '$m->expires', '$m->why', '$m->how', 'gruper.pl')");
  20. }
  21.  
  22. foreach($movies2->offer as $m)
  23.  
  24. {
  25. if ($m->city == 'Travel') {$m->city='Podróże';}
  26. if ($m->city == 'Cała Polska') {$m->city='Polska';}
  27. mysql_query('SET NAMES utf8');
  28. $end_date = date("Y-m-d H:i:s","$m->end_date");
  29. $query2=mysql_query("INSERT INTO tabela1 (id, city, header, short, url, category, category_id, priority, image, image_large, price, price_original, expires,
  30. why, how, program) VALUES
  31. ('$m->id', '$m->city', '$m->title', '$m->shortTitle', '$m->url', '$m->category', '', '', '$m->image', '$m->image', '$m->price_discount', '$m->price_normal',
  32. '$end_date', '$m->important', '$m->rules', 'cuppon.pl')");
  33. }
  34. ?>


Skrypt ten generuje następujące błędy:
Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: Entity: line 6033: parser error : Premature end of data in tag why line 6028 in /grupowe/grupowe.php on line 9

Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: niu Babci &lt;/strong&gt;&amp;ndash; luksusowy zabieg z komĂłrkami macierzystymi in /grupowe/grupowe.php on line 9

Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: ^ in /grupowe/grupowe.php on line 9

Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: Entity: line 6033: parser error : Premature end of data in tag offer line 6014 in /grupowe/grupowe.php on line 9

Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: niu Babci &lt;/strong&gt;&amp;ndash; luksusowy zabieg z komĂłrkami macierzystymi in /grupowe/grupowe.php on line 9

Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: ^ in /grupowe/grupowe.php on line 9

Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: Entity: line 6033: parser error : Premature end of data in tag offers line 4 in /grupowe/grupowe.php on line 9

Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: niu Babci &lt;/strong&gt;&amp;ndash; luksusowy zabieg z komĂłrkami macierzystymi in /grupowe/grupowe.php on line 9

Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: ^ in /grupowe/grupowe.php on line 9

Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: Entity: line 6033: parser error : Premature end of data in tag data line 2 in /grupowe/grupowe.php on line 9

Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: niu Babci &lt;/strong&gt;&amp;ndash; luksusowy zabieg z komĂłrkami macierzystymi in /grupowe/grupowe.php on line 9

Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: ^ in /grupowe/grupowe.php on line 9

Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in /grupowe/grupowe.php:9 Stack trace: #0 /grupowe/grupowe.php(9): SimpleXMLElement->__construct('<?xml version="...') #1 {main} thrown in /grupowe/grupowe.php on line 9