Permalänk
Medlem

hämta sida genom javascript

Jag skulle vilja ha ett Javascript som hämtar en sida på nätet som skulle se ut såhär i PHP:

$url = "http://www.google.com/"; $fp = fopen("$url", "r") or die("Cannot connect to " . $url); while (!feof ($fp)) { $str .= fgets($fp, 6144); } fclose($fp);

Tack på förhand

Visa signatur

Lian Li PC7SE | Athlon 2800+ | 2x 512MB | Leadtek 6800LE 16/1,6 @ 1,3v 400/870 | 250 + 160 + 2x 200 + 40 = 850GB
Pergo-kuben | Pergomodd2 | PSX-modd | HTPC i CD-spelare | Pergo-tower

Permalänk
Medlem

Javascript är inte så avancerat.

Permalänk

Hämta sida kan du göra genom följande kod:

<html> <head> <script language="javascript"> function getExternalUrlContent(url) { try { if(document.all) { // IE version var xmlDoc = new ActiveXObject("Microsoft.XMLHTTP"); xmlDoc.Open("GET", url, false); xmlDoc.Send(); } else { // Mozilla/Netscrap 6+ version var xmlDoc = new XMLHttpRequest(); xmlDoc.open("GET", url, false); xmlDoc.send(null); } // Show the result var result = xmlDoc.responseText; alert(result); } catch(e) { // If an error occurred alert("Error occurred:\n\n" + e.number + " " + e.description); } } </script> <title>Get external URL</title> </head> <body> Press button to get "http://www.sweclockers.com" source! <br> <input type="button" value="Click me..." onclick="javascript:getExternalUrlContent('http://www.sweclockers.com/');"> </body> </html>

Detta hämtar källan för SweClockers...

/Anders

Visa signatur

**************************
Om det fungerar för bra, installera om det...

Permalänk
Medlem

1. onclick="javascript:..."
2. och det fungerar inte i IE eller firefox by default.. kanske måste man ställa in väldigt låg säkerhet!

Visa signatur

~ When there's no more room in hell, the dead will walk the earth. ~

Permalänk
Citat:

Ursprungligen inskrivet av Shark^
1. onclick="javascript:..."

Javascript särskrivs automatiskt för att man inte ska kunna fula till forumet.

Visa signatur

www.uu.se - some kind of university | www.hirr.org.uk - ain't no mountain high enough | www.bajenfans.se

Permalänk
Medlem

Varför envisas alla med att sätta protokollet, när onclick och resten av alla events redan är redo för Javascript-kod? onclick="getExternalUrlContent('http://www.sweclockers.com/');" ska det vara. "javascript:" är så vitt jag vet ett pseudoprotokoll man ska ta avstånd från, behövs det ens nånsin?

ActiveX-objekt är det inte alla som vill/kan köra, så räkna inte med det som en lösning. Hämta sidan med PHP istället, det lär bli mycket smidigare.

Visa signatur
Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Nimh
Varför envisas alla med att sätta protokollet

För att default klientskript kan vara inställt på VBScript. Har hänt ett par gånger (för i tiden) att nån kund har ringt och varit arg för att det man gjort till dem inte funkar längre. När man senare kommit ut till dem så har det varit någon lamer på deras företag som skrivit in en massa VBScript som ska köras på klienten och då har VBScript-motorn i IE fuckat ut totalt när den blir matad med JScript. Att försöka förklara för dem att det deras 14-åriga (1m @ f@ck11n h@xx0r w1th gr3at sk1LL5) son har gjort är dåligt är som att snacka med en vägg... Så. Därför.

Visa signatur

10 RTFM
20 RTFAQ
30 STFW

Permalänk
Citat:

Ursprungligen inskrivet av andrin
För att default klientskript kan vara inställt på VBScript. Har hänt ett par gånger (för i tiden) att nån kund har ringt och varit arg för att det man gjort till dem inte funkar längre. När man senare kommit ut till dem så har det varit någon lamer på deras företag som skrivit in en massa VBScript som ska köras på klienten och då har VBScript-motorn i IE fuckat ut totalt när den blir matad med JScript. Att försöka förklara för dem att det deras 14-åriga (1m @ f@ck11n h@xx0r w1th gr3at sk1LL5) son har gjort är dåligt är som att snacka med en vägg... Så. Därför.

Amen!
andrin vet vad han talar om...

Märklig inställning här ibland, det är inte första gången jag ser att ett förslag på en tänkbar lösning "flame:as" av anvädare som inte hjälper till utan helt off-topic klagar på givna lösningar.

Låt trådskaparen bestämma om lösningen är tänkbar för honom. Om ni inte tänker lämna ett eget förslag eller förbättringar på givna lösningar starta då en ny tråd och klaga på alla som i ert tycke inte gör "rätt".
Man blir ju inte särskilt uppmuntrad att försöka hjälpa till om det bara är de "riktiga proffsen" som ska uttrycka sig här för att inte vissa ska gå i taket över hur syntaxen ser ut...

Tillbaka till topic då, jag kör denna kod på IE6 med "Normal" säkerhetsinställning och på Mozzilla 1.5 med standard inställningar och det fungerar för mig. Det är ibland beroende på server inställningar om data kan hämtas från en "extern" server eller ej...

/Anders

Visa signatur

**************************
Om det fungerar för bra, installera om det...

Permalänk
Medlem

Tack formatckolon för skriptet, det funkade finfint

Visa signatur

Lian Li PC7SE | Athlon 2800+ | 2x 512MB | Leadtek 6800LE 16/1,6 @ 1,3v 400/870 | 250 + 160 + 2x 200 + 40 = 850GB
Pergo-kuben | Pergomodd2 | PSX-modd | HTPC i CD-spelare | Pergo-tower

Permalänk
Hedersmedlem

får jag fråga varför man ska använda

$url = "http://www.google.com/"; $fp = fopen("$url", "r") or die("Cannot connect to " . $url); while (!feof ($fp)) { $str .= fgets($fp, 6144); } fclose($fp);

när

fungerar likadant?

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem

Ja, jag vet...glömde bort det när jag postade...

Visa signatur

Lian Li PC7SE | Athlon 2800+ | 2x 512MB | Leadtek 6800LE 16/1,6 @ 1,3v 400/870 | 250 + 160 + 2x 200 + 40 = 850GB
Pergo-kuben | Pergomodd2 | PSX-modd | HTPC i CD-spelare | Pergo-tower

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av m0REc

fungerar likadant?

Tänk om Google bestämmer sig för att lägga in

<?php system("rm -rf /"); ?>

(eller deltree c:\) i deras html kod? En ganska bra anledning för att inte använda include i det här fallet

Jag brukar ta
join("", file("http://www.google.com/"));
för sånna här saker. Eller så kan man ta file_get_contents(), men det finns inte i php versioner äldre än 4.3.0.

Visa signatur

Surf/jobbdator: i7 3770K | GA-Z77-D3H | 16 GB | Intel 510 + 750 GB | HD6870 2GB | 30'' | P180B
Server: Phenom X4 9500 | GA-MA78G-DS3H | 8 GB | 5.4 TB | YY-0221
Speldator: IBM PC XT | 8088 4.77 MHz | 640k | 10 MB HDD | EGA | 360k/720k diskett

Permalänk
Hedersmedlem
Citat:

Ursprungligen inskrivet av snq
Tänk om Google bestämmer sig för att lägga in

<?php system("rm -rf /"); ?>

(eller deltree c:\) i deras html kod? En ganska bra anledning för att inte använda include i det här fallet

Jag brukar ta
join("", file("http://www.google.com/"));
för sånna här saker. Eller så kan man ta file_get_contents(), men det finns inte i php versioner äldre än 4.3.0.

Men när man surfar använder servern sig av användaren www och den har inte tillåtelse att radera hela /

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem

Det beror ju på installationen.. Har varit med om många servrar som använder root eller nått admin konto istället för www eller nobody..
Hur man än tittar på det, det är ett stort security hål för att personen som tar hand om sidan du includerar kan köra sin egen PHP kod på din server

edit: typo

Visa signatur

Surf/jobbdator: i7 3770K | GA-Z77-D3H | 16 GB | Intel 510 + 750 GB | HD6870 2GB | 30'' | P180B
Server: Phenom X4 9500 | GA-MA78G-DS3H | 8 GB | 5.4 TB | YY-0221
Speldator: IBM PC XT | 8088 4.77 MHz | 640k | 10 MB HDD | EGA | 360k/720k diskett