1. Open het bestand met je favoriete programmeertaal
2. Haal alle '<file>' elementen eruit
3. Loop door alle <file> elementen
4. Haal de <filename> en <binary> eruit
5. Als binary niet 1 is stop en ga verder met het volgende item
6. Als binary 1 is, decodeer het bestand en sla het op onder de goede <filename>
6 stappen, 20 regels code (kan waarschijnlijk nog korter) in PHP.
Er horen in dit forum eigenlijk geen script-requests (zie P&W Beleid!) maar ik ben in een gulle bui, en heb het nu toch al gemaakt.
Topics en posts in de trant van "ik kan dat en dat scriptje niet meer vinden" of "dit programma lukt niet, wie kan het voor me afmaken?" worden direct op slot gedaan. Houd je aan de quickstart.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <?php
$fS = file_get_contents( 'ipb.xml' );
preg_match_all( '~\<file\>(.+?)\<\/file\>~is' , $fS , $m );
$m = $m[0];
foreach( $m as $txt ){
preg_match( '~<filename>([a-zA-Z0-9-_\.]+)</filename>~i' , $txt , $s );
$filename = $s[1];
preg_match( '~<binary>([0-9]{1})</binary>~i' , $txt , $s );
$binary = $s[1];
if( $binary == "1" ){
preg_match( '~<content>(.+?)</content>~is' , $txt , $s );
$content = $s[1];
$fp = fopen( "files/" . $filename , "a+" );
if( $fp ){
fwrite( $fp , base64_decode( $content ) );
fclose( $fp );
}
}
}
?> |
ipb.xml moet het xml bestand zijn natuurlijk.
het php bestand moet in een map staan waar een andere map bij staat (files), welke schrijfbaar moet zijn. (Chmod 777)
Mappen structuur (voorbeeld):
/ipbrip
/ipbrip/file.php
/ipbrip/ipb.xml
/ipbrip/files/ (schrijfbaar!)
[
Voor 9% gewijzigd door
semicolon op 05-07-2005 23:08
]