PHP >> XML toevoegen dimensions

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Willem Schulte

Willem Schulte

20/09/2010 16:05:39
Quote Anchor link
script guru's!
ik heb nu een PHP scriptje:


PHP Code:
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
<?php
header('Content-type: text/xml');
function
dirToXml($path)
{

    $path = realpath($path);
    $doc = new DOMDocument('1.0', 'utf-8');
    $categories = $doc->createElement('categories');
    $doc->appendChild($categories);
    foreach(array_diff(scandir($path), array('..', '.')) as $dirName) {
        $dirNode = $doc->createElement('category');
        $dirNode->setAttribute('name', $dirName);
        $dirPath = $path.DIRECTORY_SEPARATOR.$dirName;
        
        foreach(array_diff(scandir($dirPath), array('..', '.')) as $imageName) {
            $imageNode = $doc->createElement('image');
            $imageNode->setAttribute('name', $imageName);
            $dirNode->appendChild($imageNode);
        }

        $categories->appendChild($dirNode);
    }

    return $doc->saveXML();
}

//$tm=new dirToXml();
echo dirToXml('./gallery/');
?>

en dat geeft als output:


ActionScript 3 Code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="utf-8" ?>
- <categories>
- <category name="Categorie1">
<image name="cat1Pic1.jpg" />
<image name="cat1swf2.swf" />
</category>
- <category name="Categorie2">
<image name="cat2Pic1.jpg" />
<image name="cat2Pic2.jpg" />
<image name="cat2Pic3.jpg" />
<image name="cat2Pic4.jpg" />
</category>
</categories>

is er iemand die het voor mij zo kan aanpassen dat de output er als volgt uit gaat zien? (ik snap niets van php ):


ActionScript 3 Code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?xml version="1.0" encoding="utf-8" ?>
- <categories>
- <category name="Categorie1">
<image name="cat1Pic1.jpg" width="640" height="480" />
<image name="cat1swf2.swf" width="320" height="320" />

enzovoort, dus de breedtte en hoogte van de graphics erbij?

SUPER bedankt alvast

Willem

code tags toe gevoegd[/modedit]
Gewijzigd op 20/09/2010 19:18:04 door Bas IJzelendoorn
 
PHP hulp

PHP hulp

11/01/2025 03:13:17
 
Veur Heur

Veur Heur

20/09/2010 16:13:32
 
Willem Schulte

Willem Schulte

20/09/2010 16:16:48
Quote Anchor link
Ja deels...
Ik bedoel dat de gevonden bestanden worden geopend (zijn allemaal graphics, het is voor een gallery in Flash) en dat dan in de header gekeken wordt hoe groot die graphics zijn en dat dan de 2 atributen (hoogte en breedtte) worden toegevoegd.
vanuit de files zelf dus.
 

20/09/2010 16:17:58
Quote Anchor link
Shit, wrong topic.
Gewijzigd op 20/09/2010 16:20:02 door
 
Willem Schulte

Willem Schulte

20/09/2010 16:33:45
Quote Anchor link
Karl Karl op 20/09/2010 16:17:58:
Shit, wrong topic.


Hoe bedoel je, Karl? heb ik deze vraag op de verkeerde plek gezet?
 

20/09/2010 16:36:41
Quote Anchor link
Nee, ik had een reactie ergens anders willen plaatsen, maar hij kwam hier.
Is dit een vacature ofzo?
Je zult dus die plaatjes door een of andere image functie moeten halen om de hoogte en breedte uit te kunnen vinden, en dan gebruik maken van die functie die apollo hierboven al vermeld.
 
Willem Schulte

Willem Schulte

20/09/2010 16:38:40
Quote Anchor link
ja, DAT is mijn vraag dus :)
wat is "een of andere image functie"....

en daarna hulp bij het erin zetten natuurijk :/

volgend een manual site moet het zo iets zijn:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$size
= getimagesize($filename);
$fp = fopen($filename, "rb");
if ($size && $fp) {
    header("Content-type: {$size['mime']}");
    fpassthru($fp);
    exit;
}
else {
    // error
}
?>
Gewijzigd op 20/09/2010 16:41:10 door Willem Schulte
 

20/09/2010 16:40:08
Quote Anchor link
Zie gd of imagick voor de functie.
 
Willem Schulte

Willem Schulte

20/09/2010 16:44:03
Quote Anchor link
oh ik heb deze gevonden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

list($width, $height, $type, $attr) = getimagesize("image_name.jpg");

echo "Image width " .$width;
echo "<BR>";
echo "Image height " .$height;
echo "<BR>";
echo "Image type " .$type;
echo "<BR>";
echo "Attribute " .$attr;

?>


Kan ik die inpassen in mijn originele script?
 

20/09/2010 16:44:23
Quote Anchor link
Ja, dat kan je.
 
Willem Schulte

Willem Schulte

20/09/2010 16:45:32
Quote Anchor link
fijn :)

Wil je me ook uitlegen hoe ik dat moet doen?
Ik ben ECHT een beginner (of nog niet eens) en heb werkelijk geen idee waar ik moet beginnen...
 

20/09/2010 16:48:54
Quote Anchor link
De eerste twee variabelen heb je nodig van die functie, die kan je dus met die functie van opolo weer aan de juiste xml tag hangen.
Probeer eens wat :-).
 
Willem Schulte

Willem Schulte

20/09/2010 16:54:02
Quote Anchor link
aant proberen :)

ik krijg de error Only one top level element is allowed in an XML document

bij deze eerste wankele poging:
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
36
<?php

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

function
dirToXml($path)
{

    $path = realpath($path);    

    $doc = new DOMDocument('1.0', 'utf-8');

    $categories = $doc->createElement('categories');
    $doc->appendChild($categories);

    foreach(array_diff(scandir($path), array('..', '.')) as $dirName) {        
        $dirNode = $doc->createElement('category');
        $dirNode->setAttribute('name', $dirName);
        $dirPath = $path.DIRECTORY_SEPARATOR.$dirName;
        
        foreach(array_diff(scandir($dirPath), array('..', '.')) as $imageName) {
            $imageNode = $doc->createElement('image');
            $imageNode->setAttribute('name', $imageName);
        list ($witdh, $height) = getimagesize($imagename);
            $imageNode->setAttribute('width', $width);
            $imageNode->setAttribute('height', $height);
            $dirNode->appendChild($imageNode);
        }


        $categories->appendChild($dirNode);
    }


    return $doc->saveXML();
}


//$tm=new dirToXml();
echo dirToXml('./gallery/');
?>
 
Niek s

niek s

20/09/2010 19:20:39
Quote Anchor link
Maak een root XML element waar je alles in mikt
 
Willem Schulte

Willem Schulte

20/09/2010 22:10:20
Quote Anchor link
ik weet niet wat een root XML element is... maar anders graag :)
 
Niek s

niek s

20/09/2010 23:45:53
Quote Anchor link
1 hoofd element, en daar stop je alles in
 
Willem Schulte

Willem Schulte

21/09/2010 01:28:19
Quote Anchor link
dat heb ik toch? "categories"?
 
Niek s

niek s

21/09/2010 22:48:31
Quote Anchor link
Wat is de output?
 
Willem Schulte

Willem Schulte

22/09/2010 01:26:58
Quote Anchor link
okee.. ik heb het gevonden.. het lag helemaal niet aan de elements!
Ik vind het maar lastig om in dit forum antwoorden te krijgen.

Het moet voor een PHP guru echt makkelijk zijn me in de goede richting te sturen, maar misschien is dat het probleem.
Dit zijn te simpele dingen denk ik.

In ieder geval voor de mensen die dezelfde vraag hebben:
hier is het script:
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
36
<?php

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

function
dirToXml($path)
{

    $path = realpath($path);    

    $doc = new DOMDocument('1.0', 'utf-8');

    $categories = $doc->createElement('categories');
    $doc->appendChild($categories);

    foreach(array_diff(scandir($path), array('..', '.')) as $dirName) {        
        $dirNode = $doc->createElement('category');
        $dirNode->setAttribute('name', $dirName);
        $dirPath = $path.DIRECTORY_SEPARATOR.$dirName;
        
        foreach(array_diff(scandir($dirPath), array('..', '.', 'thumbs')) as $imageName) {
        list ($width, $height) = getimagesize('gallery'.DIRECTORY_SEPARATOR.$dirName.DIRECTORY_SEPARATOR.$imageName);
            $imageNode = $doc->createElement('image');
            $imageNode->setAttribute('name', $imageName);
            $imageNode->setAttribute('width', $width);
            $imageNode->setAttribute('height', $height);
            $dirNode->appendChild($imageNode);
        }


        $categories->appendChild($dirNode);
    }


    return $doc->saveXML();
}


//$tm=new dirToXml();
echo dirToXml('./gallery/');
?>


Groet,
Willem
 
Niek s

niek s

22/09/2010 09:19:51
Quote Anchor link
Willem Schulte op 22/09/2010 01:26:58:
okee.. ik heb het gevonden.. het lag helemaal niet aan de elements!
Ik vind het maar lastig om in dit forum antwoorden te krijgen.

Het moet voor een PHP guru echt makkelijk zijn me in de goede richting te sturen, maar misschien is dat het probleem.
Dit zijn te simpele dingen denk ik.
[...]


Dude.. Sterf ofzo


Remember dat iedereen hier vrijwillig zit he eikel. En daar komt bij dat er weinig mensen zijn die zo maar voor de lol jouw kut script gaan uitpluizen op detail gewoon omdat jij het wil.

Er zijn mensen die betere dingen te doen hebben, en dan is een dergelijk kut antwoord van jou niet gewenst. En daar komt dan nog bij dat je niet eens aangeeft wat er nou eigenlijk fout was aan je script.

Doei.
 
Willem Schulte

Willem Schulte

22/09/2010 09:58:58
Quote Anchor link
Niek,
Bedankt voor je tekenende reactie.

Ik snap je frustratie als je een script van 25 regels al uitpluizen vindt.

De vraag was niet voor niets gesteld in het "beginnen met PHP". Ik wist er gewoon niets van, en nog niet echt, maar heb het wel voor elkaar gekregen EN post het hier terug zodat anderen er ook wat aan hebben (eventueel).

voor jouw informatie (dan leer je ook nog wat):
Als je een subdirectory uitleest en er een file in wilt onderzoeken is het handig als je de subdirectory naam dan voor de file zet.

dus
getimagesize($imagename);
wordt dan
getimagesize('gallery'.DIRECTORY_SEPARATOR.$dirName.DIRECTORY_SEPARATOR.$imageName);
 

Pagina: 1 2 volgende »



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.