- Home
- Categorie
- Coding e Sistemistica
- PHP
- Trasformare [url]http://blabla[/url] in <a href= etc etc con opzioni...
-
Trasformare [url]http://blabla[/url] in <a href= etc etc con opzioni...
Vorrei usare i famosi bbcode per le recensioni.
Sono riuscito a fare il grassetto in questo modo:
[code]$rowexpansions[expansions_text] = str_replace("", "<strong>", $rowexpansions[expansions_text]);
$rowexpansions[expansions_text] = str_replace("", "</strong>", $rowexpansions[expansions_text]);
echo "$rowexpansions[expansions_text]";
ed ora mi chiedevo come gestire i links.Vorrei due "opzioni":
- la prima vorrei mi trasformasse
{url}abcd{/url} con le parentesi quadre al posto delle graffe!!!
in
{a href="abcd"}abcd{/a} con maggiore e minore al posto dlele graffe
che è la più semplice.
-l'altra opzione dovrebbe essere che se io scrivo:
{url=abcd]}testo{/url}
ottengo
<a href="abcd">testo</a>Avete qualche intuizione per risolvere questo mio problema?
:00019040:
- la prima vorrei mi trasformasse
-
Per la prima richiesta:
[php]
<?php
function intotags($apri,$chiudi,$str){
$ex1=explode($apri,$str);
$ex2=explode($chiudi,$ex1[1]);
return $ex2[0];
}
$url=intotags("","",$stringa);
echo "<a href="".$url."">".$url."</a>";
?>[/php]Per la seconda c'è bisogno delle espressioni regolari,che io purtroppo non so usare
Ciao!
-
Come si potrebbe creare un link con anchor text usando i tag {url} e magari {anc}? Il mio scopo è di creare un link con nome specificato usando qualcosa simile ai bbcode.
-
@probid said:
Per la prima richiesta:
[php]
<?php
function intotags($apri,$chiudi,$str){
$ex1=explode($apri,$str);
$ex2=explode($chiudi,$ex1[1]);
return $ex2[0];
}
$url=intotags("","",$stringa);
echo "<a href="".$url."">".$url."</a>";
?>[/php]Però a me serve fare la trasformazione degli url contenuti in numero anche maggiore di 1 nel testo... come posso fare?
-
Oppure, conoscete guide/script precompilati che integrino il bbcode nella scrittura di articoli?
Come questa per esempio:
http://www.claudiogarau.it/php/Funzione_BBcode_con_gestione_degli_smiles.php
o questa:
http://forum.masterdrive.it/f34/php-4-x-formattare-testo-i-bbcode-9821/
-
Ho risolto in parte il problema.
Vi posto qui la migliore soluzione trovata:function bbcode_format($var) { $search = array( '/[b](.*?)[\/b]/is', '/[i](.*?)[\/i]/is', '/[u](.*?)[\/u]/is', '/[img](.*?)[\/img]/is', '/[url](.*?)[\/url]/is', '/[url\=(.*?)](.*?)[\/url]/is' ); $replace = array( '<strong>$1</strong>', '<em>$1</em>', '<u>$1</u>', '<img src="$1" />', '<a href="$1">$1</a>', '<a href="$1">$2</a>' ); $var = preg_replace ($search, $replace, $var); return $var; }