login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Title in RSS bewerken

Offline Aar - 25/03/2010 21:56 (laatste wijziging 25/03/2010 21:57)
Avatar van AarPHP interesse met dit scriptje haal ik de data uit een RSS-feed, waarmee ik het in een array stop, om het vervolgens aan mijn Smarty-template te voeren.
  1. <?php
  2. $tpl->assign("title", "Spots");
  3. $spots = simplexml_load_file("http://www.domein.nl/rss.php",NULL, LIBXML_NOCDATA);
  4. $itemarray = (array)$spots->channel->item;
  5. $items = array();
  6.  
  7. foreach ($spots->channel->item as $item) {
  8. $items[] = (array)$item;
  9. }
  10. ?>



Nu wil ik dus de <title> uit de RSSfeed een eigen opmaak geven (d.m.v. explode etc):
<title>Donderdag 25 maart 2010 - ICM(m)-III 4022 reed trein 1649(V)</title>
Zodat ik in de array de datum los heb, en het type (ICM(m)) en het dienstnummer (1649(V)).

Waar en hoe kan ik deze bewerkingen uitvoeren in het script?

5 antwoorden

Gesponsorde links
Offline Martijn - 27/03/2010 13:54
Avatar van Martijn Crew PHP $spots->channel->item->titel kun je toch exploden op -, dan trim() je $array[0] en dan heb je je datum. Zelfde voor $array[1].

Om het dienstnummer te krijgen moet je een preg_match maken 
Offline TotempaaltJ - 27/03/2010 14:07
Avatar van TotempaaltJ PHP interesse Je kan het helemaal beter preg_match-en;
  1. $data = Array()
  2. preg_match('^(.*) - (.*)-(.*) ([0-9]*\([A-Za-z]\))$' , $spots->channel->item->titel, $data);

Niet getest, maar in principe zou nu matches er ong zo uit moeten zien:
[1] = hele titel
[2] = datum
[3] = Type
[4] = Alles tussen type en volgende
[5] = Dienstnummer, als het er altijd uitziet als 1234(A), overigens mag het er ook uit zien als 12345(Z)
Offline Aar - 07/04/2010 21:55
Avatar van Aar PHP interesse Thnx voor de pregmatch. Alleen werkt hij niet goed. Soms is de array helemaal leeg?
Offline TotempaaltJ - 07/04/2010 22:35
Avatar van TotempaaltJ PHP interesse Dan is de titel niet van dezelfde opbouw als die jij hebt gegeven. 
Offline Aar - 14/04/2010 12:14 (laatste wijziging 14/04/2010 12:25)
Avatar van Aar PHP interesse Ik heb de reg-ex even aangepast, delimiter erbij, en ook lijken de nummers soms afkortingen te hebben zoals GDST.

  1. preg_match('_^(.*) - (.*)-(.*) ([A-Za-z]*\([A-Za-z]\))$_' , $spots->channel->item->titel, $data);


Maar hoe wordt de reguliere expressie dan als de de haakjes niet verplicht zijn
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.198s