aggiungere collegamento ai link

marco_rx

Utente Attivo
19 Dic 2010
129
0
0
Come posso creare una funzione che mi permetta di trasformare tutte le parole che iniziano con http:// nel relativo collegamento html <a href="http://resto-della-parola">http://resto-della-parola</a> ?
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
prova così:
PHP:
$link = preg_replace("/(http:\/\/[^\s]+)/", "<a href=\"$1\">$1</a>", $testo);
 

marco_rx

Utente Attivo
19 Dic 2010
129
0
0
Funziona, però adesso è sorto un'altro problema: per inserire dei collegamenti o cose similo ho creato un sistema di bbcode, però adesso vengono convertiti anche gli url dei bbcode.
Codice:
[url=http://sito.com]
diventa
Codice:
[url=<a href="http://sito.com">http://sito.com</a>]

c'è un modo per risolvere?
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Invece di usare i tuoi BBCode personalizzati non sarebbe meglio adottare uno standard di formattazione del testo e usare Markdown? È facile da scrivere e anche quando non è formattato si capisce perfettamente quale sarà il risultato nel testo finale.

Qui puoi trovare la documentazione della sintassi: http://daringfireball.net/projects/markdown/.
Qui invece il port per PHP: http://michelf.com/projects/php-markdown/.
 

marco_rx

Utente Attivo
19 Dic 2010
129
0
0
Ho utilizzato i bbcode perchè ho bisogno di assegnare ad alcuni elementi classi specifiche del css, ad esempio
Codice:
 lo converto in <div class="code">. Sul database memorizzo il bbcode così in caso abbia bisogno di cambiare la classe del codice (o altri elementi) mi basterebbe modificare l'espressione in fase di estrazione dei dati.
Ho dato un'occhiata a quello ma non ho capito se potrei utilizzarlo per far ciò.

Adesso mi sono letto [URL="https://www.mrw.it/php/articoli/espressioni-regolari-funzioni-pcre-e-differenze-funzioni-posix_1262_3.html"]questo[/URL] articolo e sono quasi riuscito a risolvere. Ho provato con questo ma non riesco a capire come mai mi rimangano i simboli di apertura e chiusura del tag:
[PHP]$testo = preg_replace("<a href=\"<a href=\"(.*?)\">(.*?)</a>\">", "<a href=\"$1\">", $testo);[/PHP]
In pratica al posto di diventare <a href="link"> diventa <<a href="link">>
Come mai?
 

marco_rx

Utente Attivo
19 Dic 2010
129
0
0
Non funziona ma sono riuscito a risolvere: ho aggiunto i delimitatori e fatto l'escape dello slash di chiusura del tag a.
PHP:
$testo = preg_replace('/<a href="<a href="(.*?)">(.*?)<\/a>">/', "<a href=\"$1\">", $testo);

Però non ho capito quale fosse l'errore, può essere che i segni < e > vengano considerati i delimitatori di inizio e fine dell'espressione?
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Effettivamente mancavano i delimitatori. Comunque, se vuoi evitare di fare l'escape dello slash di chiusura, puoi usare un altro carattere per delimitare l'espressione. Io solitamente ne uso uno che non compare nell'espressione, per evitare di mettere backslash inutili. Prova ad esempio con la chiocciola.
 

marco_rx

Utente Attivo
19 Dic 2010
129
0
0
Ma c'è una lista con "tutti" questi delimitatori oppure si può usare qualunque carattere?
 
Discussioni simili
Autore Titolo Forum Risposte Data
I aggiungere la sessione PHP 8
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
E Aggiungere Parole PHP 1
A aggiungere stringa all'inizio di ogni riga di un file txt PHP 3
MarcoGrazia Aggiungere o rimuovere classi in javascript Javascript 1
F Aggiungere automaticamente sito a home del telefono HTML e CSS 2
C Aggiungere blocco dati Javascript 6
F [PHP] Aggiungere ruolo per accedere alle pagine PHP 2
Cosina Aggiungere pulsante pause/play a slideshow Javascript 0
A Twitter aggiungere tweet a campagna esistente o salvare pubblico Social Media Marketing 0
S aggiungere colonna date in una tabella già esistente Database 0
P [PHP] Aggiungere un mio script a prestashop? PHP 10
Shyson [PHP] Aggiungere link al codice PHP 0
D Aggiungere file .css esterno su Android HTML e CSS 4
R [PHP] Aggiungere 90 minuti a stringa orario PHP 1
brasoft2019 [PHP] aggiungere timestamp in tabella correlata PHP 0
P [PHP] Aggiungere giorni e stampare risultato da data inserita in input PHP 3
L [Java] Aggiungere elementi ad array JSON Java 0
F [WordPress] [HTML] Aggiungere una pagina solo allo sticky menu WordPress 4
C [PHP] Aggiungere pulsante paypal PHP 2
M [javascript] Aggiungere eventi al caricamento Javascript 0
M aggiungere streaming audio a pagina html HTML e CSS 2
trattorino [PHP] sql aggiungere dato in una tabella senza cancellare contenuto PHP 6
Francesco Oliviero Aggiungere comando a pulsante HTML HTML e CSS 1
felino [WordPress] [WooCommerce] Ordine: aggiungere nuovi stati con notifica email al cliente WordPress 4
L [Photoshop] Aggiungere file video in timeline Photoshop 1
D [Photoshop] aggiungere piu tracce a immagine Photoshop 4
D Aggiungere slash finale ad URL con .htaccess Web Server 2
G [Javascript] aggiungere sub-namespace Javascript 0
L Aggiungere contenuto con ajax durante lo scroll jQuery 1
felino [WordPress] [Woocommerce] Aggiungere un costo addizionale per prodotto WordPress 0
G [RISOLTO][Javascript] aggiungere elemento ad array definito nella finestra madre da popup Javascript 4
elpirata Aggiungere un disco ssd separato dal raid 1 Hardware 0
S (VENDO) Possiamo aggiungere fino a 20000 Membri nei Gruppi Facebook Italiani Annunci servizi di Social Media Marketing 2
trattorino [PHP] aggiungere html in un codice PHP 0
otto9due Aggiungere n. giorni ad una data nel datepiker jQuery 4
R [HTML] Aggiungere una tabella a fianco di altre tabelle... HTML e CSS 6
F aggiungere codice dopo n elementi jquery jQuery 1
L [Javascript] Aggiungere una riga ad una tabella Javascript 5
asevenx [Javascript] aggiungere righe con select da database e calcolo sconto in automatico Javascript 0
Monital [Javascript] decidere dove aggiungere il campo dinamicamente Javascript 1
asevenx [Javascript] aggiungere dinamicamente un campo di un form Javascript 3
ACarty [Javascript] Aggiungere link alle foto. Javascript 19
matteoraggi Aggiungere filtri a woocommerce WordPress 0
S appinventor, aggiungere tasto registrazione Sviluppo app per Android 1
V Aggiungere un img nel background Sviluppo app per Android 1
felino Capability: aggiungere cap all'editor per admin.php?page WordPress 0
E problema per aggiungere un database mdf da visual studio .NET Framework 9
M Aggiungere input text dopo aver selezionato un campo da una select option Presentati al Forum 0
M aggiungere dei div non sostituirli Javascript 1

Discussioni simili