2016-09-08 3 views
2

file_get_contents()를 통해 내용이있는 변수의 문자열을 바꾸려고합니다.string을 file_get_contents()로 바꾸기

$link_yes = "someText"; 
$link_no = "someText"; 
ob_start(); 
$mail_content = file_get_contents($_SERVER['DOCUMENT_ROOT']. $user_file . $mail_file); 
$link1 = array("###Text to replace###"); 
$link2 = array("###Text to replace###"); 
str_replace($link1, $link_yes, $mail_content); 
str_replace($link2, $link_no, $mail_content); 
$mail -> Body = $mail_content; 
ob_end_clean(); 

$ link1 및 $ link2없이 시도했습니다. 그래서 문자열을 replace-function에 직접 붙여 넣었습니다.

하지만 작동하지 않았습니다.

누군가 나를 도울 수 있습니까?

감사합니다.

+1

제거는'당신'$의 link1'과'$의 link2'와 array' 오류되지 않을 것 비록 당신이 배열을 사용 해달라고 대체하는 하나 이상의 일을 가지고도하지 않는

. – Virb

+0

@Virb 문제가되지 않습니다. – RiggsFolly

답변

2

str_replace()은 수정 된 문자열을 반환하고 반환 된 수정 된 값을 캡처하지 않습니다. 당신이이

$link_yes = "someText"; 
$link_no = "someText"; 

ob_start(); 
$mail_content = file_get_contents($_SERVER['DOCUMENT_ROOT']. $user_file . $mail_file); 

$link1 = "###Text to replace###"; 
$link2 = "###Text to replace###"; 

$mail_content = str_replace($link1, $link_yes, $mail_content); 
$mail_content = str_replace($link2, $link_no, $mail_content); 


$mail -> Body = $mail_content; 

ob_end_clean(); 
+1

큰 대답은 변수를 변경하는 함수와 그렇지 않은 함수의 차이를 아는 것이 유용합니다. 이를 "참조로 전달"이라고합니다 (http://php.net/manual/en/language.references.pass.php). 문서를 탐색 할 때 함수 인수 앞에 앰퍼샌드 & 기호를 찾아서 어떤 함수가 이것을 지원하는지 알 수 있습니다. 참조로 전달하는 것에 대한 더 나은 이해는 PHP 개발자의 발달에 매우 중요합니다! –

+0

와우, 무슨 멍청한 실패 ^^ .. 죄송합니다. 그러나 빠른 답변에 감사드립니다! – Florianb

+0

@Florianb 당황하지 마라, 나는 항상 그렇게하며, 아마 다시 할 것이다. 이제는 저를 좋아할 것입니다. 다시 일어날 때 이것이 당신에게 일어나는 첫 번째 일이 될 것입니다. – RiggsFolly