Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] zapis kodu HTML
krystian_p
post 3.07.2007, 12:19:58
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 29.06.2007

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


Chciałbym zapisać kod HTML pliku index.php do osobnego pliku, np. index2.php
Gdy korzystam z funkcji fopen, pokazuje mi się nie kod HTML, tylko cała zawartość pliku, czyli razem z PHP... Wiem, że do tego trzeba użyć funkcji fsockopen,ale ona też nie do końca działa... Może dlatego, że pracuję na Krasnalu?

  1. <?
  2. $socket = @fsockopen('http://localhost/~konto/index.php', 80);
  3. ?>


Więc w jaki sposób mam wyciągnąć HTML'ową zawartość danego pliku, która jest widziana okiem użytkownika?
Go to the top of the page
+Quote Post
flv
post 3.07.2007, 12:24:32
Post #2





Grupa: Zarejestrowani
Postów: 130
Pomógł: 1
Dołączył: 29.06.2007

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


file_get_contents, chociaż sockety też powinny działać
Go to the top of the page
+Quote Post
UDAT
post 3.07.2007, 12:41:24
Post #3





Grupa: Zarejestrowani
Postów: 442
Pomógł: 0
Dołączył: 27.12.2005

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


A jak otworzysz przez przeglądarkę ten adres to masz przeparsowany plik?
Jeśli tak to w skrypcie też będziesz miał.
Go to the top of the page
+Quote Post
krystian_p
post 4.07.2007, 18:37:07
Post #4





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 29.06.2007

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


nic mi się nie pokazuje, skopiujcie ten kod, włączcie krasnala, a zobaczycie...
właśnie nie wiem dlaczego, a zależy mi na tym, by system za każdym razem nie łączył się z bazą danych, tylko ładował całą zawartość osobnego pliku do indexu - oczywiście codziennie następowałaby synchronizacja
Go to the top of the page
+Quote Post
Kicok
post 4.07.2007, 20:46:42
Post #5





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Cytat
nic mi się nie pokazuje, skopiujcie ten kod, włączcie krasnala, a zobaczycie...


Który kod? Ten podany wyżej? Jeśli tak, to chyba jasne, że nic się nie wyświetli ;]



Najprościej jest użyć do tego file_get_contents" title="Zobacz w manualu PHP" target="_manual:
  1. <?php
  2.  
  3.  
  4. $content = file_get_contents( 'http://localhost/~konto/index.php' );
  5.  
  6. // Wyświetlanie zawartości zmiennej $content
  7. echo nl2br( htmlspecialchars( $content ) );
  8.  
  9. ?>

Tyle, że na niektórych serwerach wrappery URL dla funkcji systemu plików (fopen, file, file_get_contents) są wyłączone.


Można też to zrobić przy użyciu fsockopen:
  1. <?php
  2.  
  3.  
  4. $fp = @fsockopen( 'localhost', 80, $errno, $error, 5 );
  5. if( !is_resource( $fp ) ) {
  6. die( "Błąd połączenia z serwerem:<br>#{$errno} {$error}" );
  7. }
  8.  
  9. stream_set_timeout( $fp, 5, 0 );
  10. fwrite( $fp, "GET /~konto/index.php HTTP/1.1rn" );
  11. fwrite( $fp, "Host: localhostrn" );
  12. fwrite( $fp, "Connection: closernrn" );
  13.  
  14.  
  15. $content = '';
  16. while( !feof( $fp ) ) {
  17. $content .= fread( $fp, 1024 );
  18. }
  19. fclose( $fp );
  20.  
  21.  
  22.  
  23. // Wyświetlanie zawartości zmiennej $content
  24. echo nl2br( htmlspecialchars( $content ) );
  25.  
  26. ?>

W tym przypadku trzeba znać podstawy protokołu HTTP. No i zmienną $content będziesz musiał jeszcze oczyścić ze śmieci (nagłówki, itp.)


Trzecia możliwość to cURL" title="Zobacz w manualu PHP" target="_manual:
  1. <?php
  2.  
  3.  
  4. $ch = curl_init( 'http://localhost/~konto/index.php' );
  5. curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
  6.  
  7. $content = curl_exec( $ch );
  8. if( curl_error( $ch ) != 0 ) {
  9. die( 'Błąd połączenia z serwerem:<br>#' . curl_errno( $ch ) . ' ' . curl_error( $ch ) );
  10. }
  11. curl_close( $ch );
  12.  
  13.  
  14. // Wyświetlanie zawartości zmiennej $content
  15. echo nl2br( htmlspecialchars( $content ) );
  16.  
  17. ?>


Ten post edytował Kicok 4.07.2007, 20:48:16


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 26.06.2025 - 01:04