Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it L'avatar di newlink
    Registrato dal
    Oct 2011
    Messaggi
    206

    Php riconoscere collegamento e sostituire

    Salve a tutti, mi serve il vostro aiuto per scrivere una funzione.

    Ho una variabile contenente del testo e dei collegamenti ipertestuali, in qualche modo devo trasformare i collegamenti da:
    Codice PHP:
    [url="www.pippo.it"][/url
    a
    Codice PHP:
    <a onclick="javascript:window.open='www.pippo.it'"></a
    Avete qualche idea?

  2. #2

    Re: Php riconoscere collegamento e sostituire

    Originariamente inviato da newlink
    Salve a tutti, mi serve il vostro aiuto per scrivere una funzione.

    Ho una variabile contenente del testo e dei collegamenti ipertestuali, in qualche modo devo trasformare i collegamenti da:
    Codice PHP:
    [url="www.pippo.it"][/url
    a
    Codice PHP:
    <a onclick="javascript:window.open='www.pippo.it'"></a
    Avete qualche idea?
    Nel tuo caso probabilmente potrebbe bastare usare
    str_ireplace(), (http://it.php.net/manual/en/function.str-ireplace.php)
    se non funziona devi usare le espressioni regolari con
    reg_replace() (http://it.php.net/manual/en/function.preg-replace.php)

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Codice PHP:
    $i '[url="www.pippo.it"][/url]';

    echo 
    modifica($i);

    function 
    modifica($var){
        
    $pe explode('"',$var);
        
        return 
    $pe[0].'"java-script:window.open=\\''.$pe[1].'\\'"'.$pe[2];

    Ecco a te

  4. #4
    Utente di HTML.it L'avatar di newlink
    Registrato dal
    Oct 2011
    Messaggi
    206
    Puoi darmi una mano con le espressioni regolari?

    Avevo pensato ad una cosa così:
    Codice PHP:
    $text str_replace("href""onclick='javascript:window.opener.window.location.href:\'$link\''"$text); 
    Ma non riesco a acquisire il link del collegamento ipertestuale, sicuramente esiste un modo più inteliggente

  5. #5
    Originariamente inviato da RoTeam

    Ecco a te
    ehm non è così semplice perché:

    Originariamente inviato da newlink
    Ho una variabile contenente del testo e dei collegamenti ipertestuali,
    ...e quando nel testo ci dovessero essere i doppi apici non funziona più...

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Bah puo provare anche cosi allora
    codice:
    $i = '';
    
    echo modifica($i);
    
    function modifica($var){
        
    $pe = explode('<a href="',$var);
        
        return '<a href="java-script:window.open=\\''.str_replace('">','\\'">',$pe[1]);
    
    }

  7. #7
    Utente di HTML.it L'avatar di newlink
    Registrato dal
    Oct 2011
    Messaggi
    206
    Ciao ho provato i codici che mi hai dato:

    nel secondo caso il risultato è:
    pippo"java-script:window.open=''.$pe[1].''"

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Originariamente inviato da newlink
    Ciao ho provato i codici che mi hai dato:

    nel secondo caso il risultato è:
    pippo"java-script:window.open=''.$pe[1].''"
    Non avevo visto che avevi sostituito a href con onclick, perciò ti basta
    sostituire l'href

    codice:
        return '<a onclick="java-script:window.open=\\''.str_replace('">','\\'">',$pe[1]);

    Se provi come ti ho mostrato nell'esempio funziona a me mi restituisce l'output che
    hai richiesto, se hai apportato altre modifiche posta il codice

  9. #9
    Codice PHP:


    $testo 
    'ciao mamma [url="pippo.it"]che bello eh? [/url] di link che schifo il link schifoso bla bla';

    echo 
    preg_replace('/[url="(.*)"][^>]+>/','<a href="javascript:window.open=\'\1\'">[/url]',$testo); 
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  10. #10
    IMHO: la soluzione con le regex che ti è stata suggerita da santino per quanto efficacissima dal punto di vista tecnico non la adotterei dal punto di vista pratico/operativo.
    Io aggirerei il problema tramite js/jquery. Ti spiego come.

    Il testo presente nella variabile lo inserirei all'interno di un div con una determinata classe/id

    Codice PHP:
    <div id="modifica_link">
    <?php echo $testo_con_link?>
    </div>
    mentre con jquery farei (codice non provato ma seguirei cmq questa logica)
    codice:
    $("#modifica_link a").click(function(link) {
    link.preventDefault(); 
    var theHREF = $(this).attr("href");  
    window.open(theHREF);
    }
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

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.