2015-05-28 3 views
-3

У меня есть файл PHP (mail-mail.php), который отправляет некоторые письма, когда форма передает ему какую-то информацию и отлично работает.PHP - попытка поместить значение переменной внутри файла

Все письма были когда-то вставляется в основной файл (почта-mail.php), как этот

body = <<<BODY 
-THE ENTIRE HTML CODE OF THE MAIL- 
BODY; 

Файл становится очень большим (по почте mail.php отправить 3-5 почт каждый раз, что работает) очень длинный (более 500 строк), и неудобно, если мне нужно изменить содержимое почты.

Итак, я решил взять весь почтовый код и заменил их внешними файлами кодом HTML по электронной почте.

$body = file_get_contents('./mail/inv.php'); 

Внутри HTML кода есть переменная ($ имя), что в < <

Я пытался загрузить файл отдельно, таким образом

$body = str_replace("$name", $name, file_get_contents('./mail/inv.php')); 

или таким образом

$prebody = file_get_contents('./mail/inv.php'); 
$body = str_replace("$name", $name, $prebody); 

но все же $ prebody (и, конечно, $ body) загружает «inv.php» без изменения $ name valu е.

ответ

1

Если вы хотите, чтобы заменить текст $variable вам нужно будет либо использовать singlequotes, или избежать вашего переменного символа ($)

прямо сейчас «$ имя» становится «» и не делают ничего заменить. Строки singlequote НЕ анализируются для переменных.

Смотрите также: What is the difference between single-quoted and double-quoted strings in PHP?

+0

Большое спасибо;) он работал –

0
$body = str_replace("$name", $name, $prebody); 

Потому что вы положили $name в двойные кавычки, это зависит от variable parsing внутри строки (т.е. он заменяется значением переменной $name).

Линия выше такая же, как:

$body = str_replace($name, $name, $prebody); 

означает, что вы попробуйте заменить значение, которое вы имеете в переменной $name с самим собой. Конечно, это возвращает неизмененную копию $prebody.

Положите $name в одинарные кавычки, и он будет работать:

$body = str_replace('$name', $name, $prebody); 
+0

Спасибо, это сработало;) –

Смежные вопросы