Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Parsowanie tablicy JS, JS Array => PHP Array
markonix
post
Post #1





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Transferuj.pl umożliwia pobranie wszystkich kanałów za pomocą pliku JS o strukturze:

  1. /**
  2.  * JavaScript channel selection
  3.  *
  4.  * @author Transferuj.pl
  5.  * @version 1.0
  6.  *
  7. */
  8. var tr_channels = Array();
  9. tr_channels[0] = ['18','mBank','1','https://secure.transferuj.pl/images/kanaly/e_mbank.png','00:00-24:00'];
  10. tr_channels[1] = ['13','ING Bank Śląski SA','1','https://secure.transferuj.pl/images/kanaly/ing.png','00:00-24:00'];
  11. tr_channels[2] = ['14','Inteligo','1','https://secure.transferuj.pl/images/kanaly/inteligo.png','00:00-24:00'];
  12. [...]


Dzięki temu pliku można sobie ładnie zbudować listę kanałów na swojej stronie jednakże chciałbym uniknąć budowania tego w oparciu o JS.
Zastanawiam się jakie są możliwości przekształcenia tablicy JS w PHP.

Pobranie zawartości pliku - file_get_contents.
Ale co dalej? Ma ktoś jakieś ciekawe rozwiązanie czy zostają tylko wyrażenia regularne albo linia za linią i wyłuskiwanie tych danych?

Ten post edytował markonix 7.09.2012, 11:20:41
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tehaha
post
Post #2





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

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


Cytat
Troszkę sie zirytowałem bo jednak mam tam jakiś staż na forum i staram się pisać jasno no a dostaje rozwiązania zupełnie niezgodne z założeniami.

Cytat
Cel jest prosty - chce zrobić listę form płatności na stronie i tyle.
Plik z tablicą służy temu celowi właśnie i jest gotowa implementacja ale w JS.

No widzisz, masz staż, ale jednak założyłeś, że to co chesz zrobić jest oczywiste...rozumiem, że chodzi o ten plik: https://secure.transferuj.pl/channels-10100.js
Generalnie jest on tak prosty, że wystarczynawet kilka pętli z explode()
Go to the top of the page
+Quote Post
markonix
post
Post #3





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Cytat(tehaha @ 7.09.2012, 13:36:15 ) *
No widzisz, masz staż, ale jednak założyłeś, że to co chesz zrobić jest oczywiste...

Nie rozumiem co masz na myśli.
To co chce zrobić to tablicę PHP, a jaki jest tego cel to przyznaj, że nie ma to znaczenia.
Bo czy będę chciał to dodać do bazy czy wyświetlić to działanie na pliku nie zmienia się.

Tak, to ten plik.
Jest prosty, ale chce to zrobić w miarę elastycznie bo ma to służyć automatycznej aktualizacji.

Myślę mniejwięcej nad takim algorytmem:

1. Rozpoczęcie parsowania od pierwszego elementu tablicy (pominięcie komentarza i zainicjowania tablicy).
2. Wyrzucenie początku "tr_channels[0] = [" . Tutaj wyróżnienie regularne albo obcięcie stringa.
3. Wyrzucenie końcówki ];
4. Explode na przecinku. Wyrzucenie pojedynyczych cudzysłowiów.
Go to the top of the page
+Quote Post
darko
post
Post #4





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Cytat(markonix @ 7.09.2012, 13:42:55 ) *
Myślę mniejwięcej nad takim algorytmem:

1. Rozpoczęcie parsowania od pierwszego elementu tablicy (pominięcie komentarza i zainicjowania tablicy).
2. Wyrzucenie początku "tr_channels[0] = [" . Tutaj wyróżnienie regularne albo obcięcie stringa.
3. Wyrzucenie końcówki ];
4. Explode na przecinku. Wyrzucenie pojedynyczych cudzysłowiów.

To, co tutaj opisujesz to jest dokładnie to, co robią wymienione przeze mnie narzędzia i przed użyciem których się tak wzbraniasz. Powtórzę raz jeszcze najszybciej będzie zrobić tak:
1) $t = file_get_contents (pobieramy zawartość js);
2) konwertujemy wybranym narzędziem tekst js do json, możesz zrobić tak, że to, co pobierzesz w kroku 1) odsyłasz do skryptu js, na końcu on Ci po obróbce odsyła gotowy json
3) na końcu w php json_decode
Nie ma sensu wymyślać koła na nowo i bawić się wyrażeniami regularnymi. Tłumaczenie, bo ja chcę to zrobić tylko w phpie spowoduje, że spędzisz najbliższe godziny, albo i nawet dni nad wymyślaniem gotowego algorytmu, który zamieni Ci proste typy danych javascriptowych do notacji JSON. Alternatywnie, podejrzyj, jak taki parser w js został napisany i wzorując się na gotowcu, napisz własny w php, to tylko kilka godzin pracy (dla bardziej złożonych struktur danych typu tablica obiektów będzie niezła zabawa).

Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 13.10.2025 - 11:23