Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Praser kodu JS
expert
post
Post #1





Grupa: Zarejestrowani
Postów: 211
Pomógł: 4
Dołączył: 29.10.2008

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


Witam,

czy istnieje coś takiego jak praser kodu JavaScript w PHP? Chodzi mi o to, żeby taki praser przetworzył mi kod js i wrócił go w gotowej postaci, tak jak by wyglądał w przeglądarce.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 19)
lukaskolista
post
Post #2





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

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


Szczerze mowiac nie rozumiem. Chcesz zeby parser napisany w PHP sparsowal kod JS tak, aby dzialal w przegladarce? Przeciez kod JS dziala w przegladarce bez jakiegokolwiek parsowania... A moze chodzi Ci o to, ze chcesz wyswietlic kod na stronie tak, zeby sie nie wykonywal tylko zeby dalo sie go ogladac?
Go to the top of the page
+Quote Post
tehaha
post
Post #3





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


pewnie głównie chodzi o jakieś pobieranie treści przez ajax, a próbowałeś takie wynalazki? - http://timwhitlock.info/blog/2008/05/09/fu...parser-for-php/
Go to the top of the page
+Quote Post
expert
post
Post #4





Grupa: Zarejestrowani
Postów: 211
Pomógł: 4
Dołączył: 29.10.2008

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


Głównie mi chodzi o dynamiczne wstawianie obrazków za pomocą js.

Cytat(lukaskolista @ 22.08.2011, 19:43:50 ) *
Szczerze mowiac nie rozumiem. Chcesz zeby parser napisany w PHP sparsowal kod JS tak, aby dzialal w przegladarce? Przeciez kod JS dziala w przegladarce bez jakiegokolwiek parsowania... A moze chodzi Ci o to, ze chcesz wyswietlic kod na stronie tak, zeby sie nie wykonywal tylko zeby dalo sie go ogladac?


Właśnie chodzi mi o to, żeby się nie wykonywał, tylko żeby był już przetworzony przez praser.

Jeśli się nie mylę, to Opera mini miała coś takiego, tylko ona co jakiś czas wysyłała zapytanie do jakiegoś tam swojego serwera i po chwili odświeżała się strona z przetworzonym kodem js.
Go to the top of the page
+Quote Post
uirapuru
post
Post #5





Grupa: Zarejestrowani
Postów: 182
Pomógł: 9
Dołączył: 30.04.2005

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


mowisz o ajax ?

tzn. chcialbys zeby skrypt dzialajacy na przegladarce komunikował się z serwerem, a serwer zwracał np. adresy do obrazków?
Go to the top of the page
+Quote Post
expert
post
Post #6





Grupa: Zarejestrowani
Postów: 211
Pomógł: 4
Dołączył: 29.10.2008

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


Chodzi mi to to, aby z google maps wyciągnąć adery obrazków na własny użytek. Jak wiadomo, obrazki są wstawiane dynamicznie. Jak wlnę nieprzetworzony kod js, to nigdzien ie znajdę tych adresów, bopiero po przetworzeniu widać linki do obrazków.

Moze i u jest ajax, ale przy firebug idać, że większość pracy wykonuje js a nie ajax.
Go to the top of the page
+Quote Post
uirapuru
post
Post #7





Grupa: Zarejestrowani
Postów: 182
Pomógł: 9
Dołączył: 30.04.2005

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


Kurcze, expert, to musisz trochę oględniej pisać i wyraźniej, bo ciężko Cię rozszyfrować.

W takim razie wydaje mi się, że ciężko będzie Ci osiągnąć swój cel. Bo jesli dobrze rozumiem, to chcesz uruchomić z poziomu JS kolejną 'instancję' JS, odpalić i uruchomić skrypty Google Maps, a potem wyciągnąć z tego to, co Cię interesuje. Szukaj innej drogi - wydaje mi się, że enkapsulacja skryptów Google nie pozwoli Ci tak łatwo wyłuskać tego o co Ci chodzi. A może właśnie to jest droga? Odpalić spokojnie Google Maps, a potem odpytywać przez API działające już i załadowane obiekty mapy itd?

Ps. Co to są 'adery obrazków' ?
Go to the top of the page
+Quote Post
expert
post
Post #8





Grupa: Zarejestrowani
Postów: 211
Pomógł: 4
Dołączył: 29.10.2008

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


Adresy obrazków.

Mi chodzi o coś takiego: otwieram stroję google maps i po uruchomieniu zaglądam w źródło strony, które jest już po przetworzeniu js, czyli gotowa mapa że tak powiem.

To przetwarzanie js chce zrobić z poziomu php. Bo mógłbym pobrać źródło strony za pomocą curl, wyświetlić w przeglądarce, aby przeglądarka przetrawiła js i potem takiego gotowca przesłać z powrotem do serwera i za pomocą php go przetworzyć i wyciągnąć co mi potrzeba.

Chyba nie ogarniam co to jest API. wiem, że jest coś takiego, ale jak to osę je, już nie.
Go to the top of the page
+Quote Post
uirapuru
post
Post #9





Grupa: Zarejestrowani
Postów: 182
Pomógł: 9
Dołączył: 30.04.2005

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


hmm

to czysta teoria, ale mógłbyś odczytać fragment kodu który Cię interesuje. Przyjmując, że chodzi Ci o kod, który znajduje się np. w tagach <div id='kod'></div> (przykład tylko), to z pomocą jquery mógłbyś cały ten wygenerowany html zczytać do zmiennej:

Kod
var moj_kod_html = $('div#kod').html();


a nastepnie wysłać go (w zmiennej) z pomocą ajaxa do skryptu php:

Kod
$.post('skrypt.php',{kod: moj_kod_html},function(response) {}, 'json');


Ja bym tak kombinował

w samym skrypt.php robisz już wtedy tylko

Kod
<?php

$post = json_decode($_POST);

$moj_kod = $post->kod;

?>

A co potem z nim robisz - Twoja sprawa (pewnie jakieś pregmatche)

Ten post edytował uirapuru 22.08.2011, 21:42:39
Go to the top of the page
+Quote Post
expert
post
Post #10





Grupa: Zarejestrowani
Postów: 211
Pomógł: 4
Dołączył: 29.10.2008

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


Tylko ja bym chciał, żeby wszystko odbywało się po stronie serwera. ale chyba nie da się inaczej...
Go to the top of the page
+Quote Post
tolomei
post
Post #11





Grupa: Zarejestrowani
Postów: 450
Pomógł: 135
Dołączył: 18.11.2010
Skąd: Wschowa

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


Siemka.
Oczywiście istnieją parsery JavaScriptu pod PHP tyle, że nie są zbyt popularne i dobrze udokumentowane(jak dla mnie).
Polecam dwa linki:
- J4P5 - nie zbyt potężny, ale jest - link,
- V8Js - jest to cały silnik javascriptowy od wujka Google, z tym, że wsparcie dla PHP jest znikome w społeczności więc trzeba sobie radzić troszkę samemu - link

Z chęcią bym bardziej pomógł w zagadnieniu, ale sam dopiero startuje w tym temacie.
Mam nadzieję, że co nieco naświetliłem.

Pozdro


--------------------
“ Computers are good at following instructions, but not at reading your mind. ”
- Donald Knuth
Go to the top of the page
+Quote Post
uirapuru
post
Post #12





Grupa: Zarejestrowani
Postów: 182
Pomógł: 9
Dołączył: 30.04.2005

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


tylko wątpie, czy taki engine odpali cały dokument - przeciez trzeba zbudowac, zinterpretować model DOM dokumentu, dopiero na nim przeciez Google Maps wykonuje operacje i w tej części mógłby się najwyżej przydać parser JS... moim zdaniem nie ma obecnie dostępnego rozwiązania zdolnego wygodnie to wykonać, ale nie twierdzę, że się nie da smile.gif
Go to the top of the page
+Quote Post
tolomei
post
Post #13





Grupa: Zarejestrowani
Postów: 450
Pomógł: 135
Dołączył: 18.11.2010
Skąd: Wschowa

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


Jeśli chodzi o kwestię załadowania dokumentu to JavaScript jest w stanie spokojnie pobrać sobie dokument i załadować drzewo DOM również z zewnętrznego źródła(np. jQuery load()).

Jeśli chodzi o kwestię wykonania całego zadania to trzeba byłoby się mocno nagimnastykować.
Jak wcześniej wspomniałem nie znam dobrze rozszerzenia v8js, ale zważywszy na fakt, że jest to wsparcie dla silnika javascriptu(nie jakiegoś byle interpretera), po drugie, że wyszło to spod rąk Googla, który większość swoich rozwiązań twardo bazuje na javascriptowym API(są więc świadomi jakim zadaniom silnik powinien sprostać), śmiem twierdzić, że podołałoby zadaniu.
Aczkolwiek jest to tylko moje "wydajemisię", więc proszę patrzeć na moje słowa z dystansem.

Ten post edytował tolomei 23.08.2011, 10:22:41


--------------------
“ Computers are good at following instructions, but not at reading your mind. ”
- Donald Knuth
Go to the top of the page
+Quote Post
expert
post
Post #14





Grupa: Zarejestrowani
Postów: 211
Pomógł: 4
Dołączył: 29.10.2008

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


To jeszcze mam takie pytanko, czy są jakieś programy, strony, które pokazują, jak po kolei działa kod js? Co do czego jest podstawiane, jakie są wartości zmiennych itd.
Go to the top of the page
+Quote Post
tolomei
post
Post #15





Grupa: Zarejestrowani
Postów: 450
Pomógł: 135
Dołączył: 18.11.2010
Skąd: Wschowa

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


Ja osobiście, gdy chcę podejrzeć wartość zmiennej w środku skryptu - wyświetlam ją w konsoli udostępnianej w dodatku Firebug dla Firefoxa lub w przeglądarce Chrome.

Aby wyświetlić tam zmienną używam polecenia console.log():

Kod
console.log(zmienna);
console.log(tablica[1]);
console.log(obiekt.metoda());
console.log("Id diva to: "+$("div").attr("id"));


--------------------
“ Computers are good at following instructions, but not at reading your mind. ”
- Donald Knuth
Go to the top of the page
+Quote Post
expert
post
Post #16





Grupa: Zarejestrowani
Postów: 211
Pomógł: 4
Dołączył: 29.10.2008

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


a gdzie to wklepujesz?

Bo próbuje z kodu js wyciagnąć, znaleść informacje skąd pobiera on dane o współrzędnych i o adresach obrazków..
Go to the top of the page
+Quote Post
tolomei
post
Post #17





Grupa: Zarejestrowani
Postów: 450
Pomógł: 135
Dołączył: 18.11.2010
Skąd: Wschowa

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


Do kodu JS:

  1. <script type="text/javascript">
  2. var rand = 0;
  3. for(i = 0; i<10; i++) {
  4. rand = Math.floor(Math.random()*11); // generuje losową liczbę od 1 do 20
  5. console.log(i+". Liczba od 0 do 10: "+rand);
  6. }


Wynik:
Kod
0. Liczba od 0 do 10: 2
1. Liczba od 0 do 10: 10
2. Liczba od 0 do 10: 9
3. Liczba od 0 do 10: 4
4. Liczba od 0 do 10: 1
5. Liczba od 0 do 10: 2
6. Liczba od 0 do 10: 6
7. Liczba od 0 do 10: 9
8. Liczba od 0 do 10: 3
9. Liczba od 0 do 10: 3


EDIT:
Hmmm, Ty chcesz tego użyć w swoim projekcie powyżej(troszke wyleciało mi z głowy)... To nie zadziała w takim razie...
To co Ci podałem to funkcja przeglądarki. Twój kod JS będzie parsowany przez PHP-owe rozszerzenie.

Może wstrzyknięcie własnego kodu JS w kod od Googla tuż przed parsowaniem ?
Ciężko powiedzieć... Może ktoś inny będzie miał pomysł...

Ten post edytował tolomei 25.08.2011, 21:24:28


--------------------
“ Computers are good at following instructions, but not at reading your mind. ”
- Donald Knuth
Go to the top of the page
+Quote Post
expert
post
Post #18





Grupa: Zarejestrowani
Postów: 211
Pomógł: 4
Dołączył: 29.10.2008

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


nie bardzo wiem jak mogę użyć tego prasera... gdzie co wstawić... żeby działało.
Go to the top of the page
+Quote Post
uirapuru
post
Post #19





Grupa: Zarejestrowani
Postów: 182
Pomógł: 9
Dołączył: 30.04.2005

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


expert: na wstępie napisze tylko, żebyś przykładał uwagę do tego jak piszesz, po prostu łatwiej się czyta no i ludzie od razu inaczej będą Cię postrzegać. Chodzi mi między innymi o 'parser' (a nie praser, jak piszesz przez cały wątek - może się kojarzyć z prasowaniem wink.gif).

co do sprawdzania działania kodu, każdy język ma podstawowe narzędzie, z którego - mam wrażenie - początkujący nigdy nie korzystają (a mi np. php'owy bardzo ułatwia pracę) - DEBUGGER. Firebug taki udostępnia smile.gif Nie wiem jak to się ma do Twojego rozwiązania (którego wciąż niestety nie jestem w stanie ogarnąć), ale warto poszukać debuggera do js.
Go to the top of the page
+Quote Post
expert
post
Post #20





Grupa: Zarejestrowani
Postów: 211
Pomógł: 4
Dołączył: 29.10.2008

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


Udało mi się znaleźć to, czego szukałem. GM przy generowaniu kodu strony (na serwerze), generuje też współrzędne z, y, z, które wstawia potem do adresów obrazków. Te współrzędne są w części js, tylko trzeba je sobie wyłuskać. A tym spokojnie może się zająć PHP.

Ja właściwie znalazłem to czego szukałem. No może po za jednym. Mianowicie zastanawiam się w jaki sposób wyciągnąć informacje o 'położeniu' ulic. np. ulica A na współrzędne takie: [10,20]; [10,40]; [20,40]; itd. API ma coś takiego? Chyba nie.
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 Aktualny czas: 21.08.2025 - 18:29