Pagina 1 di 6 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 55
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    163

    trasformare asp in HTML

    Mi spiego, ho realizzato una procedura che "compila" il contenuto di alcune pagine, andandoli a prendere da un database: esempio il titolo viene preso da un record etc, per cui al posto del titolo, ci sarà una inclusione del tippo <%= xtxt_titolo %>, per cui quando la pagina viene interpretata dal server, metterà il valore di xtxt, etc.

    Ora il passo successivo è che vorrei, partendo da questa premessa, far diventare quete pagine asp, delle pagine html, prendendo quindi al posto delle inclusioni il contenuto reale.
    Pensavo di farlo con open file, leggere la pagina e riscriverla con tutti i contenuti, il problema è che anche open file legge (riga per riga) ciò che c'è scritto, senza interpretarlo.
    Servirebbe poter leggere la pagina come se fossi con IE, tasto dx del mouse, HTML, etc.

    Avete idea di come fare ?

  2. #2
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    Spiegati meglio.

    Prendi del codice asp da un database
    Lo esegui con execute o Execute global

    Poi ?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    163

    ecco il codice..

    questa è la pagina che vogliore leggere:
    ************************************************** **********
    <%@ language = vbscript %>
    <% option explicit %>

    <html>

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <title>Nuova pagina 2</title>
    </head>

    <body>





    Sono le <%= date%>

    </body>

    </html>
    ************************************************** ***************


    partendo da questa pagina, vorrei poter scriverne un'altra, (leggendo riga per riga e scrivendo riga per riga sul nuovo file, con la data reale al posto dell'inclusione asp <%= date %>, spero di essere stato più chiaro.

    Grazie.

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Devi usare XMLHTTP.
    Ti legge il contenuto (source) della pagina.
    A quel punto con FSO lo metti in una pagina con HTML

    Roby

  5. #5
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    Ci sono diversi modi.
    Il più veloce da implementare è sicuramente quello che ti consiglia roby.

    Naturalmente, tu devi :

    Chiedere il campo contente il codice.
    Creare un nome file temporaneo con estensione asp (TempFileName)
    Salvare il file.
    Richiedere il file con msxml
    Salvare l'output.
    Cancellare il file temporaneo

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    163

    scusate....l'ignoranza

    cosa è ? XMLHTTP , un oggetto? un'applicazione o che ?

    grazie.

  7. #7
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Un oggetto. Cerca nel forum.

    Roby

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    163

    scusate ancora

    vedo di spiegarmi meglio questa volta.

    Ho la semplice (non so se lo sia davvero o meno) necessità di trasformare una pagina asp (con contenuti quindi dinamici, come ad esempio la data) in un semplice file di testo/html, dove, ovviamente, non ci siano più inclusioni asp (lato server), in quanto i contenuti sono parte integrante della pagina stessa.
    Tutto qui. Pensavo di leggere e scrivere riga per riga, ma ho provato e non va.

  9. #9
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ti ho già risposto.
    Tramite l'oggetto XMLHTTP ottieni una variabile che contiene esattamente quello che vedresti usando il tasto destro del browser sulla tua pagina web.
    Se questa variabile la copi in un file dandogli estensione .html il gioco è fatto.


    Roby

  10. #10
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    Il tuo programma dovrebbe essere + o meno così :

    codice:
    Function GetUrl(Url)
    Dim Http
    	Set Http = Server.CreateObject("MSXML2.ServerXMLHTTP.4.0")
    	Http.open "GET",Url,False
    	Http.Send()
    	GetUrl = Http.ResponseText
    	Set Http=Nothing
    End Function
    
    Function WriteFile(byRef Fso,Path,Content)
    Dim File
    	Set File = Fso.OpenTextFile(Path,2,true)
    	File.Write Content
    	File.Close()
    	Set File = Nothing	
    End Function
    
    Function GetHtml(Folder,Content)
    Dim Fso,FileName,Path,ServerName,ServerPath,PathURL
    	
    	'Testo se la variabile folder ha il carattere \ finale
    	if Folder<>"" then if Mid(Folder,Len(Folder),1)<>"\" then Folder = Folder & "\"
    	
    	'Initializzo Variabili
    	ServerName = "http://" & Request.ServerVariables("SERVER_NAME") & "/"
    	ServerPath = Request.ServerVariables("APPL_PHYSICAL_PATH")
    	
    	'Creazione Fso
    	Set Fso = Server.CreateObject("Scripting.FileSystemObject")
    	
    	'Persorso Temporaneo del file
    	Path = Server.MapPath(Folder & Fso.getTempName & ".asp")
    	
    	'Scrittura del file
    	WriteFile Fso,Path,Content
    	
    	'Trasformo il percorso fisico in url
    	PathURL = Replace(Path,ServerPath,ServerName)
    	
    	'Chiamo getUrl che mi restituisce l'html
    	GetHTML = GetUrl(PathURL)
    	
    	'Cancello il file
    	Fso.DeleteFile Path,True
    	Set Fso = Nothing
    	
    End Function
    
    Response.Write ( GetHTML(".","<" & "%Response.Write(""Ciao"") %" & ">") )
    Naturalmente questo è un'esempio.

    Tu richiamera la funzione GetHTML passandogli la directory dove salvare il file e il valore del recordset

    codice:
    GetHTML("include\",Rs("ContenutoASP"))
    Il file verrà salvato nella percorso relativo include\ e verrà eseguito Rs("ContenutoASP")

    La funzione ti restituisce l'html della pagina.

    Passandogli un nome file di destinazione, puoi salvare direttamente il file dalla funzione GetHTML senza fartelo restituire

    codice:
    Sub AspToHtml(Folder,Content,DestFile)
    Dim Fso,FileName,Path,ServerName,ServerPath,PathURL,HTML
    	if Folder<>"" then if Mid(Folder,Len(Folder),1)<>"\" then Folder = Folder & "\"
    	ServerName = "http://" & Request.ServerVariables("SERVER_NAME") & "/"
    	ServerPath = Request.ServerVariables("APPL_PHYSICAL_PATH")
    	Set Fso = Server.CreateObject("Scripting.FileSystemObject")
    	Path = Server.MapPath(Folder & Fso.getTempName & ".asp")
    	WriteFile Fso,Path,Content
    	PathURL = Replace(Path,ServerPath,ServerName)
    	HTML = GetUrl(PathURL)
    	Fso.DeleteFile Path,True
    	Path = Server.MapPath(DestFile)
    	WriteFile Fso,Path,HTML
    	Set Fso = Nothing
    End Sub
    Il tutto renderebbe meglio se fosse messo in una classe

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.