2009-05-06 11 views
5

तो मेरे पास कुछ PHP कोड है जो इस तरह दिखता है:PHP के साथ स्ट्रिंग के भीतर एक चर को कैसे बदलें?

$message = 'Here is the result: %s'; 

मैंने अभी% s को एक उदाहरण के रूप में उपयोग किया है। यह मूल रूप से प्लेसहोल्डर है जो भी वहां जाएगा। फिर मैं एक फ़ंक्शन को स्ट्रिंग पास करता हूं और मैं चाहता हूं कि वह फ़ंक्शन मान के साथ% s को प्रतिस्थापित करे।

इसे प्राप्त करने के लिए मुझे क्या करने की ज़रूरत है? क्या मुझे कुछ रेगेक्स करने की ज़रूरत है, और preg_replace(), या कुछ का उपयोग करें? या क्या ऐसा करने का एक आसान तरीका है?

उत्तर

21

आप वास्तव में sprintf फ़ंक्शन का उपयोग कर सकते हैं जो एक स्वरूपित स्ट्रिंग वापस करेगा और प्लेसहोल्डर्स के स्थान पर आपके चर डाल देगा।
यह आपको अपनी स्ट्रिंग को स्वरूपित और प्रदर्शित करने के तरीके के बारे में बहुत अच्छी शक्ति देता है।

$output = sprintf("Here is the result: %s for this date %s", $result, $date); 
-3

गतिशील चर का प्रयास करें:

$placeholder = 's'; 
str_replace("%".$placeholder,$$placeholder,$message); 

तो% s $ s से बदल दिया जाएगा, चर

2

आप sprintf, जो सी printf और sprintf कार्यों के लिए एक बहुत ही समान तरीके से काम करता है का उपयोग कर सकते हैं।

3

आप %s उपयोग करते हैं, मुझे लगता है कि एक ही प्लेसहोल्डर है कि printf एक स्ट्रिंग के लिए उपयोग करता है। तो अगर आप कर सकता है:

$text = sprintf($message, "replacement text"); 

सोचो कि काम करना चाहिए कम से कम ...

3
$find = array(
    '#name#', 
    '#date#' 
); 
$search = array(
    'someone\'s name', 
    date("m-d-Y") 
); 
$text_result = str_replace($find, $search, $text); 

मैं आमतौर पर मेरी कोड के लिए इस का उपयोग कर रहा है, तो से $ पाठ प्राप्त करते समय कुछ पाठ/html फ़ाइलें आउटपुट

के रूप में $ text_result बनाएं
संबंधित मुद्दे