चर

2012-01-19 11 views
6

मेरे डेटाबेस तालिकाओं 1 पंक्ति से कैसे परिभाषित करने के लिए मूल्य है किचर

enter image description here

मैं सभी चर है कि शरीर में इस्तेमाल किया, vars नामक एक अन्य कॉलम में भंडारण कर रहा हूँ की तरह लग रहा है। फिर सभी युद्धों को लाया। यदि वे एकाधिक हैं, "प्रतीक" द्वारा विस्फोट।

मैं क्या करना चाहता हूं, सभी उपयोग किए गए वर्रों को डीबी से लाएं, फिर उन्हें दूसरे फ़ंक्शन filter द्वारा फ़िल्टर करें। जैसा कि आप देखते हैं, फ़िल्टर है, 3 इनपुट: $content, $needle, $replacement

$ सामग्री - संदेशों शरीर,

$ सुई - % .क्या हम खोज रहे हैं। %

$ प्रतिस्थापन - यह var है जो हमें डेटाबेस से मिला है, जिसे php द्वारा परिभाषित किया गया है। पूर्व में, अगर मुझे डेटाबेस से wsurl मिलता है, तो यह पहले से ही मेरी सेटिंग्स में परिभाषित है। 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); 
} 
+0

बजाय एक लगभग समान एक पोस्ट करने के लिए अपने प्रश्न अपडेट करें। [Str_replace फ़ंक्शन समस्या] (http://stackoverflow.com/questions/8921462/str-replace-function-issue) के डुप्लिकेट के रूप में इसे बंद करने के लिए वोटिंग, क्योंकि नया एक बेहतर है। – deceze

उत्तर