Nisam baš najbolje razumeo ovo poslednje što si napisao:
Citat:
{username} zamijeni sa $username, a $username = $_POST["username"];
Ali ako hoćeš direktno tako u stringu da zameniš vrednosti sa vrednostima iz $_POST niza, možda da probaš ovako nešto:
Code:
//nesto kao sablon
$str = 'test = {test} i {test}';
//callback funkcija za preg_replace (dole)
function kolbek($matches){
return (isset($_POST[$matches[1]])) ? $_POST[$matches[1]] : $matches[0];
}
//preg_replace sa callback funkcijom (kolbek)
$rez = preg_replace_callback("/{([a-zA-Z0-9]+)}/", "kolbek", $str);
//ispis rezultata
echo $str; //izvorni string $str
echo "<br />-------<br />";
echo $rez; //obradjeni string $str
?>
<form action="" method="post">
<p>Vrednost za {test}: <input type="text" name="test" /></p>
<p><input type="submit" value="Udri" /></p>
</form>
Konkretno u ovom primeru: Ako u $_POST nizu imaš definisan element "test", svako {test} u stringu $str će biti zamenjeno sa vrednošću tog elementa. U suprotnom se ništa neće promeniti (ostaje {test} u $str). To možeš izmeniti u funkciji "kolbek". Naravno, ako to ubacuješ u MySQL query, moraćeš da izmeniš funkciju "kolbek" kako bi filtrirao string koji vraća (sa mysql_real_escape_string() npr).
I da, ovaj regexp matchuje samo slova engleskog alfabeta i brojeve (/{([a-zA-Z0-9]+)}/).
btw. Nikola, može i INSERT sa SET.
[Ovu poruku je menjao Nemanja Avramović dana 09.02.2009. u 00:58 GMT+1]
Laravel Srbija.
[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]