[php5]Error bij ophalen feedburner

Pagina: 1
Acties:

  • gitaarwerk
  • Registratie: Augustus 2001
  • Niet online

gitaarwerk

Plays piano,…

Topicstarter
Hallo :Y)

Ik ben bijna klaar met mijn blog thema en concept enzo, en ben eigenlijk de laatste puntjes op de i aan het zetten.

Onderandere is het laten zien van geabboneerde op onze RSS feeds via Feedburner. Nu hebben ze een fantastische API en PHP simpleXML object die icm met cURL het een en ander kan.

Alles wel en prima, maar op een of andere manier krijg ik het gewoon niet aan de praat.

Het gekke is dat mijn followers op twitter met dezelfde functie (en iets andere xml selectie natuurlijk) ik zonder probleem word weergegeven, maar mijn feedcounter functie blijft altijd deze foutmelding teruggeven:
Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in D:\sites\vhosts\.com\httpdocs\feedcount.php:30 Stack trace: #0 D:\sites\vhosts\.com\httpdocs\feedcount.php(30): SimpleXMLElement->__construct('') #1 D:\sites\vhosts\.com\httpdocs\feedcount.php(33): get_feedburner_stats() #2 {main} thrown in D:\sites\vhosts\.com\httpdocs\feedcount.php on line 30
Ik heb ook nog voorgebakken functies proberen te gebruiken en overal hetzelfde.
Vreemd is dat ik gewoon een prima stukje xml terug krijg met de link die ik gebruik:

link:

XML code
PHP:
1
2
3
4
5
6
7
<?xml version="1.0" encoding="UTF-8"?>
<rsp stat="ok">
  <!--This information is part of the FeedBurner Awareness API. If you want to hide this information, you may do so via your FeedBurner Account.-->
  <feed id="cbso9rlf2lv6mvju51s6b3gv54" uri="">
    <entry date="2009-09-11" circulation="2" hits="28" reach="1" />
  </feed>
</rsp>


en mijn php functie:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
function get_feedburner_stats()
{
    $url = 'https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=';

    $s_ch = curl_init(); //Initialize Curl
    curl_setopt($s_ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($s_ch, CURLOPT_URL, $url); 
    $data = curl_exec($s_ch);
    curl_close($s_ch);
    $xml = new SimpleXMLElement($data); // dit is regel 30
    return $xml->feed->entry['circulation'];
}


Heeft hier iemand soortgelijk probleem gehad? (oh ja, de awareness api staat gewoon aan in feedburner, je kan de link gebruiken gewoon om te checken)

Ontwikkelaar van NPM library Gleamy


  • MueR
  • Registratie: Januari 2004
  • Laatst online: 20:57

MueR

Admin Tweakers Discord

is niet lief

Niet geheel verassend. Je wil een XML file inlezen. Daar zijn andere functies voor, zoals simplexml_load_string().

Anyone who gets in between me and my morning coffee should be insecure.


  • gitaarwerk
  • Registratie: Augustus 2001
  • Niet online

gitaarwerk

Plays piano,…

Topicstarter
MueR schreef op zaterdag 12 september 2009 @ 17:03:
Niet geheel verassend. Je wil een XML file inlezen. Daar zijn andere functies voor, zoals simplexml_load_string().
true, bij een load_string functie geeft hij de error niet, echter, hij geeft niets, alleen een bool(false); als ik een dump geef.


Wat het gekke is, dat alle widgets/plugis voor wordpress dezelfde methode gebruiken alleen bij mij werkt het niet. cURL & simleXML werken sowieso wel (php5 en voor twitter dezelfde methode).

Ik moet zeggen dat ik wel redelijk ervaren in php ben, maar heb eigenlijk nooit met simpleXML & cURL gewerkt

Ontwikkelaar van NPM library Gleamy


  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

Gitaarwerk schreef op zaterdag 12 september 2009 @ 17:12:
true, bij een load_string functie geeft hij de error niet, echter, hij geeft niets, alleen een bool(false); als ik een dump geef.
Ik weet niet wat je doet, maar
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
function get_feedburner_stats()
{
    $url = 'https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=coffeealchemists';

    $s_ch = curl_init(); //Initialize Curl
    curl_setopt($s_ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($s_ch, CURLOPT_URL, $url);
    $data = curl_exec($s_ch);
    curl_close($s_ch);
    $xml = simplexml_load_string($data); // dit is regel 30
    print "data = $data";
    var_dump($xml);
    return $xml->feed->entry['circulation'];
}
get_feedburner_stats();
?>

geeft bij mij de output:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
data = <?xml version="1.0" encoding="UTF-8"?>                            
<rsp stat="ok">                                                          
  <!--This information is part of the FeedBurner Awareness API. If you want to hide this information, you may do so via your FeedBurner Account.-->                                                                                                                                 
  <feed id="cbso9rlf2lv6mvju51s6b3gv54" uri="Coffeealchemists">                                                                           
    <entry date="2009-09-11" circulation="2" hits="28" reach="1" />                                                                       
  </feed>                                                                                                                                 
</rsp>

object(SimpleXMLElement)#1 (3) {
  ["@attributes"]=>
  array(1) {
    ["stat"]=>
    string(2) "ok"
  }
  ["comment"]=>
  object(SimpleXMLElement)#2 (0) {
  }
  ["feed"]=>
  object(SimpleXMLElement)#3 (2) {
    ["@attributes"]=>
    array(2) {
      ["id"]=>
      string(26) "cbso9rlf2lv6mvju51s6b3gv54"
      ["uri"]=>
      string(16) "Coffeealchemists"
    }
    ["entry"]=>
    object(SimpleXMLElement)#4 (1) {
      ["@attributes"]=>
      array(4) {
        ["date"]=>
        string(10) "2009-09-11"
        ["circulation"]=>
        string(1) "2"
        ["hits"]=>
        string(2) "28"
        ["reach"]=>
        string(1) "1"
      }
    }
  }
}

Wie trösten wir uns, die Mörder aller Mörder?


  • gitaarwerk
  • Registratie: Augustus 2001
  • Niet online

gitaarwerk

Plays piano,…

Topicstarter
echt heel raar dan...
simpleXML staat ook gewoon enabled... misschien moet ik even met de systeembeheerder van de server praten

ik kan het natuurlijk ook op de alleroude manier doen (met een zwaar php4 script)... beetje de doelstelling weg, maar het gaat toch icm cronjobs worden gebruikt.. (wil het toch eens weten wat er dan mis is)

[ Voor 45% gewijzigd door gitaarwerk op 12-09-2009 17:39 ]

Ontwikkelaar van NPM library Gleamy