Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyświetlanie czesci innej strony.
Forum PHP.pl > Forum > PHP
Macok
W jaki sposób wyswietlic na stronie kod źródłowy innej strony?

Chodzi mi o wyświetlenie tego co widzimy jak klikniemy prawym przyciskiem myszy na stronie a potem na pokaż źródło.
skowron-line
file_get_contents
dr_bonzo
i wyswietl potem po przepuszczeniu przez htmlspecialchars()
Macok
I jeszcze jedno!
Co zrobić zeby skrypt nie wyswietlal calego kodu, tylko np. od wyrażenia: "poziom postaci" do "profesja postaci"?
bim2
aaa już wiem co kombinujesz tongue.gif Tibia lub cóś innego, to nie prościej walnąc prega i w zmiennych mieć wszystkie dane?
Macok
No zeczywiscie mnie rozszyfrowales tongue.gif (chce wyswietlic poziom danej postaci)
Ale napiszcie dokladniej jak by to zrobic snitch.gif
Cytat
walnąc prega
Chodzi o preg_replace?
bim2
tak tongue.gif zwykle nie zmienia sie layout wiec posluzy ci i bedziesz mogl wlasna tabelke zrobic. walnija jakos tak: (zobacz w zrodlo) "!<td>Lvl:</td><td>([0-9])</td>!e", "$lvl = $1"
bim2
bo dajesz htmlspecialchar wczesniej i wtedy zamaist < amsz &gt; chyba lub &lt;
Macok
Mam taki kod i dziala (";" i "players" zamienia sie na "$lvl = $1"):
  1. <?
  2. // bbcode
  3. Function bbcode($str){
  4.  
  5. $str=str_replace(";", "$lvl = $1", $str);
  6. $str=str_replace("players", "$lvl = $1", $str);
  7.  
  8. return $str;}
  9.  
  10.  
  11.  
  12. $Code=file_get_contents('http://www.tibia.com/'); 
  13. $Code=nl2br(htmlspecialchars($Code)); 
  14.  
  15. echo bbcode($Code);
  16.  
  17.  
  18. ?>
Ale to juz nie dziala:
  1. <?php
  2. // bbcode
  3. Function bbcode($str){
  4. $str=str_replace(";([0-9])players", "$lvl = $1", $str);
  5.  
  6. $str=nl2br($str);
  7.  
  8.  
  9. $str=nl2br($str);
  10.  
  11. return $str;}
  12.  
  13.  
  14. $Code=file_get_contents('http://www.tibia.com/'); 
  15. $Code=nl2br(htmlspecialchars($Code)); 
  16.  
  17. echo bbcode($Code);
  18.  
  19.  
  20. ?>
Co poprawic w tym kodzie?
bim2
Strreplace nie obsluguje wyrazen regularnych
$str=preg_replace("!;([0-9])players!ei", "$lvl = $1", $str);
i teraz w zmiennej $lvl amsz te players
Macok
1. A co zrobic zeby wyswietlilo nie tylko liczby, ale tez tekst?
2. Dlaczego skrypt nie dziala jesli musi wyswietlic liczby pomiedzy znakami ">" itp.?
bim2
http://bedkowski.pl/a/php_regex/ poczytaj a zrozumiesz

Za pewien czas załącze class TibiaInfo która będzie pobierała dane o postaci useów online na danym świecie itd.
Prph
Tak w ogole, to warto zainteresowac sie Web Services, czyli uslugami oferowanymi przez inne serwery. Dla przykladu:

1. wywolujemy adres (poprzez sokety) strona.pl/pokaz_uzytkownika/12345/
2. strona.pl zwraca nam XMLa z danymi uzytkownika. Sam XML moze byc tzw. paczką - czyli moze zawierac takze pliki, np. graficzne.
3. Przetwarzamy XMLa u siebie w skrypcie i voila.

Jeden problem - to musi udostepniac serwer. Ale napisanie czegos takiego jest wrecz banalne, wiec czasem wystarczy przedstawic korzysci, jakie moze osiadnac dany "dostawca danych" winksmiley.jpg

Adrian.
bim2
wydaje mi sie że Cip się nie zgodzi (Cip = firma tibi) ikm się nie chce tongue.gif Maja juz dużo roboty, chociaż było by to coś super
Macok
Pogmatwałem troche w tym kodzie no i prawie sie udalo tongue.gif Teraz jezeli wpisze zamiast "$zmienna" np. "zmienna" to zamiast poziomu postaci wyswietli mi sie napis zmienna. Problem w tym ze kiedy wpisze tam właśnie "$zmienna" to cos jest nie tak. Jak widac na koncu dalem: "echo $zmienna; " wiec powinien sie wyswietlic poziom postaci. Niestety nie wyswietla sie nic. Dlaczego??
  1. <?
  2. // bbcode
  3. Function bbcode($str){
  4.  
  5.  
  6. $str=preg_replace("!:&lt;/TD&gt;&lt;TD&gt;!", "X", $str);
  7.  
  8.  
  9.  
  10. $str=preg_replace("!&lt;/TD&gt;&lt;/TR&gt;&lt;TR BGCOLOR=#F1E0C6&gt;&lt;TD&gt;World!", "Q", $str);
  11.  
  12.  
  13. $str=preg_replace("!X([0-9].*?)Q!ei", "$zmienna", $str);
  14.  
  15. $str=nl2br($str);
  16.  
  17. return $str;}
  18.  
  19.  
  20. $Code=file_get_contents('http://www.tibia.com/community/?subtopic=character&name=trok'); 
  21. $Code=nl2br(htmlspecialchars($Code)); 
  22. echo htmlspecialchars(bbcode($Code));
  23.  
  24. echo $zmienna;
  25.  
  26. ?>
bim2
$str=preg_replace("!X([0-9].*?)Q!ei", "$zmienna = \\1", $str);
źle tongue.gif
$zmienna=preg_replace("!X([0-9].*?)Q!ei", "\\1", $str);
i w $str masz zmienna tongue.gif

A co mi tam:
  1. <?
  2. $sName='trok';
  3. $sCode=file_get_contents('http://www.tibia.com/community/?subtopic=character&name='.$sName); 
  4. $sStr = preg_replace("!(?:.*)<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR=#505050><TD COLSPAN=2 CLASS=white><B>Character Information</B></TD></TR>(.*?)</TABLE>(?:.*)!is", "1", $sCode);
  5. preg_match_all("!<TR(?:.*?)><TD(?:.*?)>(.*?)</TD><TD>(.*?)</TD></TR>!is", $sStr, $aInfo);
  6.  
  7. foreach($aInfo[1] AS $iKey => $sWhat)
  8. {
  9. $sWhat = str_replace(':', '', $sWhat);
  10. $aInfos[$sWhat] = $aInfo[2][$iKey];
  11. }
  12. echo '<pre>';
  13. print_r($aInfos); 
  14. echo '</pre>';
  15. ?>
tongue.gif I jak?
Macok
Niewiem jak mam dziekowac snitch.gif
Powiedz jeszcze tylko jak te array wywalic tongue.gif
Zeby sie wyswietlalo:
Kod
    [Name] => Trok
    [Sex] => male
    [Profession] => Knight
    [Level] => 11
    [World] => Tenebra
    [Residence] => Carlin
    [Last login] => Oct 10 2006, 06:26:28 CEST
    [Account Status] => Free Account

A nie
Kod
Array
(
    [Name] => Trok
    [Sex] => male
    [Profession] => Knight
    [Level] => 11
    [World] => Tenebra
    [Residence] => Carlin
    [Last login] => Oct 10 2006, 06:26:28 CEST
    [Account Status] => Free Account
)
bim2
foreach" title="Zobacz w manualu php" target="_manual za duzo gotowców biggrin.gif
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.