xml wird von php nicht erzeugt

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • xml wird von php nicht erzeugt

    Hallo! Ich möchte dass eine rss-Feed in xml automatisch je nach neuer News immer geschrieben wird. Nur leider seh ich nix, dass was klappt. Dachte erst es liegt an den Rechten, aber ich hab jetzt alles Mögliche, was zusammenhängen könnte mit 777 angepasst.

    Bemerke: Ich hab das im Netz gefunden und eben angepasst, da im Orginal ein paar Fehler angezeigt wurden.

    PHP Code:
    <?php function mkRSS () {
       
    $filename="news-rss";       //ohne Extension
       
    //die letzten 15 News werden aus Datenbank ausgewählt – sortiert nach Onlinestatus und Zeit 

       
    $sql="SELECT * FROM news Where online='Y' ORDER BY zeit desc LIMIT 0,15";
       
    //DOCUMENT_ROOT
       
    $siteRootsubstr_replace ($_SERVER[DOCUMENT_ROOT].$_SERVER["PHP_SELF"],
                  
    "",strrpos ($_SERVER[DOCUMENT_ROOT].$_SERVER["PHP_SELF"], "/")+1);

    //Erzeugen des RSS-Inhaltes:
       
    $rssHeader="<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>
       <rss version=\"0.91\">
                  <channel>
                  <title>Meineseite.xy News</title>
                  <description>Aktuelle News</description>
                  <language>de-de</language>
                  <link>http://www.meineseite.xy</link>
                  "
    ;
       
    $rssFooter="</channel>
                  </rss>"
    ;
                  
       
    $dbLink mysql_connect ('localhost''yyyy4''xxxxxxx');
       
    $setdb mysql_select_db('xxxxxxx',$dbLink);
       
    $result=mysql_query($sql,$dbLink);
       
    $content=$rssHeader;
       while(
    $row=mysql_fetch_array($result)){
          
    $titelnews=substr ($row['title'], 0100);  //Überschrift wird gezogen 100 Zeichen lang
          
    $text=substr ($row['txt'], 0250); //Newstext – hier 250 Zeichen lang max.
          
    $itemLink="http://www.meineseite.xy/news/";   //dies ist ein Link,

          
    $content.="<item>
                    <title>"
    .$titelnews."</title>
                    <description>"
    .$text."</description>
                    <link>"
    .$itemLink."</link>
                    </item>
                    "
    ;
       }
       
    $content.=$rssFooter;

       
    //file wird geschrieben
       
    $fh=fopen ($siteRoot.$filename.".rss""w");
       
    fputs $fh$content);
       
    fclose($fh);

       
    //file wird umbenannt
       
    rename ($siteRoot.$filename.".rss"$siteRoot.$filename.".xml");
       return;
    }

    ?>
    Bemerke: Es gibt bereits eine File mit news-rss.xml – die wird aber nicht überschrieben.

    Ist da irgendwo ein Fehler? Das PHP ist in der index.php eingebaut. Es kommt aber auch keine Fehlermeldung.

  • #2
    error_reporting(E_ALL);

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Comment


    • #3
      Es geschieht nix. Keine Ausgabe.

      Comment


      • #4
        auf den ersten blick:
        PHP Code:
        $_SERVER['DOCUMENT_ROOT'
        was gibt
        PHP Code:
        echo $siteRoot.$filename.".rss";
        echo 
        $content
        aus?
        PHP Code:
        return; 
        was?

        gruß
        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Comment


        • #5
          Testausgaben

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Comment


          • #6
            ok. $_SERVER['DOCUMENT_ROOT'] verbessert.

            ok. "Return" hab ich auch nicht so ganz verstanden. raus.

            aus
            PHP Code:
            echo $siteRoot.$filename.".rss";
            echo 
            $content
            kommt

            .rss
            Danke erstmal. Nur warum schreibt der nix?

            Comment


            • #7
              Nur warum schreibt der nix?
              das solltest du mit einer vernünftigen fehlersuche sehr schnell herausbekommen. also testausgaben mit echo, bis alles läuft.

              gruß
              peter
              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
              Meine Seite

              Comment

              Working...
              X