2009-05-06 25 views
5

así que tengo algo de código PHP que se parece a:¿Cómo reemplazar una variable dentro de una cadena con PHP?

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

simplemente utilicé% s como un ejemplo. Básicamente es un marcador de posición para lo que sea que vaya allí. Luego paso la cadena a una función y quiero que esa función reemplace el% s con el valor.

¿Qué debo hacer para lograrlo? ¿Necesito hacer algunas expresiones regulares, y usar preg_replace(), o algo así? o hay una forma mas simple de hacerlo?

Respuesta

21

En realidad, puede utilizar la función sprintf que devolverá una cadena formateada y colocará sus variables en el lugar de los marcadores de posición.
También le da grandes poderes sobre cómo quiere que su cadena se formatee y se muestre.

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

tratar variables dinámicas:

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

continuación% s será reemplazado por $ s, la variable

2

Usted puede utilizar sprintf, que funciona de manera muy similar a printf y sprintf funciones de C.

3

Si utiliza %s, creo que es el mismo marcador de posición que utiliza printf para una cadena. Por lo que podría hacer:

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

creo que debe trabajar por lo menos ...

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

por lo general estoy usando esto para mi código, ir a buscar el texto de $ algunos archivos de texto/html a continuación, hacer que $ text_result sea la salida

Cuestiones relacionadas