Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][HTML] jak wstawić fragment strony?
komanch
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 17.08.2006

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


Chce na moją stronę wstawić fragment innej strony, ale tylko fragment, w moim przypadku chcę samą tabelę ze strony z zewnątrz.
Użyłem:
Kod
<iframe name="demo" src="http://hockey.powerplaymanager.com/pl/liga.html?data=a-ow-iv-28" width="530" height="300" frameborder="0" marginwidth="0" marginheight="0" scrolling="auto"></iframe>

Co moge zrobić żeby wyświetlał mi się tylko taki fragment strony który chcę? czyli np samą tabelę.

Ten post edytował komanch 23.02.2009, 19:45:20
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 16)
peter13135
post
Post #2





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


proponuje curl
Go to the top of the page
+Quote Post
komanch
post
Post #3





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 17.08.2006

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


Dzięki, mógłbys mi napisać jakąś przykładową linijkę z użyciem curl?
Go to the top of the page
+Quote Post
peter13135
post
Post #4





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


prosze bardzo




  1. <?php
  2. $curl = curl_init();
  3. curl_setopt($curl, CURLOPT_URL, "http://www.google.pl/");
  4. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  5. $strona = curl_exec($curl);
  6. ?>





teraz $strona to źródło strony google.pl, za pomocą wyrażen regularnych możesz wyodrębnić np tabelkę ;]
Go to the top of the page
+Quote Post
komanch
post
Post #5





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 17.08.2006

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


Dzięki, ale chyba jednak to dla mnie za trudne (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Mam coś takiego, index.php:
  1.  
  2. <meta http-equiv="Content-Language" content="pl">
  3. <meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
  4. <title>Strona w budowie</title>
  5. </head>
  6.  
  7. <body bgcolor="#000000">
  8.  
  9. <p><font color="#CCCCCC" face="Verdana">Strona w budowie ........</font></p>
  10.  
  11.  
  12. <?php $curl = curl_init();
  13. curl_setopt($curl, CURLOPT_URL, "http://hockey.powerplaymanager.com/pl/liga.html?data=a-ow-iv-28");
  14. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  15. $strona = curl_exec($curl);
  16. ?>
  17.  
  18.  
  19.  
  20. </body>
  21.  
  22. </html>


i nie widzę efektu (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) dlaczego?
http://www.hdt.unl.pl/
Go to the top of the page
+Quote Post
webdevil
post
Post #6





Grupa: Zarejestrowani
Postów: 82
Pomógł: 18
Dołączył: 2.02.2009

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


daj przed ?> :
echo $strona;

musisz wyświetlić to co pobrałeś.

Ten post edytował webdevil 16.02.2009, 21:24:17
Go to the top of the page
+Quote Post
erix
post
Post #7





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




Cytat
musisz wyświetlić to co pobrałeś.

Albo wywalić:
  1. <?php
  2. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  3. ?>
Go to the top of the page
+Quote Post
peter13135
post
Post #8





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


no ale on chce tylko fragment, a więc ma zmienną $strona, potem trzeba ją przelecieć przez wyrażenie regularne, ale niewiem jaki to ma być fragment strony
Go to the top of the page
+Quote Post
komanch
post
Post #9





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 17.08.2006

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


Cytat(peter13135 @ 16.02.2009, 22:53:27 ) *
no ale on chce tylko fragment, a więc ma zmienną $strona, potem trzeba ją przelecieć przez wyrażenie regularne, ale niewiem jaki to ma być fragment strony

Super, działa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
http://www.hdt.unl.pl/
a co do fragmentu, to interesuje mnie sama tabela, tak jak poniżej, jak ją wyłuskać? (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif)

(IMG:http://img145.imageshack.us/img145/9694/tabtestxr7.jpg)
Go to the top of the page
+Quote Post
peter13135
post
Post #10





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


np preg match all '/<table>[[:print:]]</table>/'
Go to the top of the page
+Quote Post
komanch
post
Post #11





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 17.08.2006

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


coś takiego?
chyba źle wstawiłem bo nie działa (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif)
  1. <?php
  2. $curl = curl_init();
  3. curl_setopt($curl, CURLOPT_URL, "http://hockey.powerplaymanager.com/pl/liga.html?data=a-ow-iv-28");
  4. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  5. $strona = curl_exec($curl);
  6. echo $strona;
  7. preg match all '/<table>[[:print:]]</table>/';
  8. ?>
Go to the top of the page
+Quote Post
zegarek84
post
Post #12





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


  1. <?php
  2. $curl = curl_init();
  3. curl_setopt($curl, CURLOPT_URL, "http://hockey.powerplaymanager.com/pl/liga.html?data=a-ow-iv-28");
  4. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  5. $strona = curl_exec($curl);
  6. $wyr='/<tr class=[^<]+?<td class=[^>]+?>([0-9]+?) </td>[^<]+?<td class='name'><img[^<]+?<a href=[^>]+?>([^<]+?)</a>(?: <img[^<]+?)?</td>[^<]+?<td class=[^>]+?> ([0-9]+?)</td>[^<]+?<td> ([0-9]+?)</td>[^<]+?<td class=[^>]+?> ([0-9]+?)</td>[^<]+?<td> ([0-9]+?)</td>[^<]+?<td class=[^>]+?> ([0-9]+?)</td>[^<]+?<td> ([0-9]+?)</td>[^<]+?<td class=[^>]+?> ([0-9]+?)</td>[^<]+?<td> ([^<]+?)</td>[^<]+?<td class=[^>]+?>([^<]+?)</td>/i';
  7. preg_match_all ($wyr,$strona,$matches);
  8. $ile_dopasowan=count($matches);
  9. $ile_razy=count($matches[1]);
  10. echo '<table style="text-align: right;">';
  11. for($i=0;$i<$ile_razy;++$i){echo '<tr>';
  12. for($j=1;$j<$ile_dopasowan;++$j){echo '<td>'.$matches[$j][$i].'</td>';}
  13. echo '</tr>';}
  14. echo '</table>';
Go to the top of the page
+Quote Post
peter13135
post
Post #13





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


Cytat(komanch @ 18.02.2009, 17:33:51 ) *
coś takiego?
chyba źle wstawiłem bo nie działa (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif)
  1. <?php
  2. $curl = curl_init();
  3. curl_setopt($curl, CURLOPT_URL, &#092;"http://hockey.powerplaymanager.com/pl/liga.html?data=a-ow-iv-28\");
  4. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  5. $strona = curl_exec($curl);
  6. echo $strona;
  7. preg match all '/[[:print:]]/';
  8. ?>


oczywiście że źle, ja ci dałem tylko przykładową nazwę funkcji, oraz oraz ten ciąg znaków do wyodrębniania tabeli, poczytaj o funkcji preg_match_all to to łatwo skminisz se kod
Go to the top of the page
+Quote Post
komanch
post
Post #14





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 17.08.2006

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


Wstawiłem to co polecił kolega @zegarek84
efekt: http://www.hdt.unl.pl/ (IMG:http://forum.php.pl/style_emoticons/default/blink.gif)
  1.  
  2. <meta http-equiv="Content-Language" content="pl">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  4. <title>Strona w budowie</title>
  5. </head>
  6.  
  7. <body bgcolor="#000000">
  8. <p><font color="#CCCCCC" face="Verdana">Strona w budowie ........</font></p>
  9.  
  10. <?php $curl = curl_init();
  11. curl_setopt($curl, CURLOPT_URL, "http://hockey.powerplaymanager.com/pl/liga.html?data=a-ow-iv-28");
  12. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  13. $strona = curl_exec($curl);
  14.  
  15. $wyr='/<tr class=[^<]+?<td class=[^>]+?>([0-9]+?) <\/td>[^<]+?<td class=\'name'><img[^<]+?<a href=[^>]+?>([^<]+?)<\/a>(?:
  16. <img[^<]+?)?<\/td>[^<]+?<td class=[^>]+?> ([0-9]+?)<\/td>[^<]+?<td> ([0-9]+?)<\/td>[^<]+?<td class=[^>]+?> ([0-9]+?)<\/td>[^<]+?<td>
  17. ([0-9]+?)<\/td>[^<]+?<td class=[^>]+?> ([0-9]+?)<\/td>[^<]+?<td> ([0-9]+?)<\/td>[^<]+?<td class=[^>]+?> ([0-9]+?)<\/td>[^<]+?<td>
  18. ([^<]+?)<\/td>[^<]+?<td class=[^>]+?>([^<]+?)<\/td>/i';
  19.  
  20. preg_match_all ($wyr,$strona,$matches);
  21. $ile_dopasowan=count($matches);
  22. $ile_razy=count($matches[1]);
  23. echo '<table style="text-align: right;">';
  24. for($i=0;$i<$ile_razy;++$i){echo '<tr>';
  25. for($j=1;$j<$ile_dopasowan;++$j){echo '<td>'.$matches[$j][$i].'</td>';};
  26. echo '</tr>';};
  27. echo '</table>';
  28. ?>
  29.  
  30. </body>
  31.  
  32. </html>
Go to the top of the page
+Quote Post
zegarek84
post
Post #15





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


a czy na localhost to działa u Ciebie?? - u mnie działa... jeśli działa na localhost to zrób buforowanie wyjścia...

ps wyniki zapisz do jakiejś bazy danych i aktualizuj ją okresowo i na strone z niej wrzucaj to będziesz miał duuużo szybciej - mogą to być pliki tekstowe...

EDIT
http://pl.wikibooks.org/wiki/PHP/Obsł...ia_wyj.C5.9Bcia
POCZĄTEK I KONIEC BUFORU TAK JAK NA TEJ STRONIE W PRZYKŁADZIE:
http://www.mnms.pl/problem-z-buforowaniem-...lready-sent-by/

cały skrypt się dłuuuugo wykonuje więc na 99% trzeba to zbuforować....

czyli:
Kod
<?php
ob_start();
?>

<html>
<head>
<meta http-equiv="Content-Language" content="pl">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Strona w budowie</title>
</head>

<body bgcolor="#000000">
<p><font color="#CCCCCC" face="Verdana">Strona w budowie ........</font></p>

<?php $curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://hockey.powerplaymanager.com/pl/liga.html?data=a-ow-iv-28");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$strona = curl_exec($curl);

$wyr='/<tr class=[^<]+?<td class=[^>]+?>([0-9]+?) <\/td>[^<]+?<td class=\'name\'><img[^<]+?<a href=[^>]+?>([^<]+?)<\/a>(?:
<img[^<]+?)?<\/td>[^<]+?<td class=[^>]+?> ([0-9]+?)<\/td>[^<]+?<td> ([0-9]+?)<\/td>[^<]+?<td class=[^>]+?> ([0-9]+?)<\/td>[^<]+?<td>
([0-9]+?)<\/td>[^<]+?<td class=[^>]+?> ([0-9]+?)<\/td>[^<]+?<td> ([0-9]+?)<\/td>[^<]+?<td class=[^>]+?> ([0-9]+?)<\/td>[^<]+?<td>
([^<]+?)<\/td>[^<]+?<td class=[^>]+?>([^<]+?)<\/td>/i';

preg_match_all ($wyr,$strona,$matches);
$ile_dopasowan=count($matches);
$ile_razy=count($matches[1]);
echo '<table style="text-align: right;">';
for($i=0;$i<$ile_razy;++$i){echo '<tr>';
for($j=1;$j<$ile_dopasowan;++$j){echo '<td>'.$matches[$j][$i].'</td>';};
echo '</tr>';};
echo '</table>';
?>

</body>
</html><?php
ob_end_flush();
?>


Ten post edytował zegarek84 20.02.2009, 16:23:45
Go to the top of the page
+Quote Post
DREEMus
post
Post #16





Grupa: Zarejestrowani
Postów: 286
Pomógł: 34
Dołączył: 4.09.2008
Skąd: Wrocław

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


Cytat(komanch @ 18.02.2009, 16:33:51 ) *
  1. <?php
  2. preg match all '/<table>[[:print:]]</table>/';
  3. ?>

A od kiedy funkcje piszemy bez _ (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
komanch
post
Post #17





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 17.08.2006

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


Cytat(zegarek84 @ 20.02.2009, 15:57:15 ) *
a czy na localhost to działa u Ciebie??


Niestety na localhost (krasnal) efekt taki jak na stronie http://www.hdt.unl.pl/
czyli nie działa (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif)

Czuję, że nie poradze sobie z tym, chciałbym spróbować inaczej jesli mozna.
Chciałem wrócić do iframe
Kod
<iframe name="demo" src="http://hockey.powerplaymanager.com/pl/liga.html?data=a-ow-iv-28" width="530" height="300" frameborder="0" marginwidth="0" marginheight="0" scrolling="auto"></iframe>

Teraz moje pytanie, czy można tak wpisać w kodzie, żeby belki przesuwające okienko (importowanej strony) w pionie i w poziomie ustawić od razu w takim położeniu, aby w okienku było widoczne to co chcę, np moja w/w tabela?
Go to the top of the page
+Quote Post

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: 3.10.2025 - 00:39