Avatar billede n-emy Nybegynder
19. august 2011 - 19:06 Der er 14 kommentarer og
1 løsning

Deaktivere scripts i file_get_contents

Hej derude

Jeg har fundet et script på nettet jeg har prøvet at tilpasse lidt. Det scriptet skal gøre er at hente en hjemmeside, fjerne alle scripts og udskrive den efterfølgende, men den fjerner ikke scriptsne af en eller anden grund, nogen der kan komme med et bud eller løsning? :)


$page = file_get_contents('www.example.com');

echo strip_javascript($page, 0);

function strip_javascript($filter, $allowed=0){
$filter = preg_replace("/<script.*?>.*?<\/script>/i", "", $filter);
return $filter;
}
Avatar billede erikjacobsen Ekspert
19. august 2011 - 19:42 #1
Det er ikke testet, men:

$filter = preg_replace("/<script.*?>.*?<\/script>/im", "", $filter);
Avatar billede coderdk Praktikant
19. august 2011 - 20:29 #2
"/<script.*?>.*?<\/script>/ig"

tror jeg
Avatar billede n-emy Nybegynder
19. august 2011 - 22:29 #3
Har prøvet begge to, førstnævnte får stadig siden til at redirecte, det gør coderdks ikke men den viser ikke siden. Min kode ser sådan ud nu:

$page = file_get_contents('http://www.eksperten.dk/spm/945430');
$printpage = strip_javascript($page);
echo"$printpage";
function strip_javascript($filter){
$filter = preg_replace("/<script.*?>.*?<\/script>/ig", "", $filter);
}

Nogen der kan fortælle hvorfor?
Avatar billede Slettet bruger
19. august 2011 - 23:54 #4
Der KAN jo ligge scripts andre steder end mellem <script> tags - <body onload='alert("her f.eks.")'>

Hvilken side er det du "suger" ?
Avatar billede n-emy Nybegynder
20. august 2011 - 00:07 #5
Det er på dbu.dk, deres udskrift sider (de kommer i popups og man bliver redirected hvis man besøger den direkte)

F.eks. denne: http://www.dbu.dk/turneringer_og_resultater/resultatsoegning/srprint/print_clubTeam.aspx?clubid=1587&type=1

Kildekoden ser således ud:





<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">

<head>

    <title>Print</title>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    <meta name="CODE_LANGUAGE" content="C#" />

    <meta name="vs_defaultClientScript" content="JavaScript" />

    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5" />

    <link href="/Resources/Integration/css/sportssys_sr_print.css" rel="stylesheet" type="text/css" />

    <link href="/sitecore/shell/applications/analytics/visitor.css.aspx" rel="stylesheet" type="text/css" />

</head>

<body>

    <form name="mainform" method="post" action="/turneringer_og_resultater/resultatsoegning/srprint/print_clubTeam.aspx?clubid=1587&amp;type=1" id="mainform">

<div>

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTgyNjUwMDMxNA9kFgQCAQ8WAh4EVGV4dAUFUHJpbnRkAgUQZGQWAgIBD2QWAmYPZBYCZg9kFgJmDw8WBB4NSGVhZGxpbmUxVGV4dAUMSG9sZG92ZXJzaWd0Hg1IZWFkbGluZTJUZXh0BRZWYWxieSBCb2xka2x1YiBhZiAxOTEyZBYCAgEPZBYIAgEPFgQeCWlubmVyaHRtbAUMSG9sZG92ZXJzaWd0HgdWaXNpYmxlZ2QCAw8WBB8DBRZWYWxieSBCb2xka2x1YiBhZiAxOTEyHwRnZAIFDxYCHwNlZAIHDxYCHwNlZGQFtKiRPMbpTTt5d/DaTQh0gd82jQ==" />

</div>



    <div id="page">

       

 

  <script language="javascript" type="text/javascript">

      if (window.opener) {

          var sUrl;

          var bAllowAccess;

          bAllowAccess = false

          sUrl = window.opener.location.toString();



          if (sUrl.indexOf("http://localhost") > -1)

              bAllowAccess = true;



          if (sUrl.indexOf("dbusjaelland.dk") > -1)

              bAllowAccess = true;



          if (sUrl.indexOf("dbujylland.dk") > -1)

              bAllowAccess = true;



          if (sUrl.indexOf("dbufyn.dk") > -1)

              bAllowAccess = true;



          if (sUrl.indexOf("dbukoebenhavn.dk") > -1)

              bAllowAccess = true;



          if (sUrl.indexOf("dbulolland-falster.dk") > -1)

              bAllowAccess = true;



          if (sUrl.indexOf("dbubornholm.dk") > -1)

              bAllowAccess = true;



          if (sUrl.indexOf("dbu.dk") > -1)

              bAllowAccess = true;

         

          if (!bAllowAccess)

            window.location = 'http://www.dbu.dk';                   

      }

     

      else

          window.location = 'http://www.dbu.dk';

     

  </script>

<div id="ctl03_PrintTop_HeadlineArea" class="HeadlineArea">

  <h2 id="ctl03_PrintTop_TopHeadline1">Holdoversigt</h2>

  <h1 id="ctl03_PrintTop_TopHeadline2">Valby Boldklub af 1912</h1>

 

 

</div>



<table cellpadding="0" cellspacing="0" class="srDefault srClubTeam"><tr><th class="c01">Rækkenavn</th><th class="c02">Puljenavn</th><th class="c03">Union</th><th class="c04">Køn</th><th class="c05">Aldersgruppe</th></tr><tr class="odd"><td class="c01">Veteran-LP</td><td class="c02"></td><td class="c03">DBU</td><td class="c04">Herrer</td><td class="c05">Veteran</td></tr><tr class="even"><td class="c01">Træningskampe Oldboys/Veteran</td><td class="c02">Pulje 1</td><td class="c03">DBUS</td><td class="c04">Herrer</td><td class="c05">Oldboys/girls</td></tr><tr class="odd"><td class="c01">Serie 2, P4 11/12</td><td class="c02">P4</td><td class="c03">DBUK</td><td class="c04">Herrer</td><td class="c05">Senior</td></tr><tr class="even"><td class="c01">Serie 2, P5/6 E</td><td class="c02">P6 E</td><td class="c03">DBUK</td><td class="c04">Herrer</td><td class="c05">Senior</td></tr><tr class="odd"><td class="c01">Serie 3, P8/11 E</td><td class="c02">P11 E</td><td class="c03">DBUK</td><td class="c04">Herrer</td><td class="c05">Senior</td></tr><tr class="even"><td class="c01">Serie 3, P8/11 E</td><td class="c02">P8 E</td><td class="c03">DBUK</td><td class="c04">Herrer</td><td class="c05">Senior</td></tr><tr class="odd"><td class="c01">Serie 4, P13/16 E</td><td class="c02">P14 E</td><td class="c03">DBUK</td><td class="c04">Herrer</td><td class="c05">Senior</td></tr><tr class="even"><td class="c01">Serie 5, P18/22 E</td><td class="c02">P20 E</td><td class="c03">DBUK</td><td class="c04">Herrer</td><td class="c05">Senior</td></tr><tr class="odd"><td class="c01">7'eren (pokal Herrer)</td><td class="c02"></td><td class="c03">DBUK</td><td class="c04">Herrer</td><td class="c05">Senior</td></tr><tr class="even"><td class="c01">7'eren (pokal Kvinder)</td><td class="c02"></td><td class="c03">DBUK</td><td class="c04">Kvinder</td><td class="c05">Senior</td></tr><tr class="odd"><td class="c01">7MH 2 E</td><td class="c02">P154 E</td><td class="c03">DBUK</td><td class="c04">Herrer</td><td class="c05">Senior</td></tr><tr class="even"><td class="c01">7MK M E</td><td class="c02">P160 E</td><td class="c03">DBUK</td><td class="c04">Kvinder</td><td class="c05">Senior</td></tr><tr class="odd"><td class="c01">7MK 2 E</td><td class="c02">P162 E</td><td class="c03">DBUK</td><td class="c04">Kvinder</td><td class="c05">Senior</td></tr><tr class="even"><td class="c01">VET2</td><td class="c02">P41</td><td class="c03">DBUK</td><td class="c04">Herrer</td><td class="c05">Veteran</td></tr><tr class="odd"><td class="c01">7M Super-Masters 1E</td><td class="c02">P195</td><td class="c03">DBUK</td><td class="c04">Herrer</td><td class="c05">Supermasters</td></tr><tr class="even"><td class="c01">U17 Drenge 7M E (95-96)</td><td class="c02">P101 E</td><td class="c03">DBUK</td><td class="c04">Herrer</td><td class="c05">U-17</td></tr></table>



    </div>

    </form>

</body>

</html>
Avatar billede erikjacobsen Ekspert
20. august 2011 - 00:18 #6
Du skal nok bruge
  "/<script.*?>.*?<\/script>/igs"
Avatar billede erikjacobsen Ekspert
20. august 2011 - 00:18 #7
Ups. Mener:

  "/<script.*?>.*?<\/script>/is"
Avatar billede n-emy Nybegynder
20. august 2011 - 12:25 #8
Det virker stadig ikke :/ Den udskriver slet ikke siden
Avatar billede erikjacobsen Ekspert
20. august 2011 - 12:31 #9
http://n0p.com/945430.php indeholder nedenstående. Er det ikke det du vil?

<?php
$page = file_get_contents('http://www.dbu.dk/turneringer_og_resultater/resultatsoegning/srprint/print_clubTeam.aspx?clubid=1587&type=1');
$filter = preg_replace("/<script.*?>.*?<\/script>/is", "", $page);
print $filter;
?>
Avatar billede erikjacobsen Ekspert
20. august 2011 - 12:32 #10
Hmm. Prøver lige igen.

http://n0p.com/945430.php indeholder nedenstående. Er det ikke det du vil?

<?php
$page = file_get_contents('http://www.dbu.dk/turneringer_og_resultater/resultatsoegning/srprint/print_clubTeam.aspx?clubid=1587&type=1');
$filter = preg_replace("/<script.*?>.*?<\/script>/is", "", $page);
print $filter;
?>
Avatar billede olebole Juniormester
20. august 2011 - 14:16 #11
<ole>

Hvis du skal udskrive DBU's hjemmeside eller dele deraf, så er den smarteste fremgangsmåde at kontakte DBU og få dem til at oprette et feed med de data, du ønsker - befrænset af, hvad de ønsker at lade dig bruge.

På den måde slipper du også for evt. retssager og/eller beskyldninger for parasitær adfærd  =)

/mvh
</bole>
Avatar billede Slettet bruger
20. august 2011 - 19:44 #12
Med oleboles forbehold in mente, hvorfor så ikke gå efter  <h1> Guldet </div> i stedet for <script> ?
Avatar billede n-emy Nybegynder
21. august 2011 - 17:12 #13
@erikjacobsen:
Det virkede åbenbart at sætte scriptet udenfor en funktion :)
Mange tak - svar? :)

@ole:
Klubben (jeg laver hjemmesiden for) har været i kontakt med dbu, men de mente det var for meget besvær at lave et feed bare fordi en enkelt klub bad om det

@Tom:
Forstår ikke helt hvad du mener :)
Avatar billede erikjacobsen Ekspert
21. august 2011 - 18:25 #14
Jeg samler slet ikke på point, tak. (Og det er ikke første gang jeg bytte om på m og s - de sidder også tæt på tastaturet, hehe)
Avatar billede n-emy Nybegynder
21. august 2011 - 19:48 #15
Oki doke så tager jeg dem selv, men mange tak :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester