![]() |
![]() |
![]()
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:
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 -------------------- |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
-------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Czy json_decode działa z normalnymi tablicami JS?
Bo z mojej wiedzy i manualna wynika, że nie. -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Skonwertuj sobie (nie sprawdzałem czy działa, a jak nie chcesz w ten sposób, to jest darmowa biblioteka do pobrania
-------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Przecież to są rozwiązania w JS więc co mi z nich?
-------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
napisz dokładnie co chcesz zrobić, to wtedy będzie można zasugerować jakieś rozwiązanie, bo możesz np. przy pomocy jQuery przesłać sobie do php tablicę w formacie JSON, możesz też użyć regexp'a do przekonwertowania bezpośrednio pliku na tablicę php
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli napisałem, że nie chce wykorzystywać JS to oznacza, że jQuery też..
Jakby było inaczej to bym o tym nie wspominał i nie umieszczał tematu w PHP.. Nie rozumiem co jest niezrozumiałego w temacie - tablica JS w tablicę PHP przy użyciu samego PHP. Jeżeli chodzi o JSON to na razie doszedłem, że musiałoby przejść transformacje takową:
Troszkę zabawy jest ale unikne w ten sposób wyrażeń regularnych, tylko czy warto. Cały czas licze, że może jest jakaś biblioteka albo funkcja. Ten post edytował markonix 7.09.2012, 12:10:34 -------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
Widzę, że wstałeś dzisiaj lewą nogą...Pytanie tak sformuowałeś, że nie pozostowiłeś żadnej innej możliwości niż wyrażenia regularne. Ale gdybyś po prostu opisał sytuację trochę szerzej i napisał jaką funkcjonalność próbujesz uzyskać to mogło by się okazać, że wcale nie musisz parsować pliku .js, bo może istenieć lepsza alternatywa na wykonanie tego co chesz uzyskać.
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Przecież to są rozwiązania w JS więc co mi z nich? Zrozum, do pracy w php z json_decode potrzebujesz poprawnie sformatowanych danych JSON, więc zwykła tablica w js -> tablica w JSON -> json_decode w php i po krzyku. Ten post edytował darko 7.09.2012, 12:20:44 -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
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.
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. A ja chciałbym to mieć w tablicy PHP aby była większa dostępność oraz większa kontrola (chce troszkę tablicę zmienić, dodać elementów), a w PHP znacznie łatwiej będzie mi to robić. Zrozum, do pracy w php z json_decode potrzebujesz poprawnie sformatowanych danych JSON, więc zwykła tablica w js -> tablica w JSON -> json_decode w php i po krzyku. Ale czego ja nie rozumiem? Sam zaproponowałeś JSON, którego tu nie ma i nie będzie bo źródło pliku jest zewnętrzne i niezależne. W JS łatwo tablicę zmienie w JSON bo takich rozwiązań jest mnóstwo ale powtarzam 3 raz, że chce stworzyć rozwiązanie PHP only. Ten post edytował markonix 7.09.2012, 12:22:51 -------------------- |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli coś jest stringiem to potraktuj to jako string - wyrażenia regularne, które usunie zbędne rzeczy + json_decode(str, true). Innej możliwości nie widzę
![]() |
|
|
![]()
Post
#12
|
|
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() |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
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. -------------------- |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
Cytat To co chce zrobić to tablicę PHP, a jaki jest tego cel to przyznaj, że nie ma to znaczenia. No właśnie sęk w tym, że mogłoby się okazać, że istnieje inne rozwiązanie na wyświetlenie listy kanałów, niż parsowanie tablicy .js, chociażby pobranie ich z podstrony oferty, ale widzę, że tam nie ma ID, bo pewnie sam nie raz zauważyłeś na forum, że ktoś przychodzi z dziwnym problemem, a potem się okazuje, że daną funkcjonalność można było inaczej uzyskać. Akurat w tym przypadku dziwne jest, że transferuj nie udostępnia bardziej wszechstronnego formatu, ale trudno. Ponieważ plik jest prosty i kolejne wersję będą miały podobną strukturę dla utrzymania wstecznej kompatybilności, ja bym to zrobił mniej więcej tak:
|
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
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). -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Raczej nie godziny co pokazał kolega tehaha.
Mnie też wyszła pętla parsująca ale skorzystam z tego żeby nie zmarnować ![]() Zapomniałem o file, który tutaj lepiej się nada bo już jest w tablicy każda linia. Cały czas nie rozumiem czemu tak ciężko przyjąć, że chce rozwiązanie PHP.. Równolegle napisze do Transferuj żeby się troszkę wysilili. Zwykle moje sugestie wprowadzają. Tak uzupełniająco moja propozycja (bez asocjacyjnej).
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 21:48 |