2013-05-24 2 views
-2

안녕하세요. 내 메일에 변수 ($text)에서 Text를 받아 mail()을 통해 보냈습니다. 텍스트에서 다른 변수를 사용하고 싶습니다. 나는 내 데이터베이스에서 그것을 얻는다. ($text1).다른 변수에 변수 사용

메일의 내 텍스트 (변수 $text 내부)는 다음과 같습니다.

"안녕 $text1, 어떠세요?"

이제 $text1을 데이터베이스 원본 텍스트로 바꾸고 싶습니다.

내가해야 할 일? 예를 들어

:

$text1 = $row['text1'] // from Database1 

$text2 = $row['text2'] // from Database1 

$text = $row['text'] // from Database2 

$text의 내용은

mail('[email protected]', 'subject', $text); 
+0

는 관련 코드를 게시하시기 바랍니다 ... 당신이 지금까지 우리에게 주신 한 것을 훨씬 도움이되지 수 사용할 수 있습니다. – brbcoding

+0

지금까지 시도한 것을 보여줄 수 있습니까? – hek2mgl

+0

좋아요. 추가하겠습니다. 나는 그것이 도움이되기를 바랍니다. – TrivoXx

답변

1
$allVars = array('text1'=>'some text', 'text2'=>'some other text'); 

UPD에 대해 정확히 : 귀하의 경우 , $ allVars는 데이터베이스의 $ row 배열입니다.

foreach($allVars as $var=>$value){ 

    $text = preg_replace("@\\$" . $var . "([^a-zA-Z_0-9\x7f-\xff]|$)@", $value . "\\1", $text); 

} 

또한 당신은 http://php.net/manual/en/function.get-defined-vars.php

$allVars = get_defined_vars(); 
+0

감사합니다. 귀하의 솔루션은 완벽합니다! – TrivoXx

-1

"$text1 안녕하세요, 어떻게 당신의 개를 $text2 .... 뭘 할거야?"이것은 단지 문자열 교체입니다 . PHP는 문자열의 내부 변수를 구문 분석하는 것이기 때문에, 당신은 약간의 트릭으로 그렇게하지 않도록 강제 할 수

$new_text = str_replace("$"."text1", $text1, $old_text); 
+0

나는 그가 실제로 그것을 대체하고 싶어한다고 생각한다 – Sebas

+0

당신의 대답에 감사드립니다. $ old_text는 무엇을 의미합니까? $ text 변수에있는 내 텍스트는 다음과 같습니다. 안녕하세요 $ text1, 어떠세요? 네가 괜찮 길 바랄 게. 당신의 개 $ text2는 무엇입니까? 여전히 $ text3이 있습니까? 바꿀 변수가 두 개 이상인 경우 어떻게해야합니까? – TrivoXx

+0

$ new_text와 $ old_text를 사용했기 때문에 $ old_text는 원래 텍스트이고 $ new_text는 대체 후 얻을 수 있습니다. 더 많은 대체 작업을하려면 str_replace를 다시 사용하거나 배열을 사용하여 str_replace를 수행해야합니다. 그러나 str_replace 구문을 읽는 데 문제가있는 경우 배열을 사용하지 않아도된다고 생각합니다. 그래서, 여러 str_replace 호출을 사용하는 것이 좋습니다. – kainaw

0

sprintf이 목적

$text = "Hello %s, how it's %s"; 
$name = "Joe"; 
$foo = "going?"; 
$text = sprintf($text, $name, $foo); 
+0

귀하의 버전에서는 불가능하다고 생각합니다. $ text의 변수는 입력 필드에서 왔기 때문에 공간을 사용하여 데이터베이스에서 채울 변수를 자유롭게 사용하고 싶습니다. 내가 무슨 뜻인지 알기를 바랍니다 .-) – TrivoXx

+0

아니, 무슨 뜻인지 이해가 안되네. –

관련 문제