2011-12-19 6 views
1

У меня есть шаблон бюллетеня в одном файле и почтовый скрипт в другом файле, который в основном извлекает адреса электронной почты из базы данных и проходит через каждый из них, отправляя им электронное письмо.Использование переменных PHP с file_get_contents

Я использую этот код, чтобы получить содержимое шаблона бюллетеня:

$content = file_get_contents('attach/T_newsletter.php'); 

Что мне нужно сделать сейчас отправить PHP переменные наряду с этим, например:

T_newsletter.php?test=hello 

, а затем быть способный вытащить их из URL-адреса в шаблоне и соответствующим образом настроить контент.

Может кто-нибудь объяснить, как я буду это делать, пожалуйста?

Спасибо за любую помощь

+0

Можете ли вы заглянуть в информационный бюллетень.php? – Andri

+0

Вы говорите о GET или POST? это методы передачи данных. – Kris

ответ

2

Если вы хотите сделать это, вам нужно будет назвать файл «T_newsletter.php» как часть URL:

$content = file_get_contents("http://yourdomain.com/T_newsletter.php?test=hello"); 

и внутри T_newsletter.php:

<?php 
    $v = $_GET['test']; // this will be 'hello' 

    if($v == 'hello') 
    { 
    ... 
    } 
    else 
    { 
    ... 
    } 
?> 

Другим вариантом было бы использовать механизм шаблонов как Twig или Smarty для разбора файлов непосредственно, если вы не хотите, чтобы сделать запрос HTTP.

+0

спасибо, что блестящий ... Я пытался сделать это, как attach/T_newsletter.php? Test = hello, и он ничего не возвращал. –

+0

Ваше решение читает файл из файловой системы или выполняет его загрузку из «yourdomain»? – strauberry

+0

@ Даниэль, если решение работает для вас, отметьте как принятый ответ :) – SeanNieuwoudt

0
 
$response=file_get_contents("attach/T_newsletter.php?test=hello"); 

0

Чистейшее и наиболее гибкое решение было бы использовать механизм шаблонов (например, smarty) и вместо того, чтобы выводить разобранное содержание чтения его в переменный ... Вы можете использовать переменные, циклы и т.д. в шаблоне файл (см. here) и прочитайте результат в переменной с выборкой (см. here).

3

file_get_contents ('attach/T_newsletter.php');

Whoa! Остановись прямо там. Если это не исходный код PHP, то у него не должно быть расширения .php - если это исходный код PHP, вы не должны отправлять его в список рассылки.

Если вы хотите выполнить код внутри файла, то это не способ сделать это. Один из способов - получить доступ к файлу через HTTP, например.

file_get_contents('http://localhost/attach/T_newsletter.php'); 

Хотя это упрощает передачу параметров сценарию, это все еще довольно грязное решение.

Другой действительно ужасный способ решить проблему будет ....

ob_start(); 
include('/attach/T_newsletter.php'); 
$content=ob_get_contents(); 
ob_end_flush(); 

право способ осуществить это будет

1) в качестве функции (или класс) в прилагаемом файле:

require_once ('/attach/T_newsletter.php'); 
$content=generate_newsletter($params); 

2) с использованием файла в виде файла данных шаблон:

$template=file_get_contents('/attach/T_newsletter.data'); 
$content=preg_replace($template_vars, $template_values, $template); 
+0

Upvote только для «Whoa! Stop прямо здесь» :) – strauberry

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