Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Uso di Replace su Link

  1. #1

    Uso di Replace su Link

    Salve ragazzi!

    Ho un problemino di Replace che proprio non riesco a risolvere magari voi potete darmi un suggerimento.
    Ho in un file TXT alcuni link di questo tipo generati dinamicamente:
    Codice PHP:
    pagina.asp?ID=10
    pagina
    .asp?ID=11
    pagina
    .asp?ID=13
    ... 
    Vorrei stamparli a video trasformandoli in:
    Codice PHP:
    0paginaID10.htm
    0paginaID11
    .htm
    0paginaID13
    .htm
    ... 
    Per ora ho utilizzato il replace così
    Codice PHP:
    Replace(contenutoTXT,"pagina.asp?ID=","0paginaID"
    Ma chiaramente mi manca l'aggiunta dell'estensione ".htm" dopo l'ID che è dinamico e quindi indeterminabile a priori.

    Avevo pensato di modificare i link originali aggiungendo un secondo parametro fittizio, tipo
    Codice PHP:
    pagina.asp?ID=10&est
    pagina
    .asp?ID=11&est
    pagina
    .asp?ID=13&est
    ... 
    Per poi fare un secondo replace
    Codice PHP:
    Replace(contenutoTXT,"&est",".htm"
    Però mi sembra un po' ARRANGIATA come soluzione e poi dovrei modificare il sorgente originale e poco mi garba.
    Come altro potrei fare?
    Sto ancora imparando.... Chiedo comprensione!
    !...Send ME a message...!

  2. #2
    ci perdiamo facili, eh?

    codice:
    nuovo=Replace(contenutoTXT,"pagina.asp?ID=","0paginaID") & ".htm"
    that easy!

  3. #3
    Ciao OPTIME...
    Forse non è così EASY come dici tu.....
    Probabilmente mi sono spiegata male, riprovo.

    Ho creato uno script che tramite XMLHTTP memorizza il contenuto di una pagina ASP in una variabile per poi salvare un file HTML.
    Quindi una cosa del genere (ometto le righe superflue):

    Codice PHP:
    Function SalvaFile(PathFile,Content
    Dim repcontent
    repcontent 
    Replace(Content,"aspx","")
    repcontent Replace(repcontent ,"pagina.asp?ID=","0paginaID"'<<<< RIGA CON IL REPLACE "INCRIMINATO"
    ...
    oStream.WriteText repcontent
    oStream.SaveToFile Server.MapPath(PathFile), adSaveCreateOverWrite
    ...
    End Function 
    Quindi il mio replace dovrebbe prendere TUTTO il contenuto HTML memorizzato, e ogni volta che trova un link fatto così
    Codice PHP:
    pagina.asp?ID=XXX 
    dovrebbe trasformarlo in
    Codice PHP:
    0paginaIDXXX.htm 
    Secondo il tuo suggerimento invece, se io uso
    Codice PHP:
    repcontent Replace(repcontent,"pagina.asp?ID=","0paginaID") & ".htm" 
    L' ".htm" viene aggiunto una sola volta alla fine del'intero file!

    Spero di essermi spiegata meglio stavolta,
    BACIiiiiiiiiiiiiii!

    Sto ancora imparando.... Chiedo comprensione!
    !...Send ME a message...!

  4. #4
    XXX è fisso? 2 caratteri? 3 caratteri? cosa c'è dopo XXX? puoi postare un pezzo di file?

  5. #5
    XXX sono numeri che interrogano il DB (da 1 a N cifre ).
    Eccoti un pezzetto di file generato:

    Codice PHP:
    <table width="100%" border="0" cellspacing="0" cellpadding="0">

        
        <
    tr>
            <
    td width="106" height="106" background="../images/listTD.gif">[url="[B]pagina.asp?ID=101[/B]"][img]../images/101/1.jpg[/img][/url]</td>
            <
    td valign="top" style="padding-left:6px; padding-top:6px;">                      
                <
    table width="100%" border="0" cellpadding="0" cellspacing="0" id="schedaint">
                    <
    tr>
                        <
    td height="17" valign="top">[img]../images/didascaliaRS.gif[/img]</td>
                    </
    tr>
                    <
    tr>
                        <
    td>[b][url="[B]pagina.asp?ID=101[/B]"]PRESS 02/02/2009[/url][/b]</td>
                    </
    tr>
                    <
    tr>
                        <
    td valign="top">Rassegna Stampa Press</td>
                    </
    tr>
                </
    table>
            </
    td>
        </
    tr>
        
        
        <
    tr>
            <
    td width="106" height="106" background="../images/listTD.gif">[url="[B]pagina.asp?ID=98[/B]"][img]../images/98/1.jpg[/img][/url]</td>
            <
    td valign="top" style="padding-left:6px; padding-top:6px;">                      
                <
    table width="100%" border="0" cellpadding="0" cellspacing="0" id="schedaint">
                    <
    tr>
                        <
    td height="17" valign="top">[img]../images/didascaliaRS.gif[/img]</td>
                    </
    tr>
                    <
    tr>
                        <
    td>[b][url="[B]pagina.asp?ID=98[/B]"]PRESS 25/01/2009[/url][/b]</td>
                    </
    tr>
                    <
    tr>
                        <
    td valign="top">Rassegna Stampa Press</td>
                    </
    tr>
                </
    table>
            </
    td>
        </
    tr>
        
        
        <
    tr>
            <
    td width="106" height="106" background="../images/listTD.gif">[url="[B]pagina.asp?ID=87[/B]"][img]../images/87/1.jpg[/img][/url]</td>
            <
    td valign="top" style="padding-left:6px; padding-top:6px;">                      
                <
    table width="100%" border="0" cellpadding="0" cellspacing="0" id="schedaint">
                    <
    tr>
                        <
    td height="17" valign="top">[img]../images/didascaliaRS.gif[/img]</td>
                    </
    tr>
                    <
    tr>
                        <
    td>[b][url="[B]pagina.asp?ID=87[/B]"]PRESS 22/01/2009[/url][/b]</td>
                    </
    tr>
                    <
    tr>
                        <
    td valign="top">Rassegna Stampa Press</td>
                    </
    tr>
                </
    table>
            </
    td>
        </
    tr>
        
        
    </
    table
    Ho cercato di metterlo più ordinato possibile, i link li ho messi in grassetto.
    Così chiaramente sono prima della trasformazione, quindi ancora in ASP. Essendo la pagina generata dinamicamente (While...Wend) chiaramente non si può prevedere quante volte questa cosa accada in totale. Qui ci sono 3 righe ripetute, ma potrebbero anche essere 50!

    Me intiendi?
    Sto ancora imparando.... Chiedo comprensione!
    !...Send ME a message...!

  6. #6
    Ma scusa, tu i link già ce li hai nel file di testo e li leggi da lì, giusto?

    Se è così ti basta questa:

    codice:
    Function ReplaceLink(link)
    	
    	Dim re 
    	Set re 		= new RegExp
    	re.global 	= True
    	re.IgnoreCase 	= True
    	re.Multiline 	= True
    	
    	re.pattern 	= "^[^=]*=(\d+)"
    	
    	ReplaceLink 	= re.Replace(link, "0paginaID$1.htm")
    	
    	Set re = Nothing
    	
    End Function
    xxx

  7. #7
    Alle RegExp ci avevo pensato, ma questo codice è buono sempre se devo agire sul singolo LINK.
    Come lo utilizzo per fargli leggere tutto il contenuto dell'HTML? Non riesco a capire!
    Cioè, se lo posiziono dentro la mia funzione di scrittura dell'HTML

    Codice PHP:
    Function SalvaFile(PathFile,Content)
    Dim repcontent
    repcontent 
    Replace(Content,"aspx","")
    repcontent ReplaceLink(repcontent'<<<< RIGA CON IL REPLACE "INCRIMINATO"
    ...
    oStream.WriteText repcontent
    oStream.SaveToFile Server.MapPath(PathFile), adSaveCreateOverWrite
    ...
    End Function 
    Non può funzionare perchè in effetti da nessuna parte gli specifico il link che deve sostituire.
    Boh, inizio a sentirmi un po' stupida!!!!!!......
    :master:
    Sto ancora imparando.... Chiedo comprensione!
    !...Send ME a message...!

  8. #8
    Scusami ma mi sono un po' perso..
    Tu all'inizio hai scritto che hai un file di testo che contiene dei link in questa forma:

    pagina.asp?ID=10
    pagina.asp?ID=11
    pagina.asp?ID=13

    leggi il file e devi trasformare quei link. E' corretto?
    Sulla base di questo ho fatto la seguente prova (i link li ho scritti come se fossero in un file di testo, con lo stesso carriage return):

    codice:
    <%
    Option Explicit
    
    Dim var: var = "pagina.asp?ID=10" & vbcrlf & "pagina.asp?ID=11" & vbcrlf & "pagina.asp?ID=13"
    
    Function ReplaceLink(link)
    	
    	Dim re 
    	Set re 		= new RegExp
    	re.global 	= True
    	re.IgnoreCase 	= True
    	re.Multiline 	= True
    	
    	re.pattern 	= "^[^=]*=(\d+)"
    	
    	ReplaceLink 	= re.Replace(link, "0paginaID$1.htm")
    	
    	Set re = Nothing
    	
    End Function
    
    %>
    
    <html>
    <body>
    
    <textarea rows=10 cols=40><%=var%></textarea>
    
    
    <textarea rows=10 cols=40><%=ReplaceLink(var)%></textarea>
    
    </body>
    </html>
    Che da i risultati attesi. Ora mi sembra di aver mal interpretato.. puoi postare cosa contiene la variabile: repcontent ?
    xxx

  9. #9
    Salve AleIlSerpente ...

    No, il fatto del file di testo all'inizio l'avevo detto per semplificare la questione, ma poi mi sono resa conto che in effetti confondeva le idee.
    La variabila repcontent contiene tutto il codice HTML della pagina, memorizzato attraverso XMLHTTP. All'interno di questo codice ci sono sparsi qua e là i famigerati link che andrebbero modificati prima di ributtare il tutto dentro un file HTML (praticamente lo script in questione interroga una pagina ASP, opera le opportune modifiche e poi salva una pagina HTML).
    Se vedi un po' più su ho già incollato un pezzetto di codice per rendere meglio l'idea.

    La tua mi sembra un'ottima soluzione ma nel mio caso non riesco a capire come poterla applicare!





    Aggiornamento: 'Spetta 'spetta 'spetta, che forse ho capito..... Faccio qualche prova!!!
    Sto ancora imparando.... Chiedo comprensione!
    !...Send ME a message...!

  10. #10
    Originariamente inviato da Picciola
    Salve AleIlSerpente ...

    No, il fatto del file di testo all'inizio l'avevo detto per semplificare la questione, ma poi mi sono resa conto che in effetti confondeva le idee.
    La variabila repcontent contiene tutto il codice HTML della pagina, memorizzato attraverso XMLHTTP. All'interno di questo codice ci sono sparsi qua e là i famigerati link che andrebbero modificati prima di ributtare il tutto dentro un file HTML (praticamente lo script in questione interroga una pagina ASP, opera le opportune modifiche e poi salva una pagina HTML).
    Se vedi un po' più su ho già incollato un pezzetto di codice per rendere meglio l'idea.

    La tua mi sembra un'ottima soluzione ma nel mio caso non riesco a capire come poterla applicare!





    Aggiornamento: 'Spetta 'spetta 'spetta, che forse ho capito..... Faccio qualche prova!!!
    :-)

    Ok, ora ho capito. Se vuoi questa è la mia versione:


    codice:
    Function ReplaceLink(link)
    	
    	Dim re
    	Set re 		= new RegExp
    	re.global 	= True
    	re.IgnoreCase 	= True
    	re.Multiline 	= True
    	
    	re.pattern	= "<a href=\""pagina\.asp\?ID\=(\d+)\"">"
    	
    	ReplaceLink 	= re.Replace(link, "<a href=""0paginaID$1.htm"">")
    	
    	Set re 		= Nothing
    	
    End Function

    xxx

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 © 2026 vBulletin Solutions, Inc. All rights reserved.