Как получить определенное значение по переменной - PullRequest
6 голосов
/ 19 января 2012

Моя таблица базы данных 1 строка выглядит следующим образом

enter image description here

Я храню все переменные, которые используются в теле, в другом столбце с именем vars.Затем выбираем все переменные.Если они кратны, взрываются символом ",".

Что я хочу сделать, так это выбрать все используемые переменные из базы данных, а затем отфильтровать их по второй функции filter.Как видите, фильтр имеет 3 входа: $content, $needle, $replacement.

$ content - тело сообщения,

$ needle - %. Что мы ищем. %

$ replace - это переменная, которую мы получили из базы данных, определенный php.Например, если я получаю wsurl из базы данных, он уже определен в моем settings.php как DEFINE ("wsurl", "www.yourdomain.com").

Вопрос в том, как отправить определенное значение кактретий вход - $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);
}

1 Ответ

14 голосов
/ 19 января 2012

Если я правильно понял ваш вопрос.Это должно помочь.

<?php
    define('TEST', 'abc');
    echo constant('TEST');

http://www.php.net/manual/en/function.constant.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...