Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP][MSSQL]pobieranie+zapis+wyswietlanie
shtoc
post
Post #1





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 18.11.2008
Skąd: Polska

Ostrzeżenie: (10%)
X----


Czy moze mi ktos napisac krok po kroku jak napisac taki skrypt ktory pobieral by filmiki wraz z opisem z wrzuta.pl zapisywal je+opis(informacje dotyczace filmiku) i potem chcialbym umieszczac to w bazie i wyswietlac na www (nie chcem kodu, przewertowalem forum)
Go to the top of the page
+Quote Post
b4x
post
Post #2





Grupa: Zarejestrowani
Postów: 658
Pomógł: 95
Dołączył: 20.12.2005
Skąd: N54,35° E18,63° (Gdańsk)

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


1. Napisanie klasy np. parsera.
2. Napisanie klasy obsługującej wyszukiwanie.
3. Napisanie klasy która będzie zapisywać pobrane dane w bazie.
4. Połączenie tego wszystkiego w 1 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
shtoc
post
Post #3





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 18.11.2008
Skąd: Polska

Ostrzeżenie: (10%)
X----


Cytat(b4x @ 24.11.2008, 11:57:21 ) *
1. Napisanie klasy np. parsera.


co to?? do czego to??
Go to the top of the page
+Quote Post
b4x
post
Post #4





Grupa: Zarejestrowani
Postów: 658
Pomógł: 95
Dołączył: 20.12.2005
Skąd: N54,35° E18,63° (Gdańsk)

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


Takie coś co będzie "przerabiało" treść strony, na taką treść jaką Ty chcesz otrzymać.

np. Chcesz uzyskać wyniki wyszukiwania a z nich np. tytuł , rozmiar, czas trwania - za pomocą parsera musisz te informacje wyciągnąć.


Masz tutaj przykładową funkcję moją


  1. <?php
  2. /**
  3.     * Pobierz wyniki z wrzuty.
  4.     *
  5.     * @param        string        $query
  6.     * @return        array        $wynik
  7.     */
  8.  
  9.    function __wyniki($query, $page="0") {
  10.  
  11.            $strona = file_get_contents('http://www.wrzuta.pl/search.php?type=a&words='.urlencode($query).'&page='.$page);
  12.  
  13.            $wyrazenie = '#<div class="title"><a href=".*?wrzuta.pl/audio/([A-z0-9]+)/.*">(.*)</a></div>s+<div class="more"><b>(.*)</b> .* <b>(.*)</b>#';
  14.  
  15.            preg_match_all($wyrazenie, $strona, $wyniki);
  16.  
  17.  
  18.                for($i=0;$i<count($wyniki[1]);$i++) {
  19.  
  20.  
  21.                    $wynik[$i]['id'] = $wyniki[1][$i];
  22.  
  23.                    $wynik[$i]['tytul'] = $wyniki[2][$i];
  24.  
  25.                    $wynik[$i]['czas'] = $wyniki[3][$i];
  26.  
  27.                    $wynik[$i]['rozmiar'] = $wyniki[4][$i];
  28.  
  29.                }
  30.  
  31.  
  32.            return $wynik;
  33.    
  34.    }
  35. ?>
Go to the top of the page
+Quote Post
shtoc
post
Post #5





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 18.11.2008
Skąd: Polska

Ostrzeżenie: (10%)
X----


Dziekuje zaraz przeanalizuje!! pomogł dodalem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

uruchomienie tego skryptu nie daje zadnych wynikow??

rozumem ze to tylko czesc skryptu dla przykladu??
Go to the top of the page
+Quote Post
b4x
post
Post #6





Grupa: Zarejestrowani
Postów: 658
Pomógł: 95
Dołączył: 20.12.2005
Skąd: N54,35° E18,63° (Gdańsk)

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


Daje wyniki, zwraca tablicę.


W przypadku tej funkcji - zwraca wyniki dla plików audio.

Tablicę w postaci id, tytul, czas, rozmiar


możesz przetestować np.

  1. <?php
  2. print_r(__wyniki('mp3', 1)); // zwróci wyniki w postaci tablicy dla słowa "mp3" - strona 1.
  3. ?>
Go to the top of the page
+Quote Post
shtoc
post
Post #7





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 18.11.2008
Skąd: Polska

Ostrzeżenie: (10%)
X----


a no dziala bardzo fajnie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
dzieki dzieki!!
to teraz trzeba walczyc dalej!! przydalo by sie teraz zeby do tego był filmik/mp3
Go to the top of the page
+Quote Post
b4x
post
Post #8





Grupa: Zarejestrowani
Postów: 658
Pomógł: 95
Dołączył: 20.12.2005
Skąd: N54,35° E18,63° (Gdańsk)

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


Spójrz na źródło wrzuty np. : http://www.wrzuta.pl/search.php?type=v&words=video

Z tego co zauważyłem na "pierwszy rzut" oka, to wystarczy zmienić 2 rzeczy.

  1. <?php
  2. $strona = file_get_contents('http://www.wrzuta.pl/search.php?type=a&words='.urlencode($query).'&page='.$page); // spójrz na type=a
  3.  
  4.  
  5.  
  6. // dla video będzie to type=v, czyli:
  7. $strona = file_get_contents('http://www.wrzuta.pl/search.php?type=v&words='.urlencode($query).'&page='.$page);
  8.  
  9. // no i wyrażenie dla video
  10.  
  11. $wyrazenie = '#<div class="title"><a href=".*?wrzuta.pl/film/([A-z0-9]+)/.*">(.*)</a></div>s+<div class="more"><b>(.*)</b> .* <b>(.*)</b>#';
  12. ?>
Go to the top of the page
+Quote Post
shtoc
post
Post #9





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 18.11.2008
Skąd: Polska

Ostrzeżenie: (10%)
X----


zaraz bede testowl!! dzieki!!

no fajnie!! a teraz mam takie pytanie bo to trzeba by pakowac potem do bazy!!
to kazdy rekord czyli opis kazdego filmiku w osobnym pliku czy taka paczka po 16 bodajrze tez bedzie ok??
Go to the top of the page
+Quote Post
erix
post
Post #10





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




IMHO lepiej osobno, będzie łatwiej zarządzać.
Go to the top of the page
+Quote Post
shtoc
post
Post #11





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 18.11.2008
Skąd: Polska

Ostrzeżenie: (10%)
X----


<?php
function wyniki($query, $page="0")
{
$strona = file_get_contents('http://www.wrzuta.pl/search.php?type=v&words='.urlencode($query).'&page='.$page);
$wyrazenie = '#<div class="title"><a href=".*?wrzuta.pl/film/([A-z0-9]+)/.*">(.*)</a></div>\s+<div class="more"><b>(.*)<\/b> .* <b>(.*)<\/b>#';

preg_match_all($wyrazenie, $strona, $wyniki);


for($i=0;$i<count($wyniki[1]);$i++) {


$wynik[$i]['id'] = $wyniki[1][$i];

$wynik[$i]['tytul'] = $wyniki[2][$i];

$wynik[$i]['czas'] = $wyniki[3][$i];

$wynik[$i]['rozmiar'] = $wyniki[4][$i];

}


return $wynik;

}

$a=print_r(wyniki('mały', 1));
file_put_contents('wrzuta1.txt', $a);
?>

dlaczego zapis nie dziala??
otrzymuje w pliku 1 (czyli ze "true"??)
dlaczego nie zapisuje wyniku??

for($f=1; $f<=10; $f++)
{
print_r('Strona'.$f);
$a=print_r(wyniki('film', $f));
print_r('<br /><br />');
}

dorzucilem petle do zmieniania stron ale jak dla zapytania "film" bylo 100 stron dostalem przy wywolaniu blad :
Fatal error
: Maximum execution time of 30 seconds exceeded in C:\Program Files\WebServ\httpd\szymon.php on line 4

to jakes przekroczenie czasu?? wykonywania skryptu?? mozna wydluzyc?? jak gdzie??
Go to the top of the page
+Quote Post
nitek
post
Post #12





Grupa: Zarejestrowani
Postów: 209
Pomógł: 37
Dołączył: 27.02.2008
Skąd: Kwidzyn

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


błąd mówi dokładnie o tym co piszesz, wydłużyć działanie skryptu można tak:
http://pl.php.net/set_time_limit
Go to the top of the page
+Quote Post
shtoc
post
Post #13





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 18.11.2008
Skąd: Polska

Ostrzeżenie: (10%)
X----


ok wydluzylem i dziala!!
jak sie nie myle to 0 daje max czas ile jest potrzebne na wykonanie skryptu??(bo tez dziala)

a jak zrobic zapis do pliku kazdej ze stron??

zrobilem:
file_put_contents('C:\Program Files\WebServ\httpd\wrzuta\'w'.$f.'.txt', $a);
ale nie dziala (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
tworzy 100 plikow z wartoscia : "1"

a ja bym chcial zeby w kazdym pliku zapisana byla odpowiednia strona!
Go to the top of the page
+Quote Post
nitek
post
Post #14





Grupa: Zarejestrowani
Postów: 209
Pomógł: 37
Dołączył: 27.02.2008
Skąd: Kwidzyn

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


dajesz coś takiego:
Kod
$a=print_r(wyniki('mały', 1));
file_put_contents('wrzuta1.txt', $a);

pierwsza myśl, która się nasuwa, to to, że do zmiennej $a przypisujesz wynik działania funkcji print_r, a potem tą zmienną wstawiasz do pliku. może to ona zwraca Ci 1 (print_r)? w manualu jest opisany dodatkowy parametr, który pozwala na zwrócenie wartości drukowanego na ekran tekstu - sprawdź tą opcję.
Go to the top of the page
+Quote Post
shtoc
post
Post #15





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 18.11.2008
Skąd: Polska

Ostrzeżenie: (10%)
X----


jak sie nie myle to powinienem dodac parametr "true"

$a=print_r(wyniki('film', $f ),true);

i teraz dziala!!! nawet fajne ze zapisuje kazda strone w osobnym pliku!!
myslalem ze bedzie to tak ze zapisze 1 w 1 a w 2 pliku bedzie 1 i 2 strona ale tak nie jest i jest fajnie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

tylko ze teraz zwraca mi na stronie tylko napisy :
Strona 1

Strona 2

itd.
ale w sumie to ok!!

a to takie pytanko teraz!!
bo w kazdym pliku mam po 16 rekordow!!
a ktos mi napisal ze w bazie lepiej by bylo miec jeden rekord w 1 pliku!!

jak to zrobic?? i czy warto??
czy teraz zrobic cos do wczytywania plikow wyciagania z nich ciagów i zapisz poszczegolnych do poszczegolnych plikow??

czy jakos inaczej??

ktos cos podpowie??
Go to the top of the page
+Quote Post
erix
post
Post #16





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Nie wiem, czy masz na myśli płaską bazę danych (w pliku), czy SQL.

Cytat
bo w kazdym pliku mam po 16 rekordow!!
a ktos mi napisal ze w bazie lepiej by bylo miec jeden rekord w 1 pliku!!

Napisałem odnośnie SQL. Jeśli chodzi o pliki, to musisz rozważyć - odczyt będzie znacznie szybszy, ale modyfikacja poszczególnych rekordów będzie coraz bardziej czasochłonna wraz z przyrostem liczby rekordów.

Ogólnie proponowałbym przejście na jakąś bazę danych, chociażby SQLite. :]
Go to the top of the page
+Quote Post
shtoc
post
Post #17





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 18.11.2008
Skąd: Polska

Ostrzeżenie: (10%)
X----


tak to bedzie zawarte w bazie!!

wiec w gre wchodzi 1 rekord = 1 plik!!

a jakis pomysl na zrealizowanie tego z istniejacego kodu??
Go to the top of the page
+Quote Post
erix
post
Post #18





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Ale jaka baza, SQL, czy w pliku? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
shtoc
post
Post #19





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 18.11.2008
Skąd: Polska

Ostrzeżenie: (10%)
X----


SQL
tak wyglada teraz zapisany kazdy plik!!

Array
(
[0] => Array
(
[id] => 60LmxLFfB2
[tytul] => Fo fo fo Fristajlo FILM
[czas] => 00:54
[rozmiar] => 2,42 MB
)


[1] => Array
(
[id] => 9bhESDmuF0
[tytul] => Jeckyll &amp; Hyde Freefall &quot;LEGO FILM&qu...
[czas] => 04:07
[rozmiar] => 10,8 MB
)


[2] => Array
(
[id] => 1XVX6WNdzn
[tytul] => film fajny
[czas] => 00:25
[rozmiar] => 1,26 MB
)


[3] => Array
(
[id] => eZXNXuWAg9
[tytul] => Gothic Film
[czas] => 02:03
[rozmiar] => 6,27 MB
)


[4] => Array
(
[id] => dEwUOjoP5S
[tytul] => Film o Janie Pawle 2
[czas] => 03:58
[rozmiar] => 10,6 MB
)


[5] => Array
(
[id] => 80igiq5sRS
[tytul] => dominikanie - film powolaniowy
[czas] => 06:09
[rozmiar] => 13,9 MB
)


[6] => Array
(
[id] => txrWgOV628
[tytul] => Bardzo smutny film - the sims 2 video
[czas] => 02:28
[rozmiar] => 6,48 MB
)


[7] => Array
(
[id] => 3KgcK5pwyZ
[tytul] => Counter Strike : Film nagrany w 5 minut
[czas] => 05:28
[rozmiar] => 24,1 MB
)


[8] => Array
(
[id] => 3pvdV4Nv3p
[tytul] => Film z The Sims 2
[czas] => 00:46
[rozmiar] => 2,34 MB
)


[9] => Array
(
[id] => 6lRh9Akjc7
[tytul] => Dzieci Rewolucji Sobkowicz's film
[czas] => 02:17
[rozmiar] => 12,7 MB
)


[10] => Array
(
[id] => 3QVltZLVOr
[tytul] => Film z wycieczki do Niemiec ;]
[czas] => 00:55
[rozmiar] => 4,69 MB
)


[11] => Array
(
[id] => t4XPN59m0r
[tytul] => Teksty z polskich filmów - parodia Naruto
[czas] => 01:22
[rozmiar] => 3,24 MB
)


[12] => Array
(
[id] => 7D2dBKaR8B
[tytul] => FIlm
[czas] => 03:03
[rozmiar] => 10,4 MB
)


[13] => Array
(
[id] => cMBV8sPoj8
[tytul] => straszny film 2 egzorcysta
[czas] => 03:04
[rozmiar] => 8,22 MB
)


[14] => Array
(
[id] => q7lGkybOg7
[tytul] => TM Tuning malopolska pierwszy film klubu
[czas] => 04:29
[rozmiar] => 13,5 MB
)


[15] => Array
(
[id] => wDePhvsQWf
[tytul] => Upadek Ikara film
[czas] => 14:59
[rozmiar] => 55,1 MB
)

)
Go to the top of the page
+Quote Post
erix
post
Post #20





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
tak wyglada teraz zapisany kazdy plik(IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif)


Bez urazy, ale musisz się drzeć?

To, co podałeś, to nie jest SQL, tylko - jak podejrzewam - baza z pliku... Czemu nie przerzucisz się na np. MySQL/SQLite?
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 26.09.2025 - 05:04