Salve ragazzi, so facendo un sistema di tag nel mio sito, simile a twitter diciamo, funziona anteponendo # al nome e cognome scritto tutto minuscolo e senza spazi. Ora il mio problema è questo, con il metodo in basso riesco a ciclare praticamente tutti i tag nei post, solo che non funziona bene se io taggo persone in ordine diverso da quello del db, nel senso, se io taggo una persona che ha id 2 nel db users non me la riconosce, mentre se metto quella che si trova nella posizione 1, poi 2 ecc allora funziona, come posso correggere? Grazie!
Codice PHP:
public function GetTag ($text) {
$matches = array();
$replacements = array();
preg_match_all('/#([^\s]+)/', $text, $matches);
$this->DBConnect();
$sql = mysql_query("SELECT * FROM users");
$e = 0;
while ($rows = mysql_fetch_array($sql)) {
for ($j = 0, $c = count($matches[1]); $j < $c; $j++) {
$just_str = false;
$str = strtolower(str_replace(' ', '', $this->GetNameSurname($rows['id'])));
if ($str == $matches[1][$j]) {
$replacements[$j][$e] = "[url='profile.php?user=".$rows[']".$this->GetNameSurname($rows['id'])."[/url]";
} else {
$replacements[$j][$e] = "<span>".$matches[1][$j]."</span>";
}
}
$e++;
}
for ($j = 0, $c = count($matches[1]), $e=0; $j < $c; $j++, $e++)
$text = str_replace($matches[1][$j], $replacements[$j][$e], $text);
return $text;