Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][XML] jak zrobić
Andrzej_INF
post 24.06.2008, 11:34:07
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 4.01.2008

Ostrzeżenie: (10%)
X----


Jak zrobic aby podczs tworzenia dokumentu XML przez skrypt PHP wstawiane były odpowiednie dane do xml-a, ten skrypt znajdue się w plku tworzącym dokument w formacie pdf!!
  1. <?php
  2. //tworzymy xml
  3. $zm = '<NOTARIAT>
  4. <WYGENEROWANO_DLA_UZYTKOWNIKA> jak funkca wstawi mi użytkownika </WYGENEROWANO_DLA_UZYTKOWNIKA>
  5. <UZYTA_FUNKCJA_SKROTU> te dane są bazie danych </UZYTA_FUNKCJA_SKROTU>
  6. <ZNACZNIK_CZASOWY> jest jakaś funkcja która sie odwołado bazy< /ZNACZNIK_CZASOWY>
  7. <SYGNATURA>?</SYGNATURA>
  8. <KLUCZ_PUBLICZNY>?</KLUCZ_PUBLICZNY>
  9. </NOTARIAT>';
  10.  
  11. file_put_contents('notariat.xml', $zm);
  12.  
  13. ?>


Ten post edytował Andrzej_INF 24.06.2008, 11:59:38
Go to the top of the page
+Quote Post
scanner
post 24.06.2008, 11:36:56
Post #2





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Najprościej by było te dane pobrać i wstawić.

Nie licz na inna odpowiedź, skoro nawet nie pokazałeś (a wręcz nawet nie opisałeś), jak chcesz tworzyć tego XMLa


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
simperium
post 24.06.2008, 13:07:26
Post #3





Grupa: Zarejestrowani
Postów: 157
Pomógł: 5
Dołączył: 3.03.2004

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


ja robię w ten sposób:
najpierw tworzę w html formularz z polami np. o nazwach pole1, pole2, pole3.
Potem po kliknięciu wyślij wysyłam do pliku php, który zapisuje mi do pliku xml, czyli mniej więcej tak:

  1. <?php
  2. $file1=fopen("plik.xml", "w");
  3. flock($file1, 2);
  4. fwrite($file1, "
  5. UZYTA_FUNKCJA_SKROTU> $pole1 </UZYTA_FUNKCJA_SKROTU>
  6. <ZNACZNIK_CZASOWY> $pole2< /ZNACZNIK_CZASOWY>
  7. <SYGNATURA> $pole3 </SYGNATURA>
  8. itd...
  9. ");
  10. flock($file1, 3);
  11. fclose($file1);
  12. ?>


Pomogło?
smile.gif


--------------------
Kliknij na "POMÓGŁ", by poprawić mi samopoczucie :D
Go to the top of the page
+Quote Post
Andrzej_INF
post 24.06.2008, 13:13:02
Post #4





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 4.01.2008

Ostrzeżenie: (10%)
X----


nie moze być formulaż dane muszą być wczytane

Ten post edytował Andrzej_INF 24.06.2008, 13:16:46
Go to the top of the page
+Quote Post
simperium
post 24.06.2008, 13:18:21
Post #5





Grupa: Zarejestrowani
Postów: 157
Pomógł: 5
Dołączył: 3.03.2004

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


1. zrób sobie zwykły formularz w htmlu
2. przyjmuję, że wszystkie dane mają być wpisywane ręcznie, więc nazwij odpowiednie pola formuarza, np. w miejsce, gdzie jest tekst jak funkca wstawi mi użytkownika zrób pole o nazwie powiedzmy pole1
czyli: <input name=pole1>

teraz stwórz plik php do którego zostaną przesłane dane z formularza
i napisz w nim dla przykładu:

  1. <?php
  2. $file1=fopen("plik.xml", "w");
  3. flock($file1, 2);  
  4. fwrite($file1, "UZYTA_FUNKCJA_SKROTU> $pole1 </UZYTA_FUNKCJA_SKROTU>");
  5. flock($file1, 3);
  6. fclose($file1);
  7. ?>


podejrzyj plik xmlowy, czy znajduje się w nim tekst wpisany w polu <input name=pole1>

Ten post edytował simperium 24.06.2008, 13:19:15


--------------------
Kliknij na "POMÓGŁ", by poprawić mi samopoczucie :D
Go to the top of the page
+Quote Post
help_mee
post 24.06.2008, 13:19:06
Post #6





Grupa: Zarejestrowani
Postów: 244
Pomógł: 21
Dołączył: 10.02.2008
Skąd: Załęcze Wielkie

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


fopen
fputs
fclose
Tak najłatwiej...


--------------------
Amentis dolet!
Deus et patria!
» Pomogłem? Kliknij Pomógł.
Go to the top of the page
+Quote Post
simperium
post 24.06.2008, 13:19:51
Post #7





Grupa: Zarejestrowani
Postów: 157
Pomógł: 5
Dołączył: 3.03.2004

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


ale wczytane skąd? plik tekstowy?


--------------------
Kliknij na "POMÓGŁ", by poprawić mi samopoczucie :D
Go to the top of the page
+Quote Post
Andrzej_INF
post 24.06.2008, 13:23:46
Post #8





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 4.01.2008

Ostrzeżenie: (10%)
X----


Mam plik on generuje mi dokument.pdf ale chce dopisać tak zeby automatycznie z pdf-em wygenerował mi się xml
Aplkacja która to robi mam baze danych w której te dane są zapisywane

  1. <?php $allow = array (2);include ("protect.php"); 
  2. require('config.php');
  3. //include 'user_stats.php';
  4. define('FPDF_FONTPATH','font/'); //definiuje katalog z czcionkami komponentu
  5. require('fpdf.php'); //odniesienie do skryptu komponentu
  6. $pdf=new FPDF();
  7. $pdf->Open();  //otwiera nowy dokument
  8. $pdf->AddPage(); //dodaje nową stronę do dokumentu
  9. $pdf->SetFont('Times','', 36); //ustawia wbudowaną czcionkę Times, rozmiar 12 
  10. $pdf->Text(30,30, 'CERTYFIKAT'); //tekst bez zawijania na pozycji x=10, y=10
  11. $pdf->SetFont('Times','', 16); //ustawia wbudowaną czcionkę Times, rozmiar 12 
  12. $pdf->Text(30,50, 'WYGENEROWANO DLA UZYTKOWNIKA: '); //tekst bez zawijania na pozycji x=10, 
  13.  
  14. y=10
  15. $pdf->Text(150,50, $_SESSION[username]); //tekst bez zawijania na pozycji x=10, y=10
  16. $pdf->Text(30,70, 'ID CERTYFIKATU: '); //tekst bez zawijania na pozycji x=10, y=10 
  17. $pdf->Text(80,70, $_GET[ID_DOK]); //tekst bez zawijania na pozycji x=10, y=10 
  18. $pdf->Text(30,90, 'UZYTA FUNKCJA SKROTU: '); //tekst bez zawijania na pozycji x=10, y=10 
  19. //$pdf->Multicell(0,4, $_SESSION[username] ,0, 'J',0);  //tekst wieloliniowy o szerokości do 
  20.  
  21. prawej linii, wysokości linii 4, bez ramki, wyjustowany, bez tła
  22. $pdf->Text(110,90, $_GET[ID_SK]); //tekst bez zawijania na pozycji x=10, y=10
  23. $pdf->Text(30,110, 'PODPISYWANY DOKUMENT:'); //tekst bez zawijania na pozycji x=10, y=10
  24. //$pdf->Text(110,110, $_GET[Z_document]); //tekst bez zawijania na pozycji x=10, y=10//GetX()
  25. //$pdf->GetY()+1;
  26. $pdf->SetXY(30,115);
  27. //SetX(float x)
  28. //SetY(float y)
  29. //Ln(float h)
  30. $pdf->Multicell(0,4, $_GET[ID_DK] ,0, 'J',0);  //tekst wieloliniowy o szerokości do prawej 
  31.  
  32. linii, wysokości linii 4, bez ramki, wyjustowany, bez tła
  33.  
  34. //$pdf->Multicell(0,4, $_SESSION[username] ,0, 'J',0);  //tekst wieloliniowy o szerokości do 
  35.  
  36. prawej linii, wysokości linii 4, bez ramki, wyjustowany, bez tła
  37. /* Dopisuje niebieski podkreślony odnośnik */
  38. /*$pdf->Write(10,'Zapraszam na ');
  39. $pdf->SetTextColor(0,0,255); //zmienia kolor czcionki
  40. $pdf->SetFont('','U'); //zmienia styl czcionki na podkreślenie
  41. $pdf->Write(10,'4programmers.net','http://4programmers.net');*/
  42. /*$iks = $pdf->GetX;
  43. $igrek = $pdf->GetY;
  44. $pdf->Line($iks, $igrek+2,200, $igrek+2); //wstawia linię 2mm pod tekstem, o długości 
  45.  
  46. 200mm.*/
  47. /* narysuje granatowy prostokąt z zielonym wypełnieniem */
  48. //$pdf->SetDrawColor(170,255,64);
  49. //$pdf->SetFillColor(54,255,102);
  50. //$pdf->Rect($iks+20, $igrek+20,200,100);
  51. $ident = $pdf->AddLink();
  52. $pdf->SetLink($ident,0,2); //tworzy (ale nie wstawia do dokumentu!) link do strony 2
  53. //$tekst = 'Tu znajduje się link do następnej strony!';
  54. //$dlugosc_tekstu = $pdf->GetStringWidth($tekst); //oblicza długość tekstu
  55. //$pdf->Text($pdf->GetX(),$pdf->GetY(),$tekst); //wstawia tekst do dokumentu
  56. //$pdf->Link($pdf->GetX(),$pdf->GetY(),$dlugosc_tekstu,20, $ident);  //wstawia pod tekstem 
  57.  
  58. link do dokumentu
  59. //$pdf->AddPage(); //dodaje nową stronę.
  60.  
  61. $pdf->Text(30,130, 'ZNACZNIK CZASOWY: '); //tekst bez zawijania na pozycji x=10, y=10 
  62. $pdf->Text(30,135, $_GET[ID_TS]); //tekst bez zawijania na pozycji x=10, y=10 
  63. //$pdf->SetFont('Times','', 8); //ustawia wbudowaną czcionkę Times, rozmiar 12 
  64. //$pdf->SetTextColor(0,0,0);
  65. //$pdf->Text($pdf->GetX(),$pdf->GetY()+1, 'i to by było na tyle');
  66. $pdf->Text(30,180, 'KLUCZ PUBLICZNY: '); //tekst bez zawijania na pozycji x=10, y=10 
  67. $pdf->SetXY(30,185);
  68. $pdf->Multicell(0,4, $_GET[ID_PK] ,0, 'J',0);  //tekst wieloliniowy o szerokości do prawej 
  69.  
  70. linii, wysokości linii 4, bez ramki, wyjustowany, bez tła
  71. $pdf->Text(30,150, 'SYGNATURA: '); //tekst bez zawijania na pozycji x=10, y=10 
  72. $pdf->SetXY(30,155);
  73. $pdf->Multicell(0,4, $_GET[ID_SY] ,0, 'J',0);  //tekst wieloliniowy o szerokości do prawej 
  74.  
  75. linii, wysokości linii 4, bez ramki, wyjustowany, bez tła ,0, 'J',0);  //tekst wieloliniowy o 
  76.  
  77. szerokości do prawej linii, wysokości linii 4, bez ramki, wyjustowany, bez tła
  78. //$pdf->Image('C:xampphtdocsxamppBSRobraz.png', $pdf->GetX()+10, $pdf->GetY()+10, 135, 
  79.  
  80. 24, 'PNG');
  81. $pdf->SetCompression(true); //włącza kompresję dokumentu
  82. $pdf->Output('certyfikat.pdf','D'); //zamyka i generuje dokument
  83.  
  84. //tworzymy xml
  85. $zm = '<NOTARIAT>
  86. <WYGENEROWANO_DLA_UZYTKOWNIKA>?</WYGENEROWANO_DLA_UZYTKOWNIKA>
  87. <UZYTA_FUNKCJA_SKROTU>?</UZYTA_FUNKCJA_SKROTU>
  88. <ZNACZNIK_CZASOWY>?</ZNACZNIK_CZASOWY>
  89. <SYGNATURA>?</SYGNATURA>
  90. <KLUCZ_PUBLICZNY>?</KLUCZ_PUBLICZNY>
  91. </NOTARIAT>';
  92.  
  93. file_put_contents('notariat.xml', $zm);
  94.  
  95.  
  96.  
  97. print "<meta http-equiv='refresh' content='1; url=index2.php'> ";
  98.  
  99. ?>
  100. ?>
Go to the top of the page
+Quote Post
simperium
post 24.06.2008, 13:26:46
Post #9





Grupa: Zarejestrowani
Postów: 157
Pomógł: 5
Dołączył: 3.03.2004

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


jeśli id certyfikatu to: $_GET[ID_DOK]

to wtedy tak spróbuj:
  1. <?php
  2. $zm = <NOTARIAT><WYGENEROWANO_DLA_UZYTKOWNIKA>$_GET[ID_DOK]</WYGENEROWANO_DLA_UZYTKOWNIKA>
  3. ?>


a potem resztę analogicznie. Zmienną, którą użyłeś przy generowaniu do pdfa po prostu wlewasz w odpowiedni znak zapytania stworzony przez Ciebie smile.gif

Ten post edytował simperium 24.06.2008, 13:30:29


--------------------
Kliknij na "POMÓGŁ", by poprawić mi samopoczucie :D
Go to the top of the page
+Quote Post
Andrzej_INF
post 24.06.2008, 13:34:30
Post #10





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 4.01.2008

Ostrzeżenie: (10%)
X----


wyswietla mi $_GET[ID_DOK] zamiast danych do kturych się to odnosi
Go to the top of the page
+Quote Post
simperium
post 24.06.2008, 13:42:37
Post #11





Grupa: Zarejestrowani
Postów: 157
Pomógł: 5
Dołączył: 3.03.2004

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


to może spróbuj tak (będzie to trochę na około, ale może się uda).
poniżej pola gdzie pierwszy raz pojawia się $_GET[ID_DOK] wpisać:
$tekscik="$_GET[ID_DOK]";

a na dole

  1. <?php
  2. $zm = <NOTARIAT><WYGENEROWANO_DLA_UZYTKOWNIKA>$tekscik
  3. <WYGENEROWANO_DLA_UZYTKOWNIKA>
  4. ?>


Co teraz jest? smile.gif


--------------------
Kliknij na "POMÓGŁ", by poprawić mi samopoczucie :D
Go to the top of the page
+Quote Post
scanner
post 24.06.2008, 13:54:31
Post #12





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Polecam naukę PHP zamiast udzielania porad.

Cytat(simperium @ 24.06.2008, 14:26:46 ) *
jeśli id certyfikatu to: $_GET[ID_DOK]

to wtedy tak spróbuj:
  1. <?php
  2. $zm = <NOTARIAT><WYGENEROWANO_DLA_UZYTKOWNIKA>$_GET[ID_DOK]</WYGENEROWANO_DLA_UZYTKOWNIKA>
  3. ?>


a potem resztę analogicznie. Zmienną, którą użyłeś przy generowaniu do pdfa po prostu wlewasz w odpowiedni znak zapytania stworzony przez Ciebie smile.gif

  1. <?php
  2. $zm = '<NOTARIAT><WYGENEROWANO_DLA_UZYTKOWNIKA>'.$_GET['ID_DOK'].'</WYGENEROWANO_DLA_UZYTKOWNIKA>';
  3. ?>


Apostrofy się kłaniają przede wszystkim i to tyczy się całego kodu. Zapamiętajcie raz na zawsze, że indeksy tekstowe w tablicach zawsze ujmujemy w ' lub ". ID_DOK jakoś nie jest z tego co widzę zdefiniowana stałą.


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
simperium
post 24.06.2008, 14:17:00
Post #13





Grupa: Zarejestrowani
Postów: 157
Pomógł: 5
Dołączył: 3.03.2004

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


"Polecam naukę PHP zamiast udzielania porad."
Lepsza chyba porada naokoło niż żadna - nieprawdaż? smile.gif
Zresztą, jasno dałem do zrozumienia, że nie jest to idealne rozwiązanie.
smile.gif
Pozdrawiam, aha, by nie było: to ciągle uczę się tego PHP ;-]


--------------------
Kliknij na "POMÓGŁ", by poprawić mi samopoczucie :D
Go to the top of the page
+Quote Post
Andrzej_INF
post 24.06.2008, 19:37:45
Post #14





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 4.01.2008

Ostrzeżenie: (10%)
X----


DZIEKI ZA PORADY POMOGLIśCIE exclamation.gif!!

Ten post edytował batman 24.06.2008, 19:50:20
Powód edycji: Można się cieszyć z powodu rozwiązania problemu, ale bez przesady. Zmniejszyłem czcionkę.
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: 27.04.2024 - 19:58