Skocz do zawartości
jasiek07

Prośba o utworzenie krótkiego skryptu

Polecane posty

Witam!

Jeśli ktoś by mógł podpowiedzieć jak to ma wyglądać?

 

Jest pewna strona. W jej kodzie źródłowym znajduje się pewien ciąg znaków, który jest generowany codziennie o północy. Ów ciąg znaków zawsze znajduje się pomiędzy dwoma wyrazami które nigdy się nie zmieniają, wygląda to mniej więcej tak:

 

 

www.dom.pl/lekcja=1W2345D&cośtam

 

 

 

Gdzie: "1W2345D" jest tym ciągiem znaków, który się zmienia co jakiś czas.

 

"www.dom.pl/lekcja=" oraz "&cośtam" jest stałe, nigdy nie ulega zmianie.

 

 

Istnieje sposób na to, żeby skrypt wyczytywał ten ciąg znaków abym mógł go później wykorzystać dalej?

 

Np. jako dyrektywę, że pod "$ciągznakow" będę mógł przywoływać go.

 

Pozdrawiam!

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Niestety się nie znam, więc nie mogę określić, na moje rozumowanie mogę to nazwać czymś jak token. Ten ciąg jest generowany na podstawie ip, choć to jest w sumie nieważne, ponieważ jest on widoczny w kodzie źródłowym, jedyne na czym mi zależy to jakoś zautomatyzować jego wyciąganie, zamiast wyciągać go codziennie ręcznie :)

 

Mógłbym podesłać link na pw do strony na której się znajduje, jeśli miałoby to w czymś pomóc

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

$ciągznakow = $_GET["lekcja"];

 

Jemu chyba chodzi o wyciągniecie danych z innej strony, nie z linku. Wiec najprościej i najszybciej będzie cURL'em, poczytaj trochę o tym, jest mnóstwo przykładów w internecie jak to zrobić.

 

Pozdrawiam

NetMat

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Czy takie coś ma prawo działać?

 

<?php

$start = strpos($ciag_znakow, "www.dom.pl/lekcja=");
$end = strpos($ciag_znakow, "&cośtam");

$str_tag = substr($ciag_znakow, $start, $end-$start);
echo $str_tag;

?>

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość mariaczi

Jak twierdzisz ciąg znaków po "lekcja=" zmienia się co jakiś czas. Musisz zatem ten link wyciągnąć ze strony, z której przechodzi się do niego, a dopiero potem "obrabiać".

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Czy takie coś ma prawo działać?

 

Nie, bo przy tworzeniu zmiennej '$start' funkcja 'stropos' zwraca ci pozycję pierwszego wystąpienia stringu - w tym przypadku 0, więc 'substr' nie zadziała tak jak chcesz...

 

Podpowiedź: jako '$start' musisz wziąć długość tego stringu...

 

Wskazówka: nie używaj podwójnych cudzysłowów przy definiowaniu stringów - używaj pojedynczych...

Edytowano przez likufanele (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach


parse_str( parse_url( 'http://www.dom.pl/?lekcja=1W2345D&cośtam', PHP_URL_QUERY ), $_tmp );
$lekcja = $_tmp['lekcja'];

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Trochę zacząłem kombinować, wiem, że napewno popisałem głupoty ale mam nadzieje, że jest jakiś postęp jeśli możecie podpowiedzieć co jest źle to będę wdzięczny.

 

np. link, którym znajduje się ciąg zakładamy, że wygląda tak:

 

http://s.dom.pl:80/main/rozrywka?baa7=b7b9ea0dfd&amp

 

mnie interesuje sam ciąg a nie link.

Złożyłem coś takiego na podstawie tego co trochę poczytałem w google, no ale nie muszę chyba wspominać ponownie, że moja wiedza jest uboga :

 

 

<?php


$strona = file_get_contents('http://jakas-strona.pl');
$preg = preg_match_all('/\main\/rozrywka\?([^\"]*)\&amp/iU', $strona, $ciag);

echo $ciag;

?>

 

 

 

I jeśli możecie mi podpowiedzieć co oznacza znak : "iU"? W większości przykładów to było więc dodałem no ale.. nie mam pojęcia co to, w googlach nie znalazłem odp.

 

 

ed:// hmm w sumie teraz widzę, że to /\main jest niepotrzebne w tym??

Edytowano przez jasiek07 (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zamiast 'preg_match_all' daj sobie 'preg_match' (chyba że masz więcej niż jeden ciąg do znalezienia). 'preg_match' zwraca znalezione wartości w tablicy '$ciag' więc, musisz je sobie stamtąd wyciągnąć:

echo $ciag[1];

lub

$moj_ciag = $ciag[1];
echo $moj_ciag;
Edytowano przez likufanele (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jeszcze jedna mała prośba, mogę zrobić coś, aby mój skrypt był rozpoznawany przez stronę jako konkretny client? Mam na myśli przeglądarkę, system etc.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach


$var='www.dom.pl/lekcja=1W2345D&cośtam';
$cut=explode("www.dom.pl/lekcja=",$var);

$cut2=explode("&cośtam",$cut[1]);

echo $cut2[0];

 

Edytowano przez Jacker (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Witam ponownie. Jak dotąd w miare bezproblemowo mi szło z tą funkcją, natomiast natknąłem się na problem.

Nie działa mi skrypt, jeśli ciąg znaków, który chcę wyciągnąć znajduje się przed znakiem '

 

Czyli:

 

Chcę wyciągnąć pogrubioną część tej linijki:

 

'file': 'http://dom.pl/dzial/temat?f=1405779249&st=jPGHmyTwukE-YCP493Z_YA',

 

 

 

Próbuję to robić tak:

 

$strona = file_get_contents('http://strona.pl/asd');
$preg = preg_match('/temat\?([^\"]*)\'/iU', $strona, $ciag);

echo $ciag[1];

 

 

 

Lecz nie działa..

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dzieki, więc tak:

 

Używam parse_url, dzieli mi url na poszczególne elementy w tym [query], na którym mi zależy. Lecz w źródle strony znajduje się wiele innych treści niż ten adres url. Jak go wskazać?

 

 

Jak wspomniałem ten adres url znajduje się takiej linijce:

'file': 'http://dom.pl/dzial/temat?f=1405779249&st=jPGHmyTwukE-YCP493Z_YA',

Pozdrawiam!

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Źródłem tego pliku nie jest Json? Możesz dać link do tego pliku lub całej zawartości tutaj lub na PW (wrażliwe dane oczywiście usuwając).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×