PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   PHP - Zähler für ein Array und XML Textsruktur (http://www.selfphp.de/forum/showthread.php?t=22068)

grutho 31.08.2009 17:59:30

PHP - Zähler für ein Array und XML Textsruktur
 
Hallo,
als relativer PHP-Neuling steh ich mittlerweile vor einer für mich unlösbaren Aufgabe... ;-)

Ich lese mittels PHP eine XML Datei aus. Dabei stosse ich auf zwei Probleme:

Eigentlich sollten nur die letzten 5 Einträge (mit den höchsten ID's) ausgegeben werden. Zum anderem wird mir (scheinbar) beim Einlesen in das Array die Textstruktur zerschossen. Das heisst in der XML gibt es ein Feld welches Umbrüche enthält. Die sollten auch dort bleiben...

Würde mich freuen, wenn mir jemand nach unzähligen und nächtlichen Stunden helfen könnte.

PHP-Code:

$daten file_get_contents("/www/...  .../xml/projektanfragen.xml"); // Datei einlesen
$daten explode("<Projektanfragen>" $daten); // Inhalt in ein Array zerlegen

$daten array_slice($daten1);      

for (
$i=0$i<5$i++) {
foreach (
$daten as $elem) {


 
ereg("<ID>(.*)</ID>" $elem $id);
 
$id $id[1];
 
ereg("<Datum_x0020_start>(.*)</Datum_x0020_start>" $elem $xml[$id]["datum_start"]);
 
ereg("<Datum_x0020_ende_x0020__x0028_Laufzeit_x0029_>(.*)</Datum_x0020_ende_x0020__x0028_Laufzeit_x0029_>" $elem $xml[$id]["datum_ende"]);
 
ereg("<Katekorie>(.*)</Katekorie>" $elem $xml[$id]["katekorie"]);
 
ereg("<Titel>(.*)</Titel>" $elem $xml[$id]["titel"]);
 
ereg("<Beschreibung>(.*)</Beschreibung>" $elem $xml[$id]["beschreibung"]);
 
ereg("<Leistungsort>(.*)</Leistungsort>" $elem $xml[$id]["ort"]);
 
ereg("<Quelle>(.*)</Quelle>" $elem $xml[$id]["quelle"]);
 
ereg("<Status>(.*)</Status>" $elem $xml[$id]["status"]);
 
ereg("<Type>(.*)</Type>" $elem $xml[$id]["type"]);

 
//baut Array mit den Typs auf
 
$type[$xml[$id]["type"][1]]++;
                             }
                         }
 
if (
is_array($xml)) {
                        
krsort ($xml);
                    }
  
echo 
"<table width='180' border='0' cellspacing='2' cellpadding='0'>";

 foreach (
$xml as $key => $elem) {

// selektion ob Projekt noch offen

 
if ($elem['status'][1] == "offen") {

  
 
// Tabellenansicht
    
echo " <tr>";
    echo 
" <td colspan='4' valign='top'><FONT size='-1' FACE='arial'><strong>".$elem['titel'][1]." </strong></td>\n";
    echo 
" </tr>";
    echo 
" <td valign='top' width='100'><FONT size='-2' FACE='arial'>Typ: ".$elem['type'][1]." </font></td>\n";
    echo 
" <tr>";
    echo 
" <td colspan='4' valign='top'><FONT size='-1' FACE='arial'> ".substr($elem["beschreibung"][1],0,80)."...  </td>\n";
    echo 
" </tr>";
    echo 
" <tr>";
    echo 
" <td valign='top' width='150'><FONT size='-2' FACE='arial'>Ort: ".$elem["ort"][1]." </td>\n";
    echo 
" <td valign='bottom' align='left'><FONT size='-2' FACE='arial'> <a href=\"/index.php?option=com_content&view=article&id=12&jobid=".$key."\" target='_parent'>...mehr</a> </font><br><br></td>\n";
   
    echo 
" <tr>";
 
 } 




echo 
"</table>";

 

?> 

Vorweg schon mal herzlichen Dnak für eure Hilfe,
Tom

grutho 31.08.2009 18:43:57

AW: PHP - Zähler für ein Array und XML Textsruktur
 
Kleiner Nachtrag...

das mit der Übernahme des Zeilenumbruchs hab ich mittlerweile hingebracht. Grund für den fehlenden Umbruch waren die beiden unterschiedlichen Interpretationen von /n und <br>

Nachdem ich den Befehl nl2br genutzt habe, funktionierte auch die Echoausgabe richtig...

z.B.:
PHP-Code:

 echo nl2br (" <td colspan='4' valign='top'> ".$elem["beschreibung"][1]."</td>\n"); 

Nun würde ich mich nur noch über die Hilfe beim Zähler freuen....

xabbuh 01.09.2009 10:43:35

AW: PHP - Zähler für ein Array und XML Textsruktur
 
Nimm doch lieber die DOM- oder SimpleXML-Erweiterung für die Analyse des XML-Dokumentes.

grutho 01.09.2009 13:45:08

AW: PHP - Zähler für ein Array und XML Textsruktur
 
Zitat:

Zitat von xabbuh (Beitrag 130442)
Nimm doch lieber die DOM- oder SimpleXML-Erweiterung für die Analyse des XML-Dokumentes.

Vielen Dank für die Antwort. Leider ist DOM und SimpleXML eine Frage der PHP Version, welche auf dem Server läuft. Die Problematik ist ja auch nicht beim Auslesen des XML Dokuments gegeben, sondern in der limitierung des Arrays.

Niemand eine Idee?


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:59:05 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.