Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

PHP के साथ आउटपुट एक MySQL परिणाम स्ट्रिंग से एक चर या पूर्व-परिभाषित CONSTANT का मान

हो सकता है कि यदि आप sprint_f में DB स्ट्रिंग्स सहेजते हैं प्रारूप, मुझे दूसरा रास्ता नहीं दिख रहा है:

$color = 'blue';
define('GRASS_COLOR', 'green');

$text = 'The sky is %s and the grass is %s';
$text = sprintf( $text, $color , GRASS_COLOR );

echo $text;

अपडेट करें

जाहिरा तौर पर मैं थोड़ा बहुत जल्दबाजी में था 'मुझे दूसरा रास्ता नहीं दिख रहा है '। वास्तव में यह get_defined_vars()<के उपयोग से निश्चित रूप से प्राप्त किया जा सकता है /ए> और get_defined_constants() कार्य। विचार सभी उपयोगकर्ता परिभाषित चर और स्थिरांक एकत्र करना है, और फिर इसे एक स्ट्रिंग में बदलना है। यह एक साधारण टेम्पलेट इंजन भी हो सकता है (यदि पहले से मौजूद नहीं है)।

// place here value from database
$text = 'The sky is $color and</br> the grass is GRASS_COLOR';

$color = 'blue';
define('GRASS_COLOR', 'green');

// collect all defined variables and filter them to get only variables of string and numeric type
$values = array_filter( get_defined_vars(), function( $item ) {
    return is_string($item) || is_numeric($item);
});

// append the dollar sign to keys
$keys = array_map( function( $item ) { 
    return '$'.$item;
}, array_keys( $values ) );

// create the final array by comining the arrays $keys and $values
$vars = array_combine( $keys, array_values( $values ) );

// relpace names of the variables with values
$text = str_replace( array_keys( $vars ), array_values( $vars ), $text );

// collect all constants and replace user defined constants with values
$constants = get_defined_constants( true );
$text = str_replace( array_keys( $constants['user'] ), array_values( $constants['user'] ), $text );

// we are done
echo $text;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL के लिए Google क्लाउड SQL को ऑन-प्रेम सर्वर पर माइग्रेट करना

  2. mysql स्टोरेज इंजन से ऑटो-इंक्रीमेंट वैल्यू को पढ़ने में विफल रहा

  3. पीडीओ + माईएसक्यूएल हमेशा तार लौटाता है, लेकिन एमएसएसक्यूएल के बारे में क्या?

  4. लार्वेल 5 में रिश्ते के कॉलम पर पेजिनेट के साथ 'होने' का उपयोग कैसे करें

  5. डेटाबेस तक पहुँचने वाले उपयोगकर्ताओं की सूची