controle op bestaande bestanden (PHP) met XML response

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kenneth Dehouwer

Kenneth Dehouwer

11/04/2011 15:04:26
Quote Anchor link
Ik ben al een bepaalde tijd bezig met een script maar ik zou niet weten hoe ik dit klaar kan krijgen.

Ik ben aan het proberen een PHP-script te maken dat moet controleren of bepaalde bestanden bestaan (bv. video's op een bepaalde server). En het script zou dan een xml-response moeten teruggeven.

Dus het zou iets moeten zijn in het volgende formaat:
https://management.streaming.nl/scripts/support/checkfile.php?file=filename

Het resultaat is dan een XML bestand in volgend formaat:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?xml version="1.0" encoding="ISO-8859-1" ?>

<statuscheck>
<status>OK|NIETOK|ERROR</status>
<message>bericht</message>
</statuscheck>

Het CMS systeem zal iedere X seconden de status van de bestanden moeten controleren. En deze controle kan aangepast worden (bv. langere tijd etc.)
Gewijzigd op 13/04/2011 08:48:01 door Kenneth Dehouwer
 
PHP hulp

PHP hulp

22/12/2024 08:07:33
 
Kenneth Dehouwer

Kenneth Dehouwer

13/04/2011 08:26:42
Quote Anchor link
niemand een idee?
 
Ozzie PHP

Ozzie PHP

13/04/2011 08:44:21
Quote Anchor link
Kun je je titel "PHP probleem" aub even aanpassen in een titel die het probleem beschrijft. De titel "PHP probleem" is nietszeggend.
 
Jelmer -

Jelmer -

13/04/2011 08:46:25
Quote Anchor link
Waar gaat het mis? Controleren of een bestand bestaat, en vervolgens op basis daarvan een antwoord geven is niet zo lastig:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo file_exists($_GET['file']) ? 'yes' : 'no';
?>


edit: uitgebreider voorbeeld dat XMLWriter gebruikt om een antwoord in XML te geven:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php

function respond_xml($status, $message)
{

    $out = new XMLWriter();
    $out->openURI('php://output');
    $out->setIndent(true);

    $out->startDocument('1.0', 'ISO-8859-1');

    $out->startElement('statuscheck');
    $out->writeElement('status', $status);
    $out->writeElement('message', $message);
    $out->endElement();
    
    $out->endDocument();
    
    $out->flush();
}

function
main()
{

    header('Content-type: text/xml');

    if (!isset($_GET['file']))
        respond_xml('ERROR', 'file parameter missing');
    else if (file_exists($_GET['file']))
        respond_xml('OK', 'file exists');
    else
        respond_xml('NIETOK', 'file does not exist');
}


main();
?>


edit: code clean-up
Gewijzigd op 13/04/2011 12:18:27 door Jelmer -
 
Kenneth Dehouwer

Kenneth Dehouwer

13/04/2011 08:57:22
Quote Anchor link
Het probleem is eigenlijk dat ik niet weet hoe ik de locatie van het bestand moet opgeven en hoe ik een xml response moet teruggeven.

Toevoeging op 13/04/2011 10:19:13:

@ Jelmer rrrr: Bedankt hiervoor, nu kan ik al wel een beetje verder.
Maar nu was ik mij wel aan het afvragen hoe ik dit uitvoer of dit kan testen?
Het is namelijk lang geleden dat ik nog met PHP gewerkt heb.
 
Gerben Jacobs

Gerben Jacobs

13/04/2011 11:14:18
Quote Anchor link
De code die je nu moet gebruiken is die in main().
 
Kenneth Dehouwer

Kenneth Dehouwer

13/04/2011 11:24:21
Quote Anchor link
Ok, maar ik heb nu bijvoorbeeld een bestand op mijn bureaublad staan en ik wil testen of dit bestaat. Hoe kan ik dat dan doen?
 
Gerben Jacobs

Gerben Jacobs

13/04/2011 11:29:17
Quote Anchor link
Kan alleen als je PHP op windows draait.. maar moet je niet willen.
 
Jelmer -

Jelmer -

13/04/2011 12:16:19
Quote Anchor link
Wat wil je precies maken? Want ik krijg het idee dat je een deel-probleem van de verkeerde oplossing aan het oplossen bent.
 
Kenneth Dehouwer

Kenneth Dehouwer

13/04/2011 12:29:44
Quote Anchor link
Wat ik dus al eerder gezegd heb:
"Ik ben aan het proberen een PHP-script te maken dat moet controleren of bepaalde bestanden bestaan (bv. video's op een bepaalde server). En het script zou dan een xml-response moeten teruggeven."
 
Kenneth Dehouwer

Kenneth Dehouwer

20/04/2011 10:23:32
Quote Anchor link
Bedankt Jelmer voor deze code.
Ik heb dit getest en het werkt ook.
Maar nu zit ik namelijk met een ander probleem:
Het script zou eigenlijk eerst 5 keer de melding moeten geven van dat het bestand niet bestaat, en na de 5e keer zou hij moeten weergeven dat het bestand wel bestaat.
En er zou ook nog iets moeten inkomen dat hij een time-out geeft na dat hij het bestand niet vind na bv. 50 keer proberen.
Ik ben terwijl ook even nog aan het googelen naar antwoorden.

Bedankt

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php

function respond_xml($status, $message)
{

    $out = new XMLWriter();
    $out->openURI("php://output");
    $out->setIndent(true);

    $out->startDocument("1.0", "ISO-8859-1");

    $out->startElement("statuscheck");
    $out->writeElement("status", $status);
    $out->writeElement("message", $message);
    $out->endElement();

    $out->endDocument();
    
    $out->flush();
}

function
main()
{

    header("Content-type: text/xml");

    if (!isset($_GET["file"]))
        respond_xml("ERROR", "File parameter missing");
    else if (file_exists($_GET["file"]))
            return respond_xml("OK", "File exists");
    else
           return respond_xml("NOT OK", "File does not exist");
}


main();

?>
 
Kenneth Dehouwer

Kenneth Dehouwer

22/04/2011 08:17:00
Quote Anchor link
iemand?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.