Registreer FAQ Berichten van vandaag


Ga terug   Scholieren.com forum / Technologie / Software & Hardware
Reageren
 
Topictools Zoek in deze topic
Oud 28-02-2003, 10:45
Martin
Avatar van Martin
Martin is offline
Ik wil graag met een scriptje de topics weergeven waarin het laatst activiteit is geweest. Op de server van s.com staat het bestand hottopic.php, deze wil ik dus graag uitlezen en weergeven.

Ik heb tot nu toe de volgende code:
PHP-code:
<?php 
$open 
fopen("http://forum.scholieren.com/hottopic.php""r"); 
$read fread($open200000); 
echo 
"$read";
fclose($open); 
?>
Nu krijg ik dus een resultaat zoals je hier kan zien.

Mijn vraag: Hoe rip ik de topic id`s etc uit dit XML bestand en stop ik ze in een nieuw bestand?
Met citaat reageren
Advertentie
Oud 28-02-2003, 10:54
Verwijderd
PHP-code:
$data eregi("<replierid>(.*)</replierid>"$lezen$tekst); 
echo 
$tekst[1]; 
zoiets
(zal wel weer klachten kijgen, maar goed )
Met citaat reageren
Oud 28-02-2003, 11:05
Martin
Avatar van Martin
Martin is offline
Citaat:
McLaren schreef:
PHP-code:
$data eregi("<replierid>(.*)</replierid>"$lezen$tekst); 
echo 
$tekst[1]; 
zoiets
(zal wel weer klachten kijgen, maar goed )
Dit heb je gejat van PHPfreakz
maar dit is dus ook niet helemaal wat ik zoek.

Ik wil dus een aantal variabelen krijgen:

$topic_id
$topic_titel
$topic_starttijd
$topic_laatstereactie
$topic_reacties
$topicstarter_naam
$topicstarter_id
$laatstreactie_naam
$laatstereactie_id

Maar volgens mij gaat dat nooit lukken
Met citaat reageren
Oud 28-02-2003, 11:09
Verwijderd
Komt idd van phpfreakz, zit op school dus kan maar beperkte dingen nu
Maar zo kun je toch meerdere dingen ervanaf halen
Met citaat reageren
Oud 28-02-2003, 11:13
Verwijderd
PHP-code:
<?
$code[1] = "topic_id";
$code[2] = "$topic_titel";
$code[3] = "$topic_starttijd"; 
$code[4] = "topic_laatstereactie";
$code[5] = "topic_reacties";
$code[6] = "topicstarter_naam";
$code[7] = "topicstarter_id";
$code[8] = "laatstreactie_naam";
$code[9] = "laatstereactie_id";

while (list ($key, $val) = each ($code)) {
    $data = eregi("<$val>(.*)</$val>", $lezen, $tekst); 
    $$val = $val[1];
    echo "\$$val = $val[1];";
}

?>
Krijg ik nu credits?

edit: nu denk ik er trouwens niet aan dat er meerdere replies etc staan in hottopic :/
Met citaat reageren
Oud 28-02-2003, 11:21
Martin
Avatar van Martin
Martin is offline
Citaat:
McLaren schreef:
Krijg ik nu credits?
Maar natuurlijk

Ik heb nu onderstaande code, maar krijg een vage return:
PHP-code:
<?php 
$open 
fopen("http://forum.scholieren.com/hottopic.php""r"); 
$read fread($open200000); 

$code[1] = "id";
$code[2] = "titel";
$code[3] = "startts"
$code[4] = "lastts";
$code[5] = "topicstarter";
$code[6] = "starterid";
$code[7] = "replies";
$code[8] = "last_replier";
$code[9] = "replierid";

while (list (
$key$val) = each ($code)) {
    
$data eregi("<$val>(.*)</$val>"$read$tekst); 
    $
$val $val[1];
    echo 
"\$$val = $val[1];";
}

fclose($open); 
?>
Met citaat reageren
Oud 28-02-2003, 11:24
Verwijderd
als je ook zegt wat je dan te zien krijgt..
Met citaat reageren
Oud 28-02-2003, 11:25
Martin
Avatar van Martin
Martin is offline
Citaat:
McLaren schreef:
als je ook zegt wat je dan te zien krijgt..
Zie: http://scholieren.dynamicdreams.nl
Met citaat reageren
Oud 28-02-2003, 11:26
Verwijderd
Je krijgt van iedere key de 2e letter te zien???
Dat snapo ik niet
Met citaat reageren
Oud 28-02-2003, 11:28
Martin
Avatar van Martin
Martin is offline
Citaat:
McLaren schreef:
Je krijgt van iedere key de 2e letter te zien???
Dat snapo ik niet
Me neither, maar ik ga ff tosties maken, ben zo terug.
Met citaat reageren
Oud 28-02-2003, 11:32
Verwijderd
PHP-code:
<?php 
$open 
fopen("http://forum.scholieren.com/hottopic.php""r"); 
$read fread($open200000); 

$code[1] = "id";
$code[2] = "titel";
$code[3] = "startts"
$code[4] = "lastts";
$code[5] = "topicstarter";
$code[6] = "starterid";
$code[7] = "replies";
$code[8] = "last_replier";
$code[9] = "replierid";

while (list (
$key$val) = each ($code)) {
    
$data eregi("<$val>(.*)</$val>"$read$tekst); 
    $
$val $tekst[1];
    echo 
"\$$val = $tekst[1];";
}

fclose($open); 
?>
Dit zal al iets beter werken
(er stond $var[1] ipv $tekst[1])

Of het trouwnes werkt weet ik niet
Met citaat reageren
Oud 28-02-2003, 11:38
Martin
Avatar van Martin
Martin is offline
Citaat:
McLaren schreef:
PHP-code:
echo "code"
Dit zal al iets beter werken
(er stond $var[1] ipv $tekst[1])

Of het trouwnes werkt weet ik niet
Nope, it doesn`t work, hij geeft alleen de variabele ID van het eerste topic een waarde mee (oid)
Met citaat reageren
Oud 28-02-2003, 12:20
JJzD
JJzD is offline
php heewft een xml parser

http://www.php.net/manual/tw/ref.xml.php

stuk sneller en beter
__________________
-|-

Laatst gewijzigd op 28-02-2003 om 12:25.
Met citaat reageren
Oud 28-02-2003, 12:35
Martin
Avatar van Martin
Martin is offline
Citaat:
JJzD schreef:
php heewft een xml parser

http://www.php.net/manual/tw/ref.xml.php

stuk sneller en beter
gelezen en dan snap ik er nog niets van
Met citaat reageren
Oud 28-02-2003, 12:48
JJzD
JJzD is offline
Citaat:
Martin schreef:
gelezen en dan snap ik er nog niets van
ken je xml??
dan zou ik dat eerst leren
__________________
-|-
Met citaat reageren
Oud 28-02-2003, 13:02
Martin
Avatar van Martin
Martin is offline
Citaat:
JJzD schreef:
ken je xml??
dan zou ik dat eerst leren
Ik kende XML niet, ik heb nu een tutorial @ w3schools gelezen en snap de opbouw van XML en hoe je het kan gebruiken. Maar dan snap ik nu nog niet hoe ik de PHP XML parser moet gebruiken.
Met citaat reageren
Oud 28-02-2003, 14:32
Enlightenment
Avatar van Enlightenment
Enlightenment is offline
Citaat:
JJzD schreef:
php heewft een xml parser

http://www.php.net/manual/tw/ref.xml.php

stuk sneller en beter
Taiwanees ken ik persoonlijk niet zo goed.

Engels wel:
http://www.php.net/manual/en/ref.xml.php

__________________
Per undas adversas (tegen de stroom in)
Met citaat reageren
Oud 28-02-2003, 14:46
Martin
Avatar van Martin
Martin is offline
Citaat:
Enlightenment schreef:
Taiwanees ken ik persoonlijk niet zo goed.

Engels wel:
http://www.php.net/manual/en/ref.xml.php

http://www.php.net/manual/ne/ref.xml.php

Nederlands ook goed?
Met citaat reageren
Oud 28-02-2003, 14:58
Enlightenment
Avatar van Enlightenment
Enlightenment is offline
Citaat:
Martin schreef:
http://www.php.net/manual/ne/ref.xml.php

Nederlands ook goed?
Kan ook

Ik lees dingen het liefst in het Engels.
__________________
Per undas adversas (tegen de stroom in)
Met citaat reageren
Oud 28-02-2003, 15:25
Manuzhai
Avatar van Manuzhai
Manuzhai is offline
Ik heb hier vrij veel ervaring mee, voor mijn NML channeltjes. Ik gebruik meestal preg_match_all() om de shit uit de pagina te halen, en daarna gewoon weer in XML met leuke string-concatenatie uitpoepen. Erg moeilijk is het niet.

Hier is trouwens de XML-parsing class die ik gebruik. Misschien nuttig.
__________________
Slechts beschikbaar via naamzoek/privebericht.

Laatst gewijzigd op 28-02-2003 om 15:29.
Met citaat reageren
Oud 28-02-2003, 15:27
Manuzhai
Avatar van Manuzhai
Manuzhai is offline
Ik zou nl doen in plaats van ne. En als je dan ook nog een Nederlandse mirror pakt is het helemaal mooi.
__________________
Slechts beschikbaar via naamzoek/privebericht.
Met citaat reageren
Oud 28-02-2003, 15:31
TouchOfDarkness
Avatar van TouchOfDarkness
TouchOfDarkness is offline
Citaat:
Manuzhai schreef:
Ik heb hier vrij veel ervaring mee, voor mijn NML channeltjes. Ik gebruik meestal preg_match_all() om de shit uit de pagina te halen, en daarna gewoon weer in XML met leuke string-concatenatie uitpoepen. Erg moeilijk is het niet.

Hier is trouwens de XML-parsing class die ik gebruik. Misschien nuttig.
idd met preg_match_all(), zou ik ook gekozen hebben. Wel makkelijkste oplossing om meerdere patterns over de hele content op te halen.
__________________
He can't hear the sirens, cause silence is the greatest sleep of them all.
Met citaat reageren
Oud 28-02-2003, 16:04
Enlightenment
Avatar van Enlightenment
Enlightenment is offline
Handigst lijkt me om alles in een array te gooien. Waarvan elk element ook weer een array is.

Dan krijg je:
$hottopic[1]['id]
en
$hottopic[2]['last_replier']
etc.

Dan kun je dat mooi opmaken met php:

PHP-code:
<table>
<?
foreach($hottopic as $topicnr => $topic)
 echo('<tr><td><a href="http://forum.scholieren.com/showthread.php?'
.'s=&threadid='.$topic['id'].'>'.$topic['titel'].'</a></td></tr>');
?>
</table>
Sorry voor de opmaak.
__________________
Per undas adversas (tegen de stroom in)

Laatst gewijzigd op 28-02-2003 om 16:28.
Met citaat reageren
Oud 28-02-2003, 17:59
Martin
Avatar van Martin
Martin is offline
Ik heb nu dit:
PHP-code:
<?php 
$open 
fopen("http://forum.scholieren.com/hottopic.php""r"); 
$read fread($open200000);

$topic preg_match_all("<topic>(.*)</topic>"$read$topic);

echo 
"$topic[0]<P>";
echo 
"$topic[1]<P>";

fclose($open); 
?>
Maar dan geeft hij een error in de regel bij preg_match_all(). Wat doe ik fout?
Met citaat reageren
Oud 28-02-2003, 18:23
TouchOfDarkness
Avatar van TouchOfDarkness
TouchOfDarkness is offline
een pattern matching regex werkt niet helemaal hetzelfde als een gewone regular expression

PHP-code:
preg_match_all("/<topic>(.*)<\/topic>/ms"$read$topic); 
zou wel moeten werken dacht ik...
__________________
He can't hear the sirens, cause silence is the greatest sleep of them all.

Laatst gewijzigd op 28-02-2003 om 18:26.
Met citaat reageren
Advertentie
Oud 28-02-2003, 18:24
Martin
Avatar van Martin
Martin is offline
Citaat:
TouchOfDarkness schreef:
een pattern matcher werkt niet helemaal hetzelfde als een regular expression

PHP-code:
preg_match_all("/<topic>(.*)<\/topic>/ms",_$read,_$topic); 
zou wel moeten werken dacht ik...
Parse error: parse error in c:\apache\htdocs\php.net\002.php on line 5


Met citaat reageren
Oud 28-02-2003, 18:25
TouchOfDarkness
Avatar van TouchOfDarkness
TouchOfDarkness is offline
waarom staan die underscores voor de varnames??

edit: kennelijk foute quote van mij

grmbl, backslashes worden weer ge-escaped:

PHP-code:
preg_match_all("#<topic>(.*)</topic>#ms"$read$topic); 
__________________
He can't hear the sirens, cause silence is the greatest sleep of them all.
Met citaat reageren
Oud 28-02-2003, 18:30
Martin
Avatar van Martin
Martin is offline
Ik heb nu geen errors meer, maar ook geen result. :-/
Met citaat reageren
Oud 28-02-2003, 20:32
Martin
Avatar van Martin
Martin is offline
Het resultaat
Met citaat reageren
Oud 28-02-2003, 20:47
Enlightenment
Avatar van Enlightenment
Enlightenment is offline
Citaat:
Martin schreef:
Het resultaat
Congrats
__________________
Per undas adversas (tegen de stroom in)
Met citaat reageren
Oud 01-03-2003, 11:22
Verwijderd
ohw, wilde je dat doen..
Dan had jer gewoon str_replace kunnen gebruiken dus

EN het zijn nieuw "Nieuwste topics"maar "nieuwste replies".

En volgens mij heeft vB die functie zelf ook al
Met citaat reageren
Advertentie
Reageren


Regels voor berichten
Je mag geen nieuwe topics starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Spring naar

Soortgelijke topics
Forum Topic Reacties Laatste bericht
Software & Hardware Programma op server draaien.
iamcj
5 11-04-2003 17:47


Alle tijden zijn GMT +1. Het is nu 20:03.