file_get_contents 加上 file_exists (在被调用的文件内)

Posted

技术标签:

【中文标题】file_get_contents 加上 file_exists (在被调用的文件内)【英文标题】:file_get_contents plus file_exists (inside the file which gets called) 【发布时间】:2016-12-31 22:07:07 【问题描述】:

我有许多不同的模板用于发送电子邮件! 所以我制作了一个php文件(我们称之为send.php),我想用file_get_contents和一些参数(决定应该使用哪个模板)从另一个文件(如finish.php)“调用”它!

不同的路径:

    模板(“/phpmailer/templates/”) send.php("/phpmailer/send.php") finish.php ("/courses/finish.php")

工作链接本身看起来像这样:

http://www.myadress.at/phpmailer/send.php?template=booking&email=bla@bla.at&name=Christopher

在 send.php 中,我检查模板是否存在,如果是,则发送邮件!

if (file_exists(dirname(__FILE__)."/templates/".$template.".php") AND isset($email)) 

  $mail->msghtml(file_get_contents('https://www.myadress.at/phpmailer/templates/'.$template.'.php?'.$parameter.''), dirname(__FILE__));

  if (!$mail->send()) 
      echo "Mailer Error: " . $mail->ErrorInfo;
   else 
      echo "Message sent!";
  

 
else 

  ERROR

现在,当有人预订课程或其他内容时,填写注册表单后,我想从文件中发送一封确认电子邮件,此人在表单后登陆(finish.php)

我的 finish.php 文件只有一个 file_get_contents 和我的 send.php 文件的路径:

$sendmail= file_get_contents("https://www.myadress.at/phpmailer/send.php?template=booking-confirmation&email=".urlencode($email)."");

现在的问题是,当尝试通过 file_get_contents 从finish.php 使用它时,他说模板不存在...将相同的链接复制到firefox 时,一切正常.. 模板的名称是正确的!

我尝试了以下方法:

(file_exists(dirname(__FILE__)."/templates/".$template.".php") - with dirname
(file_exists("/templates/".$template.".php") - the normal path
(file_exists("/phpmailer/templates/".$template.".php") - full path
(file_exists("http://www.myadress.at/phpmailer/templates/".$template.".php") - normal url

请帮帮我^^也许这不可能哈哈

【问题讨论】:

【参考方案1】:

好的,现在一切正常!

问题是由 url 中的一些空格引起的,或者是因为我没有对每个变量进行 urlencode..

啊啊啊好多次了!

【讨论】:

以上是关于file_get_contents 加上 file_exists (在被调用的文件内)的主要内容,如果未能解决你的问题,请参考以下文章

file_get_contents() 不工作

file_get_contents() 错误

file_get_contents() 分解 UTF-8 字符

file_get_contents(): No such host is known 错误

file_get_contents() 是不是有超时设置?

file_get_contents 通过 php 失败,通过浏览器工作