Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyciąganie html z pliku
Forum PHP.pl > Forum > Przedszkole
pietrov8
Witam.
Mam taki mały problem.
Chcę zrobić skrypt który wyciągałbymi z strony np http://www.agraven.pl/sklep/product_info.php?products_id=26 kod HTML (całą stronę w kodzie HTML) i zapisywał w wskazanym przezemnie miejscu.

PS. I z panelem logowanie smile.gif


Z góry dziekuje za pomoc
z3L
Cytat(pietrov8 @ 3.08.2009, 14:11:43 ) *
Witam.
Mam taki mały problem.
Chcę zrobić skrypt który wyciągałbymi z strony np http://www.agraven.pl/sklep/product_info.php?products_id=26 kod HTML (całą stronę w kodzie HTML) i zapisywał w wskazanym przezemnie miejscu.

PS. I z panelem logowanie smile.gif
Z góry dziekuje za pomoc


Co do zapisywania , to możesz to zrobić poprzez fopen + fwrite. , jeżeli chodzi o panel logowania to posłuż się sesją, na google z pewnością jest masa przykładów.
pietrov8
  1. <?php
  2. $fp = fopen('http://www.agraven.pl/sklep/product_info.php?products_id=26', 'w');
  3. fwrite($fp, '1');
  4. fwrite($fp, '23');
  5. fclose($fp);
  6.  
  7. ?>


Zastosowałe to i...
  1. Warning: fopen(http://www.agraven.pl/sklep/product_info.php?products_id=26) [function.fopen]: failed to open stream: HTTP wrapper does not support writeable connections. in C:\Program Files\WebServ\httpd\skrypty\wyciaganie.php on line 3
  2.  
  3. Warning: fwrite(): supplied argument is not a valid stream resource in C:\Program Files\WebServ\httpd\skrypty\wyciaganie.php on line 4
  4.  
  5. Warning: fwrite(): supplied argument is not a valid stream resource in C:\Program Files\WebServ\httpd\skrypty\wyciaganie.php on line 5
  6.  
  7. Warning: fclose(): supplied argument is not a valid stream resource in C:\Program Files\WebServ\httpd\skrypty\wyciaganie.php on line 6
Unik2psc
http://pl.php.net/file_get_contents
file_get_contents
pietrov8
Gdy zastosuję tę funkcję
  1. <?php
  2. $homepage = file_get_contents('http://www.example.com/');
  3. echo $homepage;
  4. ?>


To wyświetla mi się normalne strona podana w skrypcie :/
z3L
Cytat(pietrov8 @ 3.08.2009, 14:34:05 ) *
  1. <?php
  2. $fp = fopen('http://www.agraven.pl/sklep/product_info.php?products_id=26', 'w');
  3. fwrite($fp, '1');
  4. fwrite($fp, '23');
  5. fclose($fp);
  6.  
  7. ?>


Zastosowałe to i...
  1. Warning: fopen(http://www.agraven.pl/sklep/product_info.php?products_id=26) [function.fopen]: failed to open stream: HTTP wrapper does not support writeable connections. in C:\Program Files\WebServ\httpd\skrypty\wyciaganie.php on line 3
  2.  
  3. Warning: fwrite(): supplied argument is not a valid stream resource in C:\Program Files\WebServ\httpd\skrypty\wyciaganie.php on line 4
  4.  
  5. Warning: fwrite(): supplied argument is not a valid stream resource in C:\Program Files\WebServ\httpd\skrypty\wyciaganie.php on line 5
  6.  
  7. Warning: fclose(): supplied argument is not a valid stream resource in C:\Program Files\WebServ\httpd\skrypty\wyciaganie.php on line 6


Otwierasz ten plik z atrybutem do zapisu , a fwrite zapisuje do tamtej strony, to nie ma prawa działać. Użyj file_get_contents tak jak Unik2psc radzi, nie pomyślałem o tym.

EDIT down:

No pewnie, że wyświetla Ci się normalna strona podana w skrypcie , bo to jest zadanie file_get_contents:

Cytat
file_get_contents — Reads entire file into a string

Teraz musisz otworzyć plik, tudzież go stworzyć , do tego posłuży Ci : fopen + fwrite, poczytaj manual, tam wszystko masz czarno na białym.
pietrov8
  1. <?php
  2. $homepage = file_get_contents('http://www.agraven.pl/sklep/product_info.php?products_id=26');
  3. fopen ("http://www.agraven.pl/sklep/product_info.php?products_id=26", "r");
  4. fwrite ("http://www.agraven.pl/sklep/product_info.php?products_id=26", "r");
  5. ?>


Coś tutaj brakuje?
Pawel_W
tak? nie mów że nie zauważyłeś...

po 1 to otwierasz i chcesz zapisać tą samą stronę...
po 2 w trybie 'r' nie zapiszesz...
po 3 tak jest lepiej:

  1. <?php
  2. $homepage = file_get_contents('http://www.agraven.pl/sklep/product_info.php?products_id=26');
  3. file_put_contents("jakis_twoj_plik", $homepage);
  4. ?>


winksmiley.jpg
pietrov8
A do tego kodu co mi podałeś możesz dopisać funkcję która by zapisywała kod strony wygenerowany przez funckję file_get_contents??
Pawel_W
file_put_contents" title="Zobacz w manualu PHP" target="_manual

masz w kodzie powyżej winksmiley.jpg
pietrov8
Czyli to
  1. <?php
  2. $file = 'people.txt';
  3. // Open the file to get existing content
  4. $current = file_get_contents($file);
  5. // Append a new person to the file
  6. $current .= "John Smith\n";
  7. // Write the contents back to the file
  8. file_put_contents($file, $current);
  9. ?>

Trzeba dołączyć do tego
  1. <?php
  2. $homepage = file_get_contents('http://www.agraven.pl/sklep/product_info.php?products_id=26');
  3. file_put_contents("jakis_twoj_plik", $homepage);
  4. ?>
Pawel_W
ale po co?
pierwszy skrypt pobiera ci plik do zmiennej, dopisuje do niego 'John Smith', i zapisuje spowrotem
pietrov8
  1. <?
  2. $file = 'http://www.agraven.pl/sklep/product_info.php?products_id=26';
  3. // Open the file to get existing content
  4. $current = file_get_contents($file);
  5. // Append a new person to the file
  6. $current .= "John Smith\n";
  7. // Write the contents back to the file
  8. file_put_contents($file, $current);
  9. ?>

Ten sposób niedziała
Pawel_W
a www.agraven.pl to Twój serwis?
pietrov8
Nie a czemu pytasz>?
Pawel_W
omg, bo nie możesz nadpisać sobie czyjegoś pliku...

co ty myślałeś że można tak każdy plik w internecie nadpisywać? winksmiley.jpg

nadpisywać możesz tylko swoje pliki
pietrov8
No tak.
Ale dostęp do ftp, mysql itp mam i chce zrobić dla nich skrypt.
Pawel_W
ustaw error_reporting(E_ALL); i zobacz czy zwróci jakiś błąd, możesz też zmienić chmod" title="Zobacz w manualu PHP" target="_manual na 777
marian2299
1. Nie zrobisz tego razem z działającym panelem logowania smile.gif.
2. Przeczytaj dokładnie:
  1. <?php
  2. $homepage = file_get_contents('http://www.agraven.pl/sklep/product_info.php?products_id=26');
  3. file_put_contents("tu link do twojego pliku, który ma chmod 777, na twoim serwerze", $homepage);
  4. ?>
pietrov8
No tak rozumiem.
Ale ja chcę by ten skrypt wyciągną mi kod html z http://www.agraven.pl/sklep/product_info.php?products_id=26 i zapisał w html na serwerze smile.gif Tylko tyle
Pawel_W
ehh podaj nazwę pliku do którego ma ci zapisać
marian2299
Doprowadziłeś już wielu ludzi do nerwicy haha.gif.

Masz rozwiązania na tacy. Pomyśl.
pietrov8
Cytat(Pawel_W @ 3.08.2009, 20:43:08 ) *
ehh podaj nazwę pliku do którego ma ci zapisać


obojętne
może być np word.html
Pawel_W
  1. <?php
  2. $homepage = file_get_contents('http://www.agraven.pl/sklep/product_info.php?products_id=26');
  3. file_put_contents("word.html", $homepage);
  4. ?>

takie trudne? blinksmiley.gif
pietrov8
Temat do zamknięcia.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.