Premessa: io di php non me ne intendo troppo, degli array molto poco! Anche se di guide ne ho lette e continuo a leggerne.
Questo è il mio codice: prendo il testo proveniente da un textarea, con preg_replace trovo tutte le parole precedute dal simbolo #, le sostituisco con un link con lo stesso testo, e le salvo in un array, così per poi questo immetterlo sotto forma di contenitore di dati nel mio database...il problema? Il problema è che con serialize nel mio database viene stampata una cosa del genere: (il testo nel textarea che ho inserito corrispondeva a: eccomi a #casa)
codice:
a:1:{i:0;a:2:{i:0;a:1:{i:0;s:5:"#casa";}i:1;a:1:{i:0;s:4:"casa";}}}
Io vorrei invece che mi stampasse nel database solo la parola chiave #casa, oppure anche casa, su questo non faccio problemi.
Poi mi chiedo perchè gli array che vengono a formarsi sono due all'interno di uno: se nel mio codice aggiungessi x esempio print_r($tag); per vedere la struttura dell'array mi viene fuori questo! Come posso creare un solo array e non due all'interno di uno? Come risolvo i miei due quesiti?
codice:
Array ( [0] => Array ( [0] => Array ( [0] => #casa ) [1] => Array ( [0] => casa ) ) )
Codice PHP:
$text = $_POST['post'];
$text = preg_replace('/#([\w]+)/', '[url="http://127.0.0.1:8887/tag.php?q=$1"]#$1[/url]', $text);
$cerca = preg_match_all('/#([\w]+)/', $text, $tag[0]);
$tag = serialize($tag);