Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 40

Discussione: Riconoscere i link

  1. #1

    Riconoscere i link

    Come si riconosce e si converte una riga di testo in link?
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    96
    puoi usare preg_replace(), nella quale inserisci il formato di stringa da riconoscere e ti butta fuori ad esempio un <a href.....
    se mandi la stringa "tipo" posso farti vedere l'esempio di funzione

  3. #3
    La stringa inzierà con www. (es. www.htmlit o www.sito.it ecc.).

  4. #4
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858

    Re: Riconoscere i link

    Originariamente inviato da poeta1978
    Come si riconosce e si converte una riga di testo in link?
    Grazie
    http://freephp.html.it/articoli/view...sp?id=69&pag=5
    think simple think ringo

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    96
    per esempio potresti fare così per prendere qualsiasi "www.abc.def.ecc" fino ad un carattere di spazio es:
    "wwww.html.it ciao ciao" ti prende "www.html.it" e ti stampa il link

    <?php
    $stringa = $_POST['prova'];
    $pattern = "";
    $replacement = "\${1}";
    preg_match("/(www)\.([^[:blank:]]+)/i", $stringa, $match);
    echo "<a href=\"http://".$match[0]."\">".$match[0]."</a>";
    ?>

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    96
    mi sono accorto che nello script di prima ci sono rimaste due stringhe (pattern e replacemet) di un mio vecchio script... ovviamente qui sono inutili

  7. #7
    L'ultimo sistema sarebbe il più adatto:

    codice:
    $testo = $row["Testo"];
    preg_match("/(www)\.([^[:blank:]]+)/i", $testo, $match);
    Ma avendo il testo in un record di database devo leggerlo tutto e creare i link, quindi la riga

    codice:
    echo "<a href=\"http://".$match[0]."\">".$match[0]."</a>";
    dev'essere compresa in $testo. Come fare?

  8. #8
    Ho provato così:

    codice:
    $testo = $row["Testo"];
    $testo = str_replace(preg_match("/(www)\.([^[:blank:]]+)/i", $testo, $match),"<a href=\"http://".$match[0]."\">".$match[0]."</a>",$testo);
    echo $testo;
    Mi scrive $testo, non da errori, ma non crea i link

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    96
    scusami ma non ho capito: tu il testo del link lo prendi dal database? ovvero avrai una serie di link che verranno estratti dalla query. Fai un array dei risultati, e poi fai un ciclo di while sullo script che ti ho proposto fino alla fine dell'array stesso, ti torna? O forse non ho capito il problema?

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    96
    scusami, rileggendo ho capito il problema...
    il preg_match cerca in una qualsiasi stringa una sottostringa che abbia il formato che gli hai detto di cercare (espressione regolare del primno argomento di preg_match), quindi se hai un testo: "Questo è il sito www.ciao.it , buon divertimento" ti estrae "www.ciao.it", ovviamente dovrai avere un delimitatore alla fine del testo del link (inquesto caso uno spazio). A questo punto è registrato nel match[0] e lo potrai usare come vuoi...
    Quindi, dove sta il problema?

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.