Hashtag

Night Assassin

Utente Attivo
16 Mar 2013
200
0
0
Ebbene sto impazzendo a cercare una soluzione teorica a questo mio problema, ma non ci riesco nemmeno teoricamente.

Praticamente, avendo una semplice stringa di testo, vorrei che #qualsiasicosa diventi #qualsiasicosa
Per ora sono riuscito senza problemi a fare un preg match all tra # e spazio e funziona, solo che devo applicare lo stesso anche se lo spazio non c'é e magari c'é un # o un @ o un "a capo".... Qualcuno che mi aiuta, anche solo teoricamente?

Inviato dal mio GT-S5360 con Tapatalk 2
 
Ebbene sto impazzendo a cercare una soluzione teorica a questo mio problema, ma non ci riesco nemmeno teoricamente.

Praticamente, avendo una semplice stringa di testo, vorrei che #qualsiasicosa diventi #qualsiasicosa
Per ora sono riuscito senza problemi a fare un preg match all tra # e spazio e funziona, solo che devo applicare lo stesso anche se lo spazio non c'é e magari c'é un # o un @ o un "a capo".... Qualcuno che mi aiuta, anche solo teoricamente?

Inviato dal mio GT-S5360 con Tapatalk 2


Bè è semplice, basta usare isset, preg replace, e concatenazioni, ed ecco il codice perfettamente funzionante.

Crei un file e lo chiami tag.php o hashtag o boh..

Inserisci in esso:

PHP:
/* Semplice codice hashtag progettato da PHPMan su mrwebmaster per Night Assassin */

<?php if(isset($_GET["tag"])){ $tag = preg_replace('#[^a-z0-9_]#i', '', $_GET["tag"]); // $tag è pronto per eventuali query
$fulltag = "#".$tag; echo $fulltag; } ?>


Esempio di uso:

PHP:
/* Conversione in Hashtag by PHPMan su mrwebmaster per Night Assassin */

<?php function ConversioneInHashtag($stringa){ $regex = "/#+([a-zA-Z0-9_]+)/"; $stringa = preg_replace($regex, '<a href="hashtag.php?tag=$1">$0</a>', $stringa); return($stringa); } $str = "Ho #Creato un hashtag #PHP"; $str = ConversioneInHashtag($str); echo $str; ?>

Prego :P
 
Ciao, ti può essere utile:
Codice:
<?php
/*controllo dell'esistenza di una parola o un valore all'interno di un'intera stringa*/

$stringa='Questa è la striga da controllare se esiste questo valor: ABCD99 valore noto';
$var_noto='ABCD99';
$var= strstr ($stringa, $var_noto);

/*output: $var='ABCD99 valore noto'
quindi se esiste il valore lo restituisce per primo con il seguito della stringa*/
?>
 
GraZie per la risposta, ma ci possono essere anche più hashtag nello stesso testo, questo non va bene

Inviato dal mio GT-S5360 con Tapatalk 2
 
Prova così
PHP:
	function Hashtag($Text)
	{
	$Return_t = preg_replace(array('/(^|[^a-z0-9_])@([a-z0-9_]+)/i', '/(^|[^a-z0-9_])#([a-z0-9_]+)/i'),	array('$1<a href=\'hashtag.php\'>$2</a>', '$1<a href=\'hashtag.php\'>#$2</a>'), $Text);
	return $Return_t;
	}
	
		$testo ='#oggi andiamo tutti al #mare che #bello';
	echo Hashtag($testo);