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

Discussione: cambiare link

  1. #1

    cambiare link

    mi serve una espressione regolare che modifica tutte i collegamenti dei tag "a", http://miosito.it/forum in http://miosito.it/sito

  2. #2
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Io le espressioni regolari non le so usare...quindi ti do una mia soluzione "normale"...in caso nessun altro ti risponda hai una scappatoia per lo meno ^^'

    Codice PHP:
    function find_a_href($str)
    {
        
    $str stristr($str"<a");
        
    $oc strpos($str">");
        
    $str_part substr($str0$oc+1);
        
        
    $rest substr($str$oc+1);
        
        
    $str_part stristr($str_part"href");
        if(
    strpos($str_part"'"))
        {
            
    $str_part stristr($str_part"'");
            
    $str_part substr($str_part1);
            
    $oc strpos($str_part"'");
            
    $str_part substr($str_part0$oc);
        }
        else if(
    strpos($str_part"\""))
        {
            
    $str_part stristr($str_part"\"");
            
    $str_part substr($str_part1);
            
    $oc strpos($str_part"\"");
            
    $str_part substr($str_part0$oc);
        }
        
    $str_part preg_replace("/forum/",'sito',$str_part);
        if(
    stristr($rest"[url='http://miosito.it/forum']bla bla[/url] testo ancora di prova [url='http://tuosito.it/forum']bla bla 2[/url]";
    print_r(explode("|"find_a_href($sorgente))); 
    risultato:

    codice:
    Array 
    ( 
    	[0] => http://miosito.it/sito 
    	[1] => http://tuosito.it/sito 
    )
    La funzione ti restituisce un array con dentro tutte le occorrenze degli HREF della stringa e sostituisce "forum" con "sito".

    Spero qualcun altro ti risponda usando le regex cosi cerco di impararci qualcosa



  3. #3
    la funzione non va... a me serve una funzione che modifica i tag "a", mantenendo il codice circostante.

  4. #4
    c'è nessunoooo

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Ho provato a buttar giù questa regexp. Spero di non aver scritto pasticci.
    codice:
    $indirizzo = "http://miosito.it/forum/pippo.php";
    $indirizzo = preg_replace("/^http:\/\/miosito.it\/forum(.?)+$/","http://miosito.it/sito",$indirizzo);
    echo $indirizzo;

  6. #6
    codice:
    function cambia($stringa){
    
    $cerca = 'forum';
    
    if((strpos($stringa, $cerca)) !== false) {
    
    $stringa = str_replace('forum', 'sito', $stringa);
    
    echo $stringa;
    
    }else{
    
    echo $stringa;
    
    }
    
    }
    
    cambia('http://www.miosito.it/forum/pippo.php');

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Io non ho capito se deve fare solo la sostituzione della parola forum con sito oppure se deve anche far scomparire dal link originale tutto ciò che eventualmente segue a forum.

  8. #8
    siccome devo incorporare un forum a un sito, mi servirebbe uno script che modifica tutti i link del forum con il link riferito al sito, però la query string deve rimanere intatta.

  9. #9
    vi prego risp

  10. #10
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    e con un semplicissimo str_replace()?

    Codice PHP:
    function find_a_href($str)
    {
        
    $str_part str_replace("/forum""/sito"$str);
        return 
    $str_part;
    }

    $sorgente "testo di prova [url='http://miosito.it/forum']bla bla[/url] testo ancora di prova [url='http://tuosito.it/forum']bla bla 2[/url]";
    print(
    find_a_href($sorgente)); 

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.