mie tabelle del database 1 fila sembra chevalore Come ottenere definito dalla variabile
sto memorizzare tutte le variabili che hanno usato nel corpo, in un'altra colonna denominata vars
. Poi a prendere tutti i vars. Se sono multipli, esplodono con il simbolo ",".
Quello che voglio fare è recuperare tutti i vars usati da db, quindi filtrarli con la seconda funzione filter
. Come vedi, il filtro ha 3 ingressi: $content, $needle, $replacement
.
$ content - i messaggi del corpo,
$ ago - %
.cosa stiamo cercando. %
$ replacement - è var che abbiamo ottenuto dal database, definito da php. Ad esempio, se ottengo wsurl dal database, è già definito nel mio settings.php come DEFINE ("wsurl", "www.yourdomain.com").
La domanda è, come posso inviare il valore definito come terzo input - $replacement
?
public function genMsg($id) {
$msgid = $id;
$stmt = $db->prepare('SELECT `body`, `status`, `vars` FROM `messages` WHERE `id`=?') or die(htmlspecialchars($this->db->error));
$stmt->bind_param("i", $msgid) or die(htmlspecialchars($stmt->error));
$stmt->execute() or die(htmlspecialchars($stmt->error));
$stmt->bind_result($message, $status, $vars) or die($stmt->error);
$stmt->fetch() or die($stmt->error);
$stmt->close();
$image = ($status == -1) ? "fail" : "success";
if (isset($vars) && !empty($vars)) {
if (strpos($vars, ",")) {
$vars = explode(",", $vars);
foreach ($vars as $key => $var) {
$this->filter($message, $var, <HERE MUST BE DEFINED VALUE>);
}
} else {
$var = trim($vars);
$this->filter($message, $var, <HERE MUST BE DEFINED VALUE>);
}
}
$data = array(
'status' => $status,
'message' => $message
);
}
protected function filter($content, $needle, $replacement) {
return str_replace("%'.$needle.'%", $replacement, $content);
}
Si prega di aggiornare la tua domanda invece di inviare uno praticamente identico. Si vota per chiuderlo come duplicato del [problema di funzione str_replace] (http://stackoverflow.com/questions/8921462/str-replace-function-issue), poiché il nuovo è migliore. – deceze