function replace
Jeg kan ikke få denne function til at virke[code]
function replaceString($string, $string_id) {
$patterns = array('/\[Calc:([^]]+)\]/', '/\[Check\*(\d+)\]/', '/\[Get_(.*?)\]/');
$replacements = array('', '<input type="checkbox" value="">', '');
$matches = array();
if (preg_match_all($patterns[0], $string, $matches)) {
foreach ($matches[1] as $match) {
$calculation = eval("return $match;");
$replacements[] = $calculation;
}
}
$matches = array();
if (preg_match_all($patterns[1], $string, $matches)) {
foreach ($matches[1] as $match) {
if ($match == 1) {
$replacements[] = '<input type="checkbox" value="">';
} else {
$radioButtons = '';
for ($i = 1; $i <= $match; $i++) {
$radioButtons .= '<input type="radio" name="radio_id" value="">';
}
$replacements[] = $radioButtons;
}
}
}
$matches = array();
if (preg_match_all($patterns[2], $string, $matches)) {
foreach ($matches[1] as $match) {
$dsn = 'mysql:host='.DB_HOST.';dbname=bravida_rammer;charset=utf8';
$pdo = new PDO($dsn, DB_USER, DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$table_name = explode("_", $match)[0];
$table_where = explode("_", $match)[1];
$stmt = $pdo->prepare("SELECT COUNT(*) FROM $table_name WHERE $table_where = 100");
$stmt->execute();
$result = $stmt->fetchColumn();
$replacements[] = $result;
}
}
return preg_replace($patterns, $replacements, $string);
}
[/code]
det er meningen at den skal søge hele strengen igennem efter '[]'
når den finder en skal den se hvad den starter med og ud fra dette udføre forskellige hendlinger.
$string = '[Calc:4+7] eller [Calc:7*17] måske [Calc:6/3]'
//Output '4+7=11 eller 7*17=119 måske 6/3=2'
$string = 'Dette er en checkbox [Check*1]'
//output 'Dette er en checkbox <input type="checkbox" value="">'
$string = 'Dette er radioboxe [Check*2]'
//output 'Dette er radioboxe <input type="radio" name="$string_id" value=""><input type="radio" name="$string_id" value="">'
$string = 'Dette er flere radioboxe [Check*4]'
//output 'Dette er flere radioboxe <input type="radio" name="$string_id" value=""><input type="radio" name="$string_id" value=""><input type="radio" name="$string_id" value=""><input type="radio" name="$string_id" value="">'
$string = 'Dette er en udlæst procent [Get_ramme_status] af gruppen status i db tabellen ramme'
Output: 'Dette er en udlæst procent 50% af gruppen status i db tabellen ramme' (ud fra at der er 10 rækker i tabellen "ramme" og 5 af dem har "ststus" er = 100)