php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.12.2006, 15:41  
Gast
 
Beiträge: n/a
Standard Brauche Hilfe bei der Ausgabe

Zitat:
Zitat von M3g4Star
Also es gibt genügend funktionen von PHP die dir da helfen können.

http://de3.php.net/manual/en/function.xml-parse.php

mit dem Code kannst du dir da salles in ein Array laden. Dann musst du's nur noch auslesen. Das machst mit ner Schleife. Auch nicht so schwer denn auf der php.net seite sind unter den Comments konkrete Beispiele dafür

PHP-Code:
<?php
$file
="http://www.google.com/calendar/feeds/webmaster%40marktgemeinde-seibersdorf.at/public/basic";
$xml_parser xml_parser_create();


$handle fopen($file"rb");
$contents '';
while (!
feof($handle)) {
  
$data .= fread($handle8192);
}
fclose($handle);

xml_parse_into_struct($xml_parser$data$vals$index);
xml_parser_free($xml_parser);

echo 
"<pre>";
print_r($vals);
echo 
"</pre>";
die();
?>
danke ich hab den parser-code verwendet und er funktioniert ,
leider hab ich es noch nicht geschafft die richtige syntax für die ausgabe herauszufinden, so einfach ist das dann leider doch nicht für mich.
die beispiele sind alle in einem anderen context bw. gehts da ja fast überall rein nur ums einlesen.

ich hab mal versucht nur den titel auszugeben:
in so einer schleife
Code:
foreach ($vals as &$value) {
zuerst so

PHP-Code:
printf('%s'$value); 
da kommt dann ArrayArray.....
was wohl soviel bedeutet wie dass man so nicht auf ein array zugreifen darf.

dann so:

PHP-Code:
printf('%s'$value->Title); 
oder so
PHP-Code:
printf('%s'$value->Entry->Title); 
da kam dann gar nix
während so:

PHP-Code:
echo "Value: $value->Title
\n"

immerhin Value: Value: Value:
kam was ich aber leider nicht interpretieren kann.

bitte um hilfe, wie kann ich beispielsweise nur den titel ausgeben?
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 13.12.2006, 15:49  
Gast
 
Beiträge: n/a
Standard

ich nehme mal an das mit dem pfeiloperator in diesem fall nicht drauf zugreifen kann, weil $value kein objekt ist??
 
Alt 13.12.2006, 16:02  
Erfahrener Benutzer
 
Registriert seit: 23.08.2007
Beiträge: 1.510
M3g4Star befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Hormic
ich nehme mal an das mit dem pfeiloperator in diesem fall nicht drauf zugreifen kann, weil $value kein objekt ist??
GENAU !! Tip: error_reporting(E_ALL); !!!
einfach an den Anfang deines Scripts setzen !

$value ist ein Array ...

da warst du mit deinem Code schon gut *hehe*

PHP-Code:
foreach ($vals as $value) {
print_r($value);

Dort kannst du dann sehen das es sich bei $value um ien Array handelt.
Also : kuck nochmal GANZ GANZ genau auf der seite nach :

http://de3.php.net/manual/en/function.xml-parse.php

Dort steht in den Kommentaren ein fertiges Script was dir das aufschlüsselt !

Weil DU musst jetzt nach und nach den Aufbau deiner XML verstehen und aufschlüsseln. Das heißt opener herausfiltern. Und das ganze am besten rekursiv !

Oder Google bemühen:

http://php-classes.org/ such mal nach google calendar
http://ajax.phpmagazine.net/2006/04/...e_calenda.html
M3g4Star ist offline  
Alt 13.12.2006, 16:34  
Gast
 
Beiträge: n/a
Standard

das fegefeuer ist ein dreck dagegen
ok ich weiss dass es ein array ist und ich weiss auch dass ich normalerweise mittels index auf ein array zugreife array[12] aber bitte bitte sag mir wie ich in diesem fall auf so ein arrayelement zugreifen kann.
da gehts ja gar nicht um den aufbau von der scheiss xml, den hab ich schon zur genüge studiert und bin drauf gekommen, dass ein rss feed um einiges angehnemer aufgbaut ist und hier x fallstricke lauern.

eine andere frage, ich hab parallell versucht das problem jetzt mittels simplexml zu lösen und bin dort schon wesentlich weiter, immerhin kann ich dort schon den titel ausgeben auf oben beschriebene art und weise.
aber dafür komm ich auf die links nicht hin.
weil die links dort

Code:
[link] => Array
        (
            [0] => SimpleXMLElement Object
                (
                )

            [1] => SimpleXMLElement Object
                (
                )

        )
in einem von diesen 2 unter arrays drinnenstehen.
wie komm ich da wieder hin?

$nachricht->link(hier weiss ich wieder mal nicht weiter)
oder geht das gar nicht, weil simplexml die links nicht erfasst hat?

nervlich schon fast am ende werd ich mich jetzt deinen anderen links zuwenden.
 
Alt 13.12.2006, 17:04  
Gast
 
Beiträge: n/a
Standard

hilft mir das?
PHP-Code:
$tag=array("name"=>$name,"attrs"=>$attrs); 
dort steht soviel code und ich hab so wenig ahnung, die beispiele sind zT äusserst komplex.
 
Alt 13.12.2006, 17:26  
Erfahrener Benutzer
 
Registriert seit: 23.08.2007
Beiträge: 1.510
M3g4Star befindet sich auf einem aufstrebenden Ast
Standard

Hat ja auch keiner behauptet das das so einfach ist eine XML richtig auszulesen.
Wichtig ist das du en Aufbau kennst und das du weißt welche Tags du Wohin haben willst !!

Ich weiß das leider nicht daher kann ich dir jetzt auch nicth so recht weiter helfen ..

Du hast die XML ordentlich in nem Array.
Jetzt musst du's nur noch richtig "durchlaufen" und gut ..

Mit den Infos die du hergibst kommt man nicht weiter an dem Punkt ...
M3g4Star ist offline  
Alt 13.12.2006, 17:30  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

auf ein array wird über seinen schlüssel zugegriffen. ist dieser schlüssel ein string, so nutzt du eben den string in hochkommata als schlüssel:

$array['schlüssel']

ein mehrdimensionales array kann durch aneinanderreihen eckiger klammern ausgelesen werden

$array['schlüssel1']['schlüssel2']

die xml_parse_into_struct() liefert dir nicht nur das $val Array (das du mit foreach durchlaufen kannst), sondern auch das $index Array, das alle gefundenen Tags auf Einträge der Art

$index['Tagname'][#] = numerischer Key in $vals

abbildet
nikosch ist offline  
Alt 13.12.2006, 17:46  
Gast
 
Beiträge: n/a
Standard

mir wäre ja schon fast lieber wenn ich bei dem simplexml variante weiterkomme, weil da seh ich licht am ende des tunnels, hier mal der code:

PHP-Code:
$url 'http://www.google.com/calendar/feeds/webmaster%40marktgemeinde-seibersdorf.at/public/basic';
$xml simplexml_load_string(file_get_contents($url)); 

print (
'

'
); 
foreach (
$xml->entry as $nachricht)  
{
printf('[url="%s"]%s[/url]%s
'

    
$nachricht->link
    
utf8_decode($nachricht->title), 
    
utf8_decode($nachricht->content)); 


print (
'</p>'); 
das funktioniert fast perfekt, das problem ist wie weiter oben beschrieben, der link tag auf den ich nicht zugreifen kann.

hier nochmal ein ausschnitt aus der struktur:

Code:
SimpleXMLElement Object
(
    [id] => http://www.google.com/calendar/feeds...t/public/basic
    [updated] => 2006-12-07T12:14:49.000Z
    [title] => Marktgemeinde-Seibersdorf
    [subtitle] => Veranstaltunge, Heurige, Müllabfuhr in der Marktgemeinde Seibersdorf, Deutsch-Brodersdorf
    [link] => Array
        (
            [0] => SimpleXMLElement Object
                (
                )

            [1] => SimpleXMLElement Object
                (
                )

        )
sind die links verfügbar, oder ist das zu tief verschachtelt für simplexml??
 
Alt 13.12.2006, 23:00  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

schau dir mal die beispiele für simple xml an,
die struktur <movies> <movie> ist doch ähnlich der von <feed> <entry>.

du greifst doch auch auf entry mit foreach zu, warum denn nicht auch auf link, wenn er mehrfach im entry vorkommt? wie sollte php denn einen der inhalte auswählen??
nikosch ist offline  
Alt 13.12.2006, 23:33  
Gast
 
Beiträge: n/a
Standard

naja das problem ist für mich, das ich mittels $xml->entry->link nicht auf die links zugreifen kann.
vielleicht kann man irgendwie darauf zugreifen, ich würde es mir wünschen und ausserdem jemanden der mir sagt wie das geht!!

und weil in der ausgabe der struktur, nicht mal die links drinnenstehen sondern nur leere klammern

[0] => SimpleXMLElement Object
(
)

hab ich die befürchtung dass die links da gar nicht richtig erfasst werden, weil sie noch eine ebene tiefer verschachtelt sind.

bei der anderen einlesevariante von M3g4Star, da sind die links zu sehen,
allerdings ist die struktur nicht so wie sie original ist. entry ist da auf der selben ebene wie alle anderen, welche eigentlich die childs von entry sein sollten.
hier eine strukturübersicht von der M3g4Star variante - http://www.marktgemeinde-seibersdorf...dex_test4.html

hier eine strukturübersicht von simplexml, die eigentlich so ist wie das originaldokument, ausser dass eben die links fehlen:
http://www.marktgemeinde-seibersdorf...dex_test5.html
ganz unten noch die ausgabe, die ich mit diesem code erreiche:
PHP-Code:
foreach ($xml->entry as $nachricht)  
{
printf('[url="%s"]%s[/url]%s
'

    
$nachricht->link[1]->href
    
utf8_decode($nachricht->title), 
    
utf8_decode($nachricht->content)); 

und die bis auf angesprochenes prob bei den links eigentlich genauso ist wie sie bis jetzt mal sein sollte.

Ironie - http://www.marktgemeinde-seibersdorf...dex_test3.html
das auch noch die version die schon vor 2 tagen hatte und von dessen ergebnis ich weiter entfernt bin wie vom mars, dafür bin ich der irrenanstalt ein bischen näher :wink:
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Ordner auslesen und während des auslesen sortieren Dooki PHP Tipps 2008 6 14.05.2008 17:50
Vom Browser verschickte Daten auslesen und anzeigen? andy32 PHP Tipps 2008 3 22.08.2007 18:33
suche atom feed integration beispiel Trash 1 08.12.2006 05:23
RSS2.0 Feed auslesen und Grafik generieren PHP Tipps 2006 4 12.10.2006 15:23
gelöst: Tabelle auslesen -&amp;amp;amp;gt; Gleiche Einträge nur 1 Mal Datenbanken 3 31.03.2006 01:44
Textdatei auslesen, aber ohne Komentare HSFighter PHP Tipps 2006 31 23.02.2006 10:07
Cookies auslesen HSFighter PHP Tipps 2007 2 19.11.2005 14:56
[Erledigt] bestimmte ID's auslesen als array PHP Tipps 2007 2 31.10.2005 20:23
Daten eintragen und auslesen Rettungsdackel Datenbanken 0 14.09.2005 16:29
Daten aus einer Datenbank auslesen Datenbanken 2 04.09.2005 19:13
[Erledigt] nächste Zeile einer Db auslesen? PHP Tipps 2005-2 7 01.08.2005 00:11
alle Verzeichnisse sortiert auslesen PHP Tipps 2005-2 7 17.07.2005 10:20
auslesen und nochmals auslesen?! $$$ ThiKool $$$ PHP Tipps 2005 23 10.03.2005 19:43
[Erledigt] Auslesen von Text incl. &quot; aus Textfeld PHP Tipps 2007 4 04.01.2005 13:30
[Erledigt] Daten von anderer Homepage auslesen PHP Tipps 2004-2 5 02.12.2004 18:49

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
ausgabe einer atom-feed antwort mit php, google calendar simplexml, php atom parser, simplexml atom feed, simplexml <link href auslesen, simplexml atom entry link, php atom zugriff auf content, mit php auf element in atom feed zugreifen, atom feed php, php feeds atom zugreifen?, php xml_parse_into_struct, atom feed auslesen, php pfeiloperator browserproblem, php atom feed parse, atom feed script, simplexml tief verschachtelt, simplexml atom:id auslesen, xml atom php auslesen, php atom einlesen, atom feed in array auslesen

Alle Zeitangaben in WEZ +1. Es ist jetzt 09:00 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.