所以我有一些PHP代碼,看起來像:如何用PHP替換字符串中的變量?
$message = 'Here is the result: %s';
我只是用%S作爲一個例子。它基本上是一個佔位符,無論什麼去那裏。然後我將字符串傳遞給一個函數,我希望該函數用值替換%s。
我需要做些什麼才能做到這一點?我需要做一些正則表達式,並使用preg_replace(),或者什麼?還是有更簡單的方法來做到這一點?
所以我有一些PHP代碼,看起來像:如何用PHP替換字符串中的變量?
$message = 'Here is the result: %s';
我只是用%S作爲一個例子。它基本上是一個佔位符,無論什麼去那裏。然後我將字符串傳遞給一個函數,我希望該函數用值替換%s。
我需要做些什麼才能做到這一點?我需要做一些正則表達式,並使用preg_replace(),或者什麼?還是有更簡單的方法來做到這一點?
您實際上可以使用sprintf函數,它將返回一個格式化的字符串,並將您的變量放置在佔位符的位置。
它也給你很大的權力,你想如何你的字符串被格式化和顯示。
$output = sprintf("Here is the result: %s for this date %s", $result, $date);
嘗試動態變量:
$placeholder = 's';
str_replace("%".$placeholder,$$placeholder,$message);
然後%s將與$ S代替,變量
您可以使用sprintf
,這在一個非常相似的方式到C的printf
和sprintf
功能的工作原理。
如果您使用%s
,我認爲這與printf用於字符串的佔位符相同。所以,你可以這樣做:
$text = sprintf($message, "replacement text");
認爲應該至少工作...
$find = array(
'#name#',
'#date#'
);
$search = array(
'someone\'s name',
date("m-d-Y")
);
$text_result = str_replace($find, $search, $text);
我通常使用這個對我的代碼,從 獲取的$文本一些文本/ HTML文件,然後將$ text_result作爲輸出