Avatar billede alaflam Nybegynder
31. oktober 2005 - 19:16 Der er 18 kommentarer og
1 løsning

javascript og php

hejsa,

er der nogen der har en ide hvordan php kode kan kalde en javascript kode, som returenere tekst ?
Avatar billede jakobdo Ekspert
31. oktober 2005 - 19:20 #1
Hvad er du præcist du ønsker?
Kan du komme med lidt mere info?
Avatar billede alaflam Nybegynder
31. oktober 2005 - 19:37 #2
Hej igen Jakobdo, hvad med vi tilføjer hinandens msn :P
så er der altid live support herfra :)

Jeg har fundet ud af den hurtigest måde at hente remote file/side er ved at bruge AJAX.

Jeg har lavet en javascript kode som ser sådan ud (javascript.php)

<script language="javascript" type="text/javascript">
var req;
var href = document.location.href;
var i = href.lastIndexOf('?') + 1;
var url = href.substring(i);

function connect(url)
{   
    try
    {
        //if (this.secure && netscape && netscape.security.PrivilegeManager.enablePrivilege)
        //{
            netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
            netscape.security.PrivilegeManager.enablePrivilege("UniversalPreferencesRead");
        //}
    }
    catch (e) { document.write("Persmission: " + e); }

    req.onreadystatechange = onReadyStateChange;
    req.open('GET', url, true);
    req.send('');
}
function onReadyStateChange()
{
    if (req.readyState == 4)
    {
        if (req.status == 200)
        {
            document.write(req.responseText);
        }
        else
        {
            document.write("Error: "+req.statusText);
        }
    }
}
function onLoad()
{
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer")
    {
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else
    {
        req = new XMLHttpRequest();
    }
}
document.onLoad = onLoad();

if ( req )
{
    connect(url);
}
</script>

den her javascript modtager en query string som ser sådan ud

javascript.php?http://www.google.com

så henter den alt html content/data fra google.com

Nu vil jeg gerne kører en løkker af sider og gemme dem i en table.

eks. (Det vil være fedt hvis man kunne det)
<?php

$arr = array('http://domain.com', 'http://xxx.com'); //osv
foreach($arr as $val)
{
$a = file('javascript.php?'.$val);
insert into table $a osv....
}

?>

Men problemet er at file ikke tager imod querystring, ellers så havde jeg jo løst problemet, men nu kan jeg ikke bruge den, eller file_get_contents, jeg vil ikke bruge fopen, da så kan jeg ligeså godt bruge den fra starten til at requeste hjemmesider med. og den funktion er MEGET LANGSOM.

fopen => tog flere sekunder, nogen gange op til 24 sekunder,
file => tog ikke imod querystring,
file_get_contents => tog ikke imod querystring

så min sidste løsning er endten at bruge fopen (langsom måde) eller bruge (ajax) hurtigt.
Avatar billede alaflam Nybegynder
31. oktober 2005 - 19:46 #3
<?php
    ob_start();
    readfile('java.php');
    $a = ob_get_contents();
    ob_clean();
    echo strlen($a);
?>

på den her måde får jeg ikke fat i hvad javascript printer ud på skærm, da javascript aldrig kører på den måde.
Avatar billede olebole Juniormester
01. november 2005 - 11:07 #4
<ole>

Det er lidt uklart, hvad det er, du gerne vil gøre - men at kalde det, du har gang i, AJAX, virker nu lidt som misforståelse  :)

/mvh
</bole>
Avatar billede olebole Juniormester
01. november 2005 - 11:10 #5
- i AJAX-applikationer returneres normalt kun rå data - f.eks. i form af XML eller JSON. Det, du prøver, minder mere om screen-scraping ... men det er som sagt ikke helt til at gennemskue  :)
Avatar billede alaflam Nybegynder
01. november 2005 - 11:51 #6
tja...det er lige kompliceret at få php alene til at requeste hjemmesider hurtigt.

nu har jeg prøvet det med C#, den henter hjemmesider meget hurtigt, og er også multithreaded.

olebole, nu har jeg ikke rigtige kigget på den chat du har lavet, men du har ikke brugt ajax, vel?

det kan være jeg skulle lave en lille simpel chat med ajax, har set andre der kører rigtige hurtigt og godt :)
Avatar billede olebole Juniormester
01. november 2005 - 13:09 #7
At hente data via en skjult (i)frame kan også være AJAX. AJAX behøver ikke nødvendigvis gøre brug af XML.
Mit gamle 'chat-skelet' skrev beskederne i HTML-tags med korte navne (i en skjult iframe), som jeg så brugte DOM til at formatere og vise indholdet af. Man kan sige, at HTML'en blev brugt på en lidt 'XML-agtig' måde. Den kunne udmærket betegnes som en AJAX-applikation  :)
Avatar billede alaflam Nybegynder
01. november 2005 - 14:40 #8
Jeg er med nu,

XMLHttpRequest => er bare et object som kan bruges til at sende frem og tilbage (content).

Ajax er bare en betening af forbindelse mellem to sider eller forbindelse hvis man kan sige det.
Avatar billede alaflam Nybegynder
01. november 2005 - 14:56 #9
betegning
Avatar billede olebole Juniormester
01. november 2005 - 15:18 #10
AJAX står for 'Asynchronous JavaScript and XML' og er en samling af forskellige teknikker, der kombineres med det formål at udveksle data mellem browser-klient og server uden skift af hoveddokumentet.

Modsætningen er den traditionelle udveksling af data ved links og/eller formularer - med deraf følgende sideskift.

I AJAX-applikationer bruges altid JavaScript - XML-requests kan anvendes, men bliver det ikke nødvendigvis.
Avatar billede olebole Juniormester
01. november 2005 - 15:21 #11
AJAX er ikke en standard - men et ord for kombinationen af kendte teknikker ... på samme måde som DHTML er et nemt ord for kombinationen af HTML, CSS, DOM og (java)script  :)
Avatar billede olebole Juniormester
01. november 2005 - 15:22 #12
... og så er det pludselig blevet WWW's helt hotte buzzword - selvom teknikken langtfra er ny
Avatar billede alaflam Nybegynder
01. november 2005 - 16:09 #13
Mange tak, nu har jeg ihvertfald forstået det på det rene :)
Avatar billede alaflam Nybegynder
01. november 2005 - 16:10 #14
Du må meget gerne lægge et svar.

Jeg er begyndt at udvikle det kode i C# :)
Avatar billede olebole Juniormester
01. november 2005 - 18:26 #15
Ja, C# har jo den slags indbygget, men ikke alle browsere understøtter XmlHttpRequests (som .net vel anvender sig af) - og så ved jeg faktisk ikke, hvad der sker  :)
Avatar billede olebole Juniormester
01. november 2005 - 18:29 #16
Hvis emnet interesserer dig, kan du læse denne artikel:
    http://www.adaptivepath.com/publications/essays/archives/000385.php

- af en af dem, der 'døbte' AJAX
Avatar billede alaflam Nybegynder
01. november 2005 - 18:49 #17
Avatar billede olebole Juniormester
01. november 2005 - 18:57 #18
- jeg takker for points og håber, du får noget ud af købet  ;o)
Avatar billede alaflam Nybegynder
01. november 2005 - 19:02 #19
Thanks ;)
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