Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Tworzenie pliku XML za pomocą PHP, Flash+PHP+XML
undefinedman
post 6.02.2010, 23:41:29
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 30.01.2010

Ostrzeżenie: (0%)
-----


Witam serdecznie.

Chciałbym się dowiedzieć, czy dysponują Państwo gotowym skryptem lub informacjami pomagającymi mi w napisaniu takiego czegoś, co:

- umożliwiłoby mi komunikację Flash z PHP,
- wykreowałoby fizyczny plik.xml za pomocą PHP na podstawie folderu, w którym znajdują się fotografie.

Dziękuję.
Go to the top of the page
+Quote Post
gcdreak
post 7.02.2010, 11:50:55
Post #2





Grupa: Zarejestrowani
Postów: 365
Pomógł: 8
Dołączył: 16.12.2008

Ostrzeżenie: (0%)
-----


1. XML

2. Może chcesz użyć tiltviewer? Jeśli tak to mam gotowy skrypt który wygeneruje Ci plik xml.

Go to the top of the page
+Quote Post
Szymciosek
post 7.02.2010, 14:35:44
Post #3





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

Ostrzeżenie: (0%)
-----


Jako, że współpracuję z autorem chciałem powiedzieć:

1) XML - jak najbardziej, natomiast chcemy mieć wypis plików w PHP, a następnie, aby te pliki zostały wsadzone do pliku XML.

2) TiltViewer - raczej nie interesują nas gotowce, owszem można skorzystać żeby się czegoś nauczyć (nauka przez praktykę).
Skrypt który posiadasz jest to TiltViewer'a czy masz go ogólnie do XML ?

Ps.
Posiadam taki skrypt który tworzy plik XML i wpisuje do niego dane:
Kod
<?php

*/
Chmody:
Folder z plikiem php - 777
Folder files - 755
Plik php - 755
/*

$path_to_image_dir = 'files';

$xml_string = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<images>
</images>
XML;

$xml_generator = new SimpleXMLElement($xml_string);

if ( $handle = opendir( $path_to_image_dir ) ) {
    while (false !== ($file = readdir($handle))) {
        if ( is_file($path_to_image_dir.'/'.$file) ) {
            

                   $image = $xml_generator->addChild('image');

            $image -> addAttribute('label', $file);
            //$image -> addAttribute('size', filesize($file)/1000);
            $image -> addAttribute('path', $path_to_image_dir.'/'.$file);
            
            //list( $width, $height ) = getimagesize($path_to_image_dir.'/'.$file);
            //$image -> addAttribute('width', $width);
                   //$image -> addAttribute('height', $height);
            }
        }
        closedir($handle);
}


$tresc_pliku=$xml_generator->asXML();
$nazwa_pliku.='plik.xml';
$plik = fopen($nazwa_pliku,"w");
fputs($plik,$tresc_pliku);

fclose($plik);
echo '<a href="'.$nazwa_pliku.'">Przejdź do pliku XML</a>';
?>


ale jest przy nim jedno ale, plik XML otworzony w notatniku wygląda w ten sposób:
Kod
<?xml version="1.0" encoding="UTF-8"?>
<images>
<image label="1 (101).jpg" path="files/1 (101).jpg"/><image label="1 (104).jpg" path="files/1 (104).jpg"/><image label="1 (103).jpg" path="files/1 (103).jpg"/><image label="1 (102).jpg" path="files/1 (102).jpg"/><image label="1 (105).jpg" path="files/1 (105).jpg"/><image label="1 (10).jpg" path="files/1 (10).jpg"/><image label="1 (100).jpg" path="files/1 (100).jpg"/></images>


a przydałoby się by wyglądał:
Kod
<?xml version="1.0" encoding="UTF-8"?>
<images>
    <image label="1 (101).jpg" path="files/1 (101).jpg"/>
    <image label="1 (104).jpg" path="files/1 (104).jpg"/>
    <image label="1 (103).jpg" path="files/1 (103).jpg"/>
    <image label="1 (102).jpg" path="files/1 (102).jpg"/>
    <image label="1 (105).jpg" path="files/1 (105).jpg"/>
    <image label="1 (10).jpg" path="files/1 (10).jpg"/>
    <image label="1 (100).jpg" path="files/1 (100).jpg"/>
</images>
Go to the top of the page
+Quote Post
Blame
post 7.02.2010, 15:25:45
Post #4





Grupa: Zarejestrowani
Postów: 678
Pomógł: 124
Dołączył: 26.09.2009

Ostrzeżenie: (0%)
-----


Wystarczy wstawić odpowiednie znaki przy tworzeniu. \t dla tabulatora i \r\n dla entera.


--------------------
Go to the top of the page
+Quote Post
Szymciosek
post 7.02.2010, 20:13:20
Post #5





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

Ostrzeżenie: (0%)
-----


Próbowałem już w różne miejsca wstawiać, ale nie działa, albo wywala kilka razy "n", albo nie działa skrypt.
Go to the top of the page
+Quote Post
Blame
post 7.02.2010, 20:29:57
Post #6





Grupa: Zarejestrowani
Postów: 678
Pomógł: 124
Dołączył: 26.09.2009

Ostrzeżenie: (0%)
-----


No way! Pokaż jak próbowałeś. Przypominam ci tylko, że musisz edytować metodę addAtribute tak aby na początku dodawała \t a na końcu \r\n.


--------------------
Go to the top of the page
+Quote Post
Szymciosek
post 7.02.2010, 21:18:57
Post #7





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

Ostrzeżenie: (0%)
-----


Próbowałem na takie sposoby:
np ten wpis: $image -> addAttribute('label', $file); i dodawałem do niego \n w różne miejsca, ale nic, w różne miejsca skryptu dodawałem, znajomy mi nawet próbował pomóc bo się uczy PHP.
Go to the top of the page
+Quote Post
Blame
post 7.02.2010, 21:37:09
Post #8





Grupa: Zarejestrowani
Postów: 678
Pomógł: 124
Dołączył: 26.09.2009

Ostrzeżenie: (0%)
-----


Ale wyraźnie ci powiedziałem, że masz edytować metodę addAttribute w pliku który zawiera klasę SimpleXMLElement i jest pewnie includowany. Najlepiej to podaj fragment z addAttribute. Dla podpowiedzi powiem ci tylko że pewnie zaczyna się jakoś tak:
  1. public function addAttribute(cośtam, cośtam){


--------------------
Go to the top of the page
+Quote Post
Szymciosek
post 7.02.2010, 22:49:19
Post #9





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

Ostrzeżenie: (0%)
-----


Niby skąd mam to wziąć ?
Wyżej masz cały kod za to odpowiedzialny.

A tak to działa:
http://szymciosek.hostgame.pl/phpp/wypis_p...wypisywanie.php
Go to the top of the page
+Quote Post
gcdreak
post 7.02.2010, 22:52:58
Post #10





Grupa: Zarejestrowani
Postów: 365
Pomógł: 8
Dołączył: 16.12.2008

Ostrzeżenie: (0%)
-----


W takim razie najłatwiej byłoby wykorzystać obiekt DOM i ustawić właściwość formatOutput na true.

Popatrz na mój kod, robiłem go na szybko i nawet nie używałem zmiennych tam gdzie by się to sprzydało ale chodzi o idee.

[PHP] pobierz, plaintext
  1. $di = new DirectoryIterator('thumbs');
  2. $images = array();
  3. while($di->valid()) {
  4.  
  5. if($di->isFile())
  6. $images[] = $di->getFilename();
  7.  
  8. $di->next();
  9. }
  10.  
  11. $dom = new DOMDocument('1.0');
  12. $tailtviewer = $dom->createElement('tailtviewer');
  13. $photos = $dom->createElement('photos');
  14. $dom->preserveWhiteSpace = false;
  15. $dom->formatOutput = true;
  16.  
  17. foreach($images as $k => $v) {
  18. $photo = $dom->createElement('photo');
  19. $photo->setAttribute('imageurl', 'thumbs/' . $v);
  20. $photo->setAttribute('linkurl', 'http://google.com');
  21. $photo->setAttribute('showFlipButton', 'true');
  22. $title = $dom->createElement('title');
  23. $title->appendChild($dom->createTextNode($v));
  24. $desc = $dom->createElement('description');
  25. $desc->appendChild($dom->createTextNode('Opis mojej fotki'));
  26. $photo->appendChild($title);
  27. $photo->appendChild($desc);
  28.  
  29. $photos->appendChild($photo);
  30. }
  31.  
  32. $tailtviewer->appendChild($photos);
  33. $dom->appendChild($tailtviewer);
  34.  
  35. $dom->save('mygal.xml');
  36.  
[PHP] pobierz, plaintext

Ten post edytował gcdreak 7.02.2010, 22:56:03
Go to the top of the page
+Quote Post
Szymciosek
post 8.02.2010, 15:05:45
Post #11





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

Ostrzeżenie: (0%)
-----


A nie da się przerobić tego co podałem ?
Dopiero się uczę i mało rozumiem z tego Twojego.

Ps.
Jaką książkę do nauki PHP mógłbyś polecić ?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 00:55