php str_replace используется в цикле с функцией mail - PullRequest
1 голос
/ 05 сентября 2011

У меня есть html-сообщение электронной почты, назначенное переменной до того, как оно будет использовано в цикле, затем в цикле я пытаюсь использовать str_replace для вставки пользовательских значений в ловушки.Таким образом, в приведенном ниже примере у меня есть хук {email}, который я пытаюсь заменить на адрес электронной почты получателя.Моя проблема в том, что когда я выводил $message_final в браузер, функция str_replace, похоже, справилась со своей задачей.Но когда я отправляю письмо, все письма остаются с хуком {email}, и кажется, что str_replace не работает.Есть идеи, что мне здесь не хватает?Спасибо.

$message = "HTML email message here";

while ($r = mysql_fetch_array($emails_list)) {
    $email =  $r["email"];
    $message_final = "";

    if(!empty($email)) {
        //Replace hook with something new like an email address
        $message_final = str_replace('{email}', $email, $message);
        mail($email, $subject, $message_final, $headers); 
    }
}

Ответы [ 3 ]

1 голос
/ 05 сентября 2011

Ваш код действителен и работает без нареканий. Проблема лежит где-то еще.

Есть несколько вещей, которые вы можете проверить:

  • str_replace чувствительно к регистру, вы уверены, что это {email}, а не {EMAIL}?

  • содержит ли $ message правильное сообщение? попробуйте распечатать его в браузере, откройте его исходный код, чтобы увидеть дополнительные html-теги, проанализированные браузером, и проверьте, правильно ли это

Кстати, вы должны рассмотреть возможность использования mysql_fetch_assoc вместо mysql_fetch_array. Метод, который вы используете по умолчанию, объединяет массивы, созданные mysql_fetch_row и mysql_fetch_assoc в один, поэтому занимает в 2 раза больше места

1 голос
/ 05 сентября 2011

В вашем $ message нет строки {email}, которую можно заменить

0 голосов
/ 06 сентября 2011

Ahhhhh! Ладонь к лицу !! Это было что-то совершенно другое, вызывающее проблему. В моем почтовом заголовке мне было прикреплено сообщение, и я вызывал str_replace из-за неправильного бита кода. Спасибо за все ваши ответы, ребята:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...