2012-05-26 1 views
1

PHP를 사용하여 양식 편지를 작성하려고합니다. 미리 채워진 텍스트가있는 텍스트 영역이있는보기가 있습니다. 텍스트는 편지와 같습니다. 친애하는 So-and-so 등POST에서 변수의 텍스트 내용으로 PHP로 양식 편지 작성

DB의 특정 동적 데이터를 채워야하는 곳이 몇 개 있지만, 그렇지 않은 경우 사용자가 문구를 변경하도록해야합니다 필요에 따라 이메일의 다른 부분을 나는 새로운 값을 삽입하려고하는 각 장소를 표시하기 위해 임의의 문자 시퀀스를 넣을 생각이다.

그래서 양식을 PHP 페이지에 제출하고 텍스트를 문자열 변수로 가져옵니다. 이메일을 보낼 준비가되면 해당 자리 표시자가 업데이트되었는지 확인해야합니다. 문자열 변수의 내용을 변수 값으로 대체하려면 어떻게합니까?

편집 - 예. 이것은 현재 내가 폼의 액션을 처리하고있는 PHP 파일의 string 변수 안에 있습니다.

안녕하십니까.

안녕 하시길 바랍니다. % @ 일 안에 뭔가를해야한다는 것을 상기시켜 드렸습니다.

팀으로 현재 % @ %입니다.

+0

원하는 예제를 표시 할 수 있습니까? – tigrang

+0

일부 코드 추가 예제 –

답변

2

내가 사용하는 것은 다음과 같습니다.

$email_text = "Hello ###user###,  
        You have a new Event on ###date### at ###time### for ###hours### hour.  
        Please let me know if you are attending. 

        Have Fun. 
        ###site###"; 

$email_text = str_replace('###user###',$username,$email_text); 
$email_text = str_replace('###date###',date('M dS, Y', strtotime($date)),$email_text); 
$email_text = str_replace('###time###',$time,$email_text); 
$email_text = str_replace('###hours###',$hours,$email_text); 
$email_text = str_replace('###site###',$site,$email_text); 

이렇게하면 어떻게 처리 할 수 ​​있을지 잘 알기를 바랍니다.

+0

이러한 답변은 모두 제대로 작동하는 것처럼 보이지만, 현재 상황과 가장 관련이 있다고 생각합니다. 이와 같은 분명한 사례를 공유해 주셔서 감사합니다! – Lizza

+0

당신이 그웬하면 않는 strstr를 사용하여 생각하지 것은 당신을 위해 작동하는 코드의 모든 부분에 대해 여러 가지 방법이 있습니다 각 placeholde – pinaldesai

+0

을 :) 환영합니다. 이것은 코드의 일부에 지나지 않지만 실제로는 템플릿/변수가 동적 또는 조건 적으로 변경 될 때이를 해결하는 가장 좋은 방법입니다. – Ankit

2

이되고 싶어 편지 텍스트를 가정 :

친애 % 이름 %를! 저는 % city % 출신입니다. % destination %로 가자.

코드는 다음과 같아야합니다

$letter_text = $_POST["letter_text"]; 
foreach(array("name", "city", "destination") as $var) { 
    $letter_text = str_replace("%".$var."%", $_POST[$var], $letter_text); 
} 
2

나는 다음과 같은 여러 번 사용했다. 희망이 당신이 찾고있는 것을 해결합니다.

<?php 

$content = "Hi #user, 
Thanks for registering. Your username is #username. 
" 

$trans = array("#user" => "ABC", "#username"=> "XYZ"); 

echo strtr($content, $trans); 

?> 

쉽게 사용할 수 있다고 생각합니다. 문자열 변수가 무엇이든 내용 변수를 바꾸고 자리 표시 자 (#로 시작하는)를 자리 표시 자로 변경하십시오. 이 자리 표시 자의 $ trans 배열에있는 값을 데이터베이스 또는 $ _POST에서 필요에 따라 설정하십시오.

+0

@oof gwen 각 자리 표시 자에 대해 str_replace 함수를 사용하는 것보다 strstr을 사용하는 것이 더 효율적이고 명확하다고 생각하지 않습니까? – Ankit

+0

나는 strstr()이하는 일을 정말로 모른다. 그래서 다른 옵션은 더 쉬워 보였다. 귀하의 답변 주셔서 감사합니다! – Westley