Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] zapisywanie wyniku echo
narf
post 23.08.2007, 17:33:01
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 23.08.2007

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


Witam.

Mam tablice jednowymiarowa, ktorej elementami sa wywolania funkcji javascript "<script lan..." (m.in. obliczenia odleglosci z google maps).
Wywolujac elementy tablicy poprzez echo dostaje to, co chce czyli wyniki obliczen js.
Gdy chce zapisac tablice do pliku txt, to oczywiscie zapisuje mi formulki wywolan funkcji zamiast ich wynikow.
Jak zapisac do pliku wynik? czyli to, co otrzymuje po zastosowaniu echo.

Z gory dziekuje!
Go to the top of the page
+Quote Post
drPayton
post 24.08.2007, 10:35:29
Post #2





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


zamiast
  1. <?php
  2. echo $zmienna;
  3. ?>

zrób
  1. <?php
  2. file_put_contents('plik.txt',$zmienna);
  3. ?>

A jeśli nie o to chodziło/nie działa to napisz coś więcej (fragment kodu)...

Ten post edytował drPayton 24.08.2007, 10:35:39
Go to the top of the page
+Quote Post
Grzyw
post 24.08.2007, 10:45:37
Post #3





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

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


Jeżeli dobrze zrozumiałem, to co wyrzucasz na ekran przez echo ma nie tylko wartość odległości, ale pewnie inne znaczniki. Jeżeli tak jest, napisz, co dokładnie zawiera ta zmienna. Możesz to sobie przyciąć funkcjami obsługi łańcuchów znaków.


--------------------
Idąc po czyichś śladach, nie zajdziesz ani kroku dalej...
Go to the top of the page
+Quote Post
narf
post 24.08.2007, 20:23:10
Post #4





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 23.08.2007

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


nie zrouzmieliscie mnie

tworze sobie tablice na podstawie pliku txt
Kod
   $x=file("x/x.txt");
      for($i=0; $i<count($x); $i++) {
         $x_ar[]="<script language=\"javascript\">dystans('".substr()_i_cala_reszta."');</script>";
      }


i jak ja echuje
Kod
   for($i=0; $i<count($x_ar); $i++) {
         echo $x_ar[$i]."
";
      }


to dostaje np.
Kod
666
    1337
    404

i jest super, bo js sobie wszystko liczy.

natomiast jak zapisuje tablice do pliku, to (co logiczne) znajduje w nim
Kod
<script language="javascript">dystans('".substr()_i_cala_reszta1."');</script>
    <script language="javascript">dystans('".substr()_i_cala_reszta2."');</script>
    <script language="javascript">dystans('".substr()_i_cala_reszta3."');</script>

a chcialbym zapisac to, co wyswietla przegladarka - policzony php i js.

jak to zrobic?
czy moze raczej mam napisac sobie sam w php odpowiednik google_map'owskiej funkcji js distanceFrom() i olac js w tym wypadku? ;p


p.s. w poscie porobilo mi dotakowe wciecia w code i zjadlo 1 br'a. ;p

Ten post edytował narf 24.08.2007, 20:26:17
Go to the top of the page
+Quote Post
drPayton
post 25.08.2007, 16:49:13
Post #5





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


Ambitny problem, sporo godzin poświęciłem na rozwiązanie ale udało się.
Tu dałem przykład, na którego podstawie zbudujesz własne skrypty.
Możliwe, że dałoby się je uprościć, ale to już zadanie dla Ciebie, czy innych forumowiczów.

Żeby było łatwiej, oparłem skrypt na darmowym advAJAX
Potrzebne są 4 pliki:
advajax.js (skrypt biblioteki advAJAX), w moim przykładzie, oczywiście można zrobić po swojemu
test.php
fakeJS.php
saveResult.php

Listingi:
test.php

  1. <?php
  2. echo '<script type="text/javascript" src="advajax.js"></script>';
  3. echo '<script type="text/javascript" src="fakeJS.php"></script>';
  4. ?>


fakeJS.php

  1. <?
  2. Header("content-type: application/x-javascript");
  3.  
  4. echo '
  5. function liczCos(liczba)
  6. {
  7. return "wynik to: " + liczba*2 + "\n";
  8. }
  9. ';
  10. echo '
  11. function saveResult(testPseudoArray)
  12. {
  13. advAJAX.post({
  14. url: "saveResult.php",
  15. parameters: { testPseudoArray: testPseudoArray},
  16. onComplete : function(obj) {
  17. alert("Plik zapisany!");
  18. }
  19. });
  20. }
  21. ';
  22.  
  23. echo 'var test = "";';
  24.  
  25. for ($i=0; $i<10; $i++) {
  26. echo 'test += liczCos('.$i.');';
  27. }
  28.  
  29. echo 'saveResult(test)';
  30.  
  31. ?>


saveResult.php

  1. <?php
  2. file_put_contents("plik.txt", $_POST['testPseudoArray']);
  3. ?>


Odpalamy poprzez test.php

Cała "magia" polega na mało znanym: Header("content-type: application/x-javascript"); , który symuluje JS w skrypcie de facto PHP.
Można stosować tam swobodnie PHP, a JS wstawiamy przez echo, ale bez <script>, bez komentarzy CDATA etc

Korzystałem z Tutoriala na www.javascriptkit.com

Ten post edytował drPayton 25.08.2007, 16:54:50
Go to the top of the page
+Quote Post
narf
post 25.08.2007, 18:02:03
Post #6





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 23.08.2007

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


fantastycznie!

BARDZO dziekuje, drPayton i serdecznie pozdrawiam!
Go to the top of the page
+Quote Post
drPayton
post 27.08.2007, 12:03:30
Post #7





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


Cieszę się, że mogłem pomóc i również pozdrawiam! smile.gif
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: 21.06.2025 - 23:00