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:

<?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.)
Kun je je titel "PHP probleem" aub even aanpassen in een titel die het probleem beschrijft. De titel "PHP probleem" is nietszeggend.
Waar gaat het mis? Controleren of een bestand bestaat, en vervolgens op basis daarvan een antwoord geven is niet zo lastig:
<?php
echo file_exists($_GET['file']) ? 'yes' : 'no';
?>

edit: uitgebreider voorbeeld dat [php]XMLWriter[/php] gebruikt om een antwoord in XML te geven:
<?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
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.

[size=xsmall]Toevoeging op 13/04/2011 10:19:13:[/size]

@ 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.
De code die je nu moet gebruiken is die in main().
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?
Kan alleen als je PHP op windows draait.. maar moet je niet willen.
Wat wil je precies maken? Want ik krijg het idee dat je een deel-probleem van de verkeerde oplossing aan het oplossen bent.
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."
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

<?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();

?>

Reageren