2009-05-06 59 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,這在一個非常相似的方式到C的printfsprintf功能的工作原理。

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作爲輸出