2014-11-20 2 views
0
$name = "MasterOfDisaster"; 
$age = "666"; 

$string = "My name is [name] and i'm [age] years old"; 

나는 두 문자 사이의 모든 값을 대체 내가 ereg_replace와이를 달성 할 수있는 같은 이름의 PHP 변수로 자리를 교체 같은 이름의 PHP 변수 이제

[foo] > $foo 
I want to get this without replacing with arrays: 
$string = "My name is $name and i'm $age years old"; 

로 변경하려면 '? str_replace()를 배열과 함께 사용하여 텍스트의 모든 값을 캐치하려고하지 않습니다. 지금까지

내 preg_replace이다() :

$placeholder = preg_replace("/\[(.*?)]/", ${"$1"}, $string); 
echo $placeholder; 

답변

0

당신은 다음과 같이 사용할 수 있습니다

$array = array('name' => "MasterOfDisaster", 'age' => "666"); 
$string = "My name is [name] and i'm [age] years old"; 
foreach ($array as $key => $value) { 
    $string = preg_replace('/\['.$key.'\]/i', $value, $string); 
} 
echo $string; 

출력은 다음과 같습니다

My name is MasterOfDisaster and i'm 666 years old 

참고 : ereg_replace 기능을 사용하지 마십시오 때문에 사용되지 않습니다. Yous preg_replace이 대신 작동합니다.

+0

안녕하세요, 사용 중지 된 정보에 대한 감사하지만 가능하면 배열을 사용하지 않고 교체하고 싶습니다. – user2987790

+0

당신은 무엇을 당신이 무엇으로 대체하고 싶은지 알아야합니다. – vaso123

+0

2 개의 문자 사이에서 같은 이름으로 바꾸고 싶습니다 :'[foo] to $ foo' – user2987790